• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the 'License');
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an 'AS IS' BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15// @ts-nocheck
16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
17import pasteboard from '@ohos.pasteboard';
18import image from '@ohos.multimedia.image';
19
20describe('PasteBoardJSTest', function () {
21  beforeAll(async function () {
22    console.info('beforeAll');
23  });
24
25  afterAll(async function () {
26    console.info('afterAll');
27  });
28
29  /**
30   * @tc.name      pasteboard_function_test1
31   * @tc.desc      createPlainTextData test
32   * @tc.type      Function
33   * @tc.require   AR000HEECD
34   */
35  it('pasteboard_function_test1', 0, async function (done) {
36    var systemPasteboard = pasteboard.getSystemPasteboard();
37    systemPasteboard.clear((err, data) => {
38      if (err) {
39        console.error('f_test1: systemPasteboard.clear callback error:' + err);
40      } else {
41        var textData = 'Hello World!';
42        var pasteData = pasteboard.createPlainTextData(textData);
43        systemPasteboard.setPasteData(pasteData, (err, data) => {
44          if (err) {
45            console.error('f_test1: systemPasteboard.setPasteData callback error:' + err);
46          } else {
47            systemPasteboard.hasPasteData((err, data) => {
48              if (err) {
49                console.error('f_test1: systemPasteboard.hasPasteData callback error:' + err);
50              } else {
51                expect(data).assertEqual(true);
52                systemPasteboard.getPasteData((err, data) => {
53                  if (err) {
54                    console.error('f_test1: systemPasteboard.getPasteData callback error:' + err);
55                  } else {
56                    expect(data.getRecordCount()).assertEqual(1);
57                    var primaryText = data.getPrimaryText();
58                    expect(primaryText).assertEqual(textData);
59                    expect(pasteboard.MAX_RECORD_NUM).assertEqual(512);
60                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
61                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
62                    done();
63                  }
64                });
65              }
66            });
67          }
68        });
69      }
70    });
71  });
72
73  /**
74   * @tc.name      pasteboard_function_test2
75   * @tc.desc      createHtmlData test
76   * @tc.type      Function
77   * @tc.require   AR000HEECD
78   */
79  it('pasteboard_function_test2', 0, async function (done) {
80    var systemPasteboard = pasteboard.getSystemPasteboard();
81    systemPasteboard.clear((err, data) => {
82      if (err) {
83        console.error('f_test2: systemPasteboard.clear callback error:' + err);
84      } else {
85        var htmlText = '<html><head></head><body>Hello World!</body></html>';
86        var pasteData = pasteboard.createHtmlData(htmlText);
87        systemPasteboard.setPasteData(pasteData, (err, data) => {
88          if (err) {
89            console.error('f_test2: systemPasteboard.setPasteData callback error:' + err);
90          } else {
91            systemPasteboard.hasPasteData((err, data) => {
92              if (err) {
93                console.error('f_test2: systemPasteboard.hasPasteData callback error:' + err);
94              } else {
95                expect(data).assertEqual(true);
96                systemPasteboard.getPasteData((err, data) => {
97                  if (err) {
98                    console.error('f_test2: systemPasteboard.getPasteData callback error:' + err);
99                  } else {
100                    expect(data.getRecordCount()).assertEqual(1);
101                    var PrimaryHtml = data.getPrimaryHtml();
102                    console.info('f_test2: PrimaryHtml = ' + PrimaryHtml);
103                    expect(PrimaryHtml).assertEqual(htmlText);
104                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
105                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
106                    done();
107                  }
108                });
109              }
110            });
111          }
112        });
113      }
114    });
115  });
116
117  /**
118   * @tc.name      pasteboard_function_test3
119   * @tc.desc      测试异步callback调用+createHtmlData,htmlText = ''.
120   * @tc.type      Function
121   * @tc.require   AR000HEECD
122   */
123  it('pasteboard_function_test3', 0, async function (done) {
124    var systemPasteboard = pasteboard.getSystemPasteboard();
125    systemPasteboard.clear((err, data) => {
126      if (err) {
127        console.error('f_test3: systemPasteboard.clear callback error:' + err);
128      } else {
129        var htmlText = '';
130        var pasteData = pasteboard.createHtmlData(htmlText);
131        systemPasteboard.setPasteData(pasteData, (err, data) => {
132          if (err) {
133            console.error('f_test3: systemPasteboard.setPasteData callback error:' + err);
134          } else {
135            systemPasteboard.hasPasteData((err, data) => {
136              if (err) {
137                console.error('f_test3: systemPasteboard.hasPasteData callback error:' + err);
138              } else {
139                expect(data).assertEqual(true);
140                systemPasteboard.getPasteData((err, data) => {
141                  if (err) {
142                    console.error('f_test3: systemPasteboard.getPasteData callback error:' + err);
143                  } else {
144                    expect(data.getRecordCount()).assertEqual(1);
145                    var PrimaryHtml = data.getPrimaryHtml();
146                    console.info('f_test3: PrimaryHtml = ' + PrimaryHtml);
147                    expect(PrimaryHtml).assertEqual(htmlText);
148                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
149                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
150                    done();
151                  }
152                });
153              }
154            });
155          }
156        });
157      }
158    });
159  });
160
161  /**
162   * @tc.name      pasteboard_function_test4
163   * @tc.desc      createUriData test
164   * @tc.type      Function
165   * @tc.require   AR000HEECD
166   */
167  it('pasteboard_function_test4', 0, async function (done) {
168    var systemPasteboard = pasteboard.getSystemPasteboard();
169    systemPasteboard.clear((err, data) => {
170      if (err) {
171        console.error('f_test4: systemPasteboard.clear callback error:' + err);
172      } else {
173        var uriText = '';
174        var pasteData = pasteboard.createUriData(uriText);
175        systemPasteboard.setPasteData(pasteData, (err, data) => {
176          if (err) {
177            console.error('f_test4: systemPasteboard.setPasteData callback error:' + err);
178          } else {
179            systemPasteboard.hasPasteData((err, data) => {
180              if (err) {
181                console.error('f_test4: systemPasteboard.hasPasteData callback error:' + err);
182              } else {
183                expect(data).assertEqual(true);
184                systemPasteboard.getPasteData((err, data) => {
185                  if (err) {
186                    console.error('f_test4: systemPasteboard.getPasteData callback error:' + err);
187                  } else {
188                    expect(data.getRecordCount()).assertEqual(1);
189                    var PrimaryUri = data.getPrimaryUri();
190                    console.info('f_test4: PrimaryUri = ' + PrimaryUri);
191                    expect(PrimaryUri).assertEqual(uriText);
192                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
193                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_URI);
194                    done();
195                  }
196                });
197              }
198            });
199          }
200        });
201      }
202    });
203  });
204
205  /**
206   * @tc.name      pasteboard_function_test5
207   * @tc.desc      createWantData test
208   * @tc.type      Function
209   * @tc.require   AR000HEECD
210   */
211  it('pasteboard_function_test5', 0, async function (done) {
212    var systemPasteboard = pasteboard.getSystemPasteboard();
213    systemPasteboard.clear((err, data) => {
214      if (err) {
215        console.error('f_test5: systemPasteboard.clear callback error:' + err);
216      } else {
217        var want = {
218          bundleName: 'com.example.myapplication8',
219          abilityName: 'com.example.myapplication8.MainAbility',
220        };
221        var pasteData = pasteboard.createWantData(want);
222        systemPasteboard.setPasteData(pasteData, (err, data) => {
223          if (err) {
224            console.error('f_test5: systemPasteboard.setPasteData callback error:' + err);
225          } else {
226            systemPasteboard.hasPasteData((err, data) => {
227              if (err) {
228                console.error('f_test5: systemPasteboard.hasPasteData callback error:' + err);
229              } else {
230                expect(data).assertEqual(true);
231                systemPasteboard.getPasteData((err, data) => {
232                  if (err) {
233                    console.error('f_test5: systemPasteboard.getPasteData callback error:' + err);
234                  } else {
235                    expect(data.getRecordCount()).assertEqual(1);
236                    var PrimaryWant = data.getPrimaryWant();
237                    expect(PrimaryWant.bundleName).assertEqual(want.bundleName);
238                    expect(PrimaryWant.abilityName).assertEqual(want.abilityName);
239                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true);
240                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_WANT);
241                    done();
242                  }
243                });
244              }
245            });
246          }
247        });
248      }
249    });
250  });
251
252  /**
253   * @tc.name      pasteboard_function_test6
254   * @tc.desc      addTextRecord test
255   * @tc.type      Function
256   * @tc.require   AR000HEECD
257   */
258  it('pasteboard_function_test6', 0, async function (done) {
259    var systemPasteboard = pasteboard.getSystemPasteboard();
260    systemPasteboard.clear((err, data) => {
261      if (err) {
262        console.error('f_test6: systemPasteboard.clear callback error:' + err);
263      } else {
264        var textData0 = 'Hello World!';
265        var pasteData = pasteboard.createPlainTextData(textData0);
266        var textData1 = 'Hello World1';
267        pasteData.addTextRecord(textData1);
268        systemPasteboard.setPasteData(pasteData, (err, data) => {
269          if (err) {
270            console.error('f_test6: systemPasteboard.setPasteData callback error:' + err);
271          } else {
272            systemPasteboard.hasPasteData((err, data) => {
273              if (err) {
274                console.error('f_test6: systemPasteboard.hasPasteData callback error:' + err);
275              } else {
276                expect(data).assertEqual(true);
277                systemPasteboard.getPasteData((err, data) => {
278                  if (err) {
279                    console.error('f_test6: systemPasteboard.getPasteData callback error:' + err);
280                  } else {
281                    expect(data.getRecordCount()).assertEqual(2);
282                    var PrimaryText = data.getPrimaryText();
283                    expect(PrimaryText).assertEqual(textData1);
284                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
285                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
286                    done();
287                  }
288                });
289              }
290            });
291          }
292        });
293      }
294    });
295  });
296
297  /**
298   * @tc.name      pasteboard_function_test7
299   * @tc.desc      addTextRecord test
300   * @tc.type      Function
301   * @tc.require   AR000HEECD
302   */
303  it('pasteboard_function_test7', 0, async function (done) {
304    var systemPasteboard = pasteboard.getSystemPasteboard();
305    systemPasteboard.clear((err, data) => {
306      if (err) {
307        console.error('f_test7: systemPasteboard.clear callback error:' + err);
308      } else {
309        var textData0 = 'Hello World!';
310        var pasteData = pasteboard.createPlainTextData(textData0);
311        var textData = '';
312        for (var i = 1; i < 15; i++) {
313          textData = 'Hello World';
314          textData = textData + i;
315          pasteData.addTextRecord(textData);
316        }
317        systemPasteboard.setPasteData(pasteData, (err, data) => {
318          if (err) {
319            console.error('f_test7: systemPasteboard.setPasteData callback error:' + err);
320          } else {
321            systemPasteboard.hasPasteData((err, data) => {
322              if (err) {
323                console.error('f_test7: systemPasteboard.hasPasteData callback error:' + err);
324              } else {
325                expect(data).assertEqual(true);
326                systemPasteboard.getPasteData((err, data) => {
327                  if (err) {
328                    console.error('f_test7: systemPasteboard.getPasteData callback error:' + err);
329                  } else {
330                    expect(data.getRecordCount()).assertEqual(15);
331                    var PrimaryText = data.getPrimaryText();
332                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
333                    expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
334                    expect(PrimaryText).assertEqual('Hello World14');
335                    done();
336                  }
337                });
338              }
339            });
340          }
341        });
342      }
343    });
344  });
345
346  /**
347   * @tc.name      pasteboard_function_test8
348   * @tc.desc      addHtmlRecord+addUriRecord+addWantRecord
349   * @tc.type      Function
350   * @tc.require   AR000HEECD
351   */
352  it('pasteboard_function_test8', 0, async function (done) {
353    var systemPasteboard = pasteboard.getSystemPasteboard();
354    systemPasteboard.clear((err, data) => {
355      if (err) {
356        console.error('f_test8: systemPasteboard.clear callback error:' + err);
357      } else {
358        var textData = 'Hello World!';
359        var pasteData = pasteboard.createPlainTextData(textData);
360        var htmlText = '<html><head></head><body>Hello World!</body></html>';
361        pasteData.addHtmlRecord(htmlText);
362        var uriText = '';
363        pasteData.addUriRecord(uriText);
364        var want = {
365          bundleName: 'com.example.myapplication8',
366          abilityName: 'com.example.myapplication8.MainAbility',
367        };
368        pasteData.addWantRecord(want);
369        systemPasteboard.setPasteData(pasteData, (err, data) => {
370          if (err) {
371            console.error('f_test8: systemPasteboard.setPasteData callback error:' + err);
372          } else {
373            systemPasteboard.hasPasteData((err, data) => {
374              if (err) {
375                console.error('f_test8: systemPasteboard.hasPasteData callback error:' + err);
376              } else {
377                expect(data).assertEqual(true);
378                systemPasteboard.getPasteData((err, data) => {
379                  if (err) {
380                    console.error('f_test8: systemPasteboard.getPasteData callback error:' + err);
381                  } else {
382                    expect(data.getRecordCount()).assertEqual(4);
383                    var MimeTypes = data.getMimeTypes();
384                    expect(MimeTypes[0]).assertEqual(pasteboard.MIMETYPE_TEXT_WANT);
385                    expect(MimeTypes[1]).assertEqual(pasteboard.MIMETYPE_TEXT_URI);
386                    expect(MimeTypes[2]).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
387                    expect(MimeTypes[3]).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
388                    done();
389                  }
390                });
391              }
392            });
393          }
394        });
395      }
396    });
397  });
398
399  /**
400   * @tc.name      pasteboard_function_test9
401   * @tc.desc      addHtmlRecord+addUriRecord+removeRecordAt
402   * @tc.type      Function
403   * @tc.require   AR000HEECD
404   */
405  it('pasteboard_function_test9', 0, async function (done) {
406    var systemPasteboard = pasteboard.getSystemPasteboard();
407    systemPasteboard.clear((err, data) => {
408      if (err) {
409        console.error('f_test9: systemPasteboard.clear callback error:' + err);
410      } else {
411        var textData = 'Hello World!';
412        var pasteData = pasteboard.createPlainTextData(textData);
413        var htmlText = '<html><head></head><body>Hello World!</body></html>';
414        pasteData.addHtmlRecord(htmlText);
415        var uriText = '';
416        pasteData.addUriRecord(uriText);
417        systemPasteboard.setPasteData(pasteData, (err, data) => {
418          if (err) {
419            console.error('f_test9: systemPasteboard.setPasteData callback error:' + err);
420          } else {
421            systemPasteboard.hasPasteData((err, data) => {
422              if (err) {
423                console.error('f_test9: systemPasteboard.hasPasteData callback error:' + err);
424              } else {
425                expect(data).assertEqual(true);
426                systemPasteboard.getPasteData((err, data) => {
427                  if (err) {
428                    console.error('f_test9: systemPasteboard.getPasteData callback error:' + err);
429                  } else {
430                    expect(data.getRecordCount()).assertEqual(3);
431                    expect(data.removeRecordAt(0)).assertEqual(true);
432                    expect(data.getRecordCount()).assertEqual(2);
433                    systemPasteboard.setPasteData(data, (err, newdata) => {
434                      if (err) {
435                        console.error('f_test9: systemPasteboard.setPasteData callback error:' + err);
436                      } else {
437                        systemPasteboard.getPasteData((err, data) => {
438                          if (err) {
439                            console.error('f_test9: systemPasteboard.getPasteData callback error:' + err);
440                          } else {
441                            expect(data.getRecordCount()).assertEqual(2);
442                            done();
443                          }
444                        });
445                      }
446                    });
447                  }
448                });
449              }
450            });
451          }
452        });
453      }
454    });
455  });
456
457  /**
458   * @tc.name      pasteboard_function_test10
459   * @tc.desc      Add 30 TextRecords
460   * @tc.type      Function
461   * @tc.require   AR000H5GKU
462   */
463  it('pasteboard_function_test10', 0, async function (done) {
464    var systemPasteboard = pasteboard.getSystemPasteboard();
465    systemPasteboard.clear((err, data) => {
466      if (err) {
467        console.error('f_test10: systemPasteboard.clear callback error:' + err);
468      } else {
469        var textData0 = 'Hello World!';
470        var pasteData = pasteboard.createPlainTextData(textData0);
471        var textData = '';
472        for (var i = 1; i < 30; i++) {
473          textData = 'Hello World';
474          textData = textData + i;
475          pasteData.addTextRecord(textData);
476        }
477        systemPasteboard.setPasteData(pasteData, (err, data) => {
478          if (err) {
479            console.error('f_test10: systemPasteboard.setPasteData callback error:' + err);
480          } else {
481            systemPasteboard.hasPasteData((err, data) => {
482              if (err) {
483                console.error('f_test10: systemPasteboard.hasPasteData callback error:' + err);
484              } else {
485                expect(data).assertEqual(true);
486                systemPasteboard.getPasteData((err, data) => {
487                  if (err) {
488                    console.error('f_test10: systemPasteboard.getPasteData callback error:' + err);
489                  } else {
490                    expect(data.getRecordCount()).assertEqual(30);
491                    for (var i = 0; i < 30; i++) {
492                      expect(data.removeRecordAt(0)).assertEqual(true);
493                    }
494                    expect(data.getRecordCount()).assertEqual(0);
495                    systemPasteboard.setPasteData(data, (err, newdata) => {
496                      if (err) {
497                        console.error('f_test10: systemPasteboard.setPasteData callback error:' + err);
498                      } else {
499                        systemPasteboard.getPasteData((err, data) => {
500                          if (err) {
501                            console.error('f_test10: systemPasteboard.getPasteData callback error:' + err);
502                          } else {
503                            expect(data.getRecordCount()).assertEqual(0);
504                            done();
505                          }
506                        });
507                      }
508                    });
509                  }
510                });
511              }
512            });
513          }
514        });
515      }
516    });
517  });
518
519  /**
520   * @tc.name      pasteboard_function_test11
521   * @tc.desc      Replcae textRecord
522   * @tc.type      Function
523   * @tc.require   AR000H5GKU
524   */
525  it('pasteboard_function_test11', 0, async function (done) {
526    var systemPasteboard = pasteboard.getSystemPasteboard();
527    systemPasteboard.clear((err, data) => {
528      if (err) {
529        console.error('f_test11: systemPasteboard.clear callback error:' + err);
530      } else {
531        var textData = 'Hello World!';
532        var pasteData = pasteboard.createPlainTextData(textData);
533        systemPasteboard.setPasteData(pasteData, (err, data) => {
534          if (err) {
535            console.error('f_test11: systemPasteboard.setPasteData callback error:' + err);
536          } else {
537            systemPasteboard.hasPasteData((err, data) => {
538              if (err) {
539                console.error('f_test11: systemPasteboard.hasPasteData callback error:' + err);
540              } else {
541                expect(data).assertEqual(true);
542                systemPasteboard.getPasteData((err, data) => {
543                  if (err) {
544                    console.error('f_test11: systemPasteboard.getPasteData callback error:' + err);
545                  } else {
546                    expect(data.getRecordCount()).assertEqual(1);
547                    var textData1 = 'Hello World1';
548                    var pasteDataRecord = pasteboard.createPlainTextRecord(textData1);
549                    var replace = data.replaceRecordAt(0, pasteDataRecord);
550                    expect(replace).assertEqual(true);
551                    var primaryText = data.getPrimaryText();
552                    expect(primaryText).assertEqual(textData1);
553                    done();
554                  }
555                });
556              }
557            });
558          }
559        });
560      }
561    });
562  });
563
564  /**
565   * @tc.name      pasteboard_function_test12
566   * @tc.desc      Replcae htmlRecord
567   * @tc.type      Function
568   * @tc.require   AR000H5GKU
569   */
570  it('pasteboard_function_test12', 0, async function (done) {
571    var systemPasteboard = pasteboard.getSystemPasteboard();
572    systemPasteboard.clear((err, data) => {
573      if (err) {
574        console.error('f_test12: systemPasteboard.clear callback error:' + err);
575      } else {
576        var htmlText = '<html><head></head><body>Hello World!</body></html>';
577        var pasteData = pasteboard.createHtmlData(htmlText);
578        systemPasteboard.setPasteData(pasteData, (err, data) => {
579          if (err) {
580            console.error('f_test12: systemPasteboard.setPasteData callback error:' + err);
581          } else {
582            systemPasteboard.hasPasteData((err, data) => {
583              if (err) {
584                console.error('f_test12: systemPasteboard.hasPasteData callback error:' + err);
585              } else {
586                expect(data).assertEqual(true);
587                systemPasteboard.getPasteData((err, data) => {
588                  if (err) {
589                    console.error('f_test12: systemPasteboard.getPasteData callback error:' + err);
590                  } else {
591                    expect(data.getRecordCount()).assertEqual(1);
592                    var htmlText1 = '<html><head></head><body>Hello World 1</body></html>';
593                    var pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText1);
594                    var replace = data.replaceRecordAt(0, pasteDataRecord);
595                    expect(replace).assertEqual(true);
596                    expect(data.getRecordCount()).assertEqual(1);
597                    var primaryHtml = data.getPrimaryHtml();
598                    expect(primaryHtml).assertEqual(htmlText1);
599                    done();
600                  }
601                });
602              }
603            });
604          }
605        });
606      }
607    });
608  });
609
610  /**
611   * @tc.name      pasteboard_function_test13
612   * @tc.desc      Replcae wantRecord
613   * @tc.type      Function
614   * @tc.require   AR000H5GKU
615   */
616  it('pasteboard_function_test13', 0, async function (done) {
617    var systemPasteboard = pasteboard.getSystemPasteboard();
618    systemPasteboard.clear((err, data) => {
619      if (err) {
620        console.error('f_test13: systemPasteboard.clear callback error:' + err);
621      } else {
622        var wantText0 = {
623          bundleName: 'com.example.myapplication3',
624          abilityName: 'com.example.myapplication3.MainAbility',
625        };
626        var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText0);
627        systemPasteboard.setPasteData(pasteData, (err, data) => {
628          if (err) {
629            console.error('f_test13: systemPasteboard.setPasteData callback error:' + err);
630          } else {
631            systemPasteboard.hasPasteData((err, data) => {
632              if (err) {
633                console.error('f_test13: systemPasteboard.hasPasteData callback error:' + err);
634              } else {
635                expect(data).assertEqual(true);
636                systemPasteboard.getPasteData((err, data) => {
637                  if (err) {
638                    console.error('f_test13: systemPasteboard.getPasteData callback error:' + err);
639                  } else {
640                    expect(data.getRecordCount()).assertEqual(1);
641                    var wantText1 = {
642                      bundleName: 'com.example.myapplication30',
643                      abilityName: 'com.example.myapplication30.MainAbility',
644                    };
645                    var pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText1);
646                    var replace = data.replaceRecordAt(0, pasteDataRecord);
647                    expect(replace).assertEqual(true);
648                    var primaryWant = data.getPrimaryWant();
649                    expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true);
650                    expect(primaryWant.bundleName).assertEqual(wantText1.bundleName);
651                    expect(primaryWant.abilityName).assertEqual(wantText1.abilityName);
652                    done();
653                  }
654                });
655              }
656            });
657          }
658        });
659      }
660    });
661  });
662
663  /**
664   * @tc.name      pasteboard_function_test14
665   * @tc.desc      get pasteData after clear wantData
666   * @tc.type      Function
667   * @tc.require   AR000H5GKU
668   */
669  it('pasteboard_function_test14', 0, async function (done) {
670    var systemPasteboard = pasteboard.getSystemPasteboard();
671    systemPasteboard.clear((err, data) => {
672      if (err) {
673        console.error('f_test14: systemPasteboard.clear callback error:' + err);
674      } else {
675        var wantText0 = {
676          bundleName: 'com.example.myapplication3',
677          abilityName: 'com.example.myapplication3.MainAbility',
678        };
679        var pasteData = pasteboard.createWantData(wantText0);
680        systemPasteboard.setPasteData(pasteData, (err, data) => {
681          if (err) {
682            console.error('f_test14: systemPasteboard.setPasteData callback error:' + err);
683          } else {
684            systemPasteboard.hasPasteData((err, data) => {
685              if (err) {
686                console.error('f_test14: systemPasteboard.hasPasteData callback error:' + err);
687              } else {
688                expect(data).assertEqual(true);
689                systemPasteboard.getPasteData((err, data) => {
690                  if (err) {
691                    console.error('f_test14: systemPasteboard.getPasteData callback error:' + err);
692                  } else {
693                    expect(data.getRecordCount()).assertEqual(1);
694                    systemPasteboard.clear((err, data) => {
695                      if (err) {
696                        console.error('f_test14: systemPasteboard.clear callback error:' + err);
697                      } else {
698                        systemPasteboard.getPasteData((err, data) => {
699                          if (err) {
700                            console.error('f_test14: systemPasteboard.getPasteData callback error:' + err);
701                          } else {
702                            expect(data.getRecordCount()).assertEqual(0);
703                            done();
704                          }
705                        });
706                      }
707                    });
708                  }
709                });
710              }
711            });
712          }
713        });
714      }
715    });
716  });
717
718  /**
719   * @tc.name      pasteboard_function_test15
720   * @tc.desc      getProperty and setProperty test
721   * @tc.require   AR000H5GKU
722   */
723  it('pasteboard_function_test15', 0, async function (done) {
724    var systemPasteboard = pasteboard.getSystemPasteboard();
725    systemPasteboard.clear((err, data) => {
726      if (err) {
727        console.error('f_test15: systemPasteboard.clear callback error:' + err);
728      } else {
729        var textData = 'Hello World!';
730        var pasteData = pasteboard.createPlainTextData(textData);
731        systemPasteboard.setPasteData(pasteData, (err, data) => {
732          if (err) {
733            console.error('f_test15: systemPasteboard.setPasteData callback error:' + err);
734          } else {
735            systemPasteboard.hasPasteData((err, data) => {
736              if (err) {
737                console.error('f_test15: systemPasteboard.hasPasteData callback error:' + err);
738              } else {
739                expect(data).assertEqual(true);
740                systemPasteboard.getPasteData((err, data) => {
741                  if (err) {
742                    console.error('f_test15: systemPasteboard.getPasteData callback error:' + err);
743                  } else {
744                    expect(data.getRecordCount()).assertEqual(1);
745                    var pasteDataProperty = data.getProperty();
746                    expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
747                    pasteDataProperty.shareOption = pasteboard.ShareOption.InApp;
748                    data.setProperty(pasteDataProperty);
749                    var pasteDataProperty1 = data.getProperty();
750                    expect(pasteDataProperty1.shareOption).assertEqual(pasteboard.ShareOption.InApp);
751                    done();
752                  }
753                });
754              }
755            });
756          }
757        });
758      }
759    });
760  });
761
762  /**
763   * @tc.name      pasteboard_function_test16
764   * @tc.desc      on test
765   * @tc.type      Function
766   * @tc.require   AR000H5GKU
767   */
768  it('pasteboard_function_test16', 0, async function (done) {
769    var systemPasteboard = pasteboard.getSystemPasteboard();
770    systemPasteboard.clear((err, data) => {
771      if (err) {
772        console.error('f_test16: systemPasteboard.clear callback error:' + err);
773      } else {
774        systemPasteboard.on('update', contentChanges);
775        var textData = 'Hello World!';
776        var pasteData = pasteboard.createPlainTextData(textData);
777        systemPasteboard.setPasteData(pasteData, (err, data) => {
778          if (err) {
779            console.error('f_test16: systemPasteboard.setPasteData callback error:' + err);
780          } else {
781            systemPasteboard.hasPasteData((err, data) => {
782              if (err) {
783                console.error('f_test16: systemPasteboard.hasPasteData callback error:' + err);
784              } else {
785                expect(data === true).assertEqual(true);
786                systemPasteboard.getPasteData((err, data) => {
787                  if (err) {
788                    console.error('f_test16: systemPasteboard.getPasteData callback error:' + err);
789                  } else {
790                    expect(data.getRecordCount()).assertEqual(1);
791                    expect(data.removeRecordAt(0)).assertEqual(true);
792                    expect(data.getRecordCount()).assertEqual(0);
793                    done();
794                  }
795                });
796              }
797            });
798          }
799        });
800      }
801    });
802  });
803
804  /**
805   * @tc.name      pasteboard_function_test17
806   * @tc.desc      off test
807   * @tc.type      Function
808   * @tc.require   AR000H5GKU
809   */
810  it('pasteboard_function_test17', 0, async function (done) {
811    var systemPasteboard = pasteboard.getSystemPasteboard();
812    systemPasteboard.clear((err, data) => {
813      if (err) {
814        console.error('f_test17: systemPasteboard.clear callback error:' + err);
815      } else {
816        systemPasteboard.off('update', contentChanges);
817        var textData = 'Hello World!';
818        var pasteData = pasteboard.createPlainTextData(textData);
819        systemPasteboard.setPasteData(pasteData, (err, data) => {
820          if (err) {
821            console.error('f_test17: systemPasteboard.setPasteData callback error:' + err);
822          } else {
823            systemPasteboard.hasPasteData((err, data) => {
824              if (err) {
825                console.error('f_test17: systemPasteboard.hasPasteData callback error:' + err);
826              } else {
827                expect(data).assertEqual(true);
828                systemPasteboard.getPasteData((err, data) => {
829                  if (err) {
830                    console.error('f_test17: systemPasteboard.getPasteData callback error:' + err);
831                  } else {
832                    expect(data.getRecordCount()).assertEqual(1);
833                    expect(data.removeRecordAt(0)).assertEqual(true);
834                    expect(data.getRecordCount()).assertEqual(0);
835                    done();
836                  }
837                });
838              }
839            });
840          }
841        });
842      }
843    });
844  });
845
846  /**
847   * @tc.name      pasteboard_function_test18
848   * @tc.desc      createRecord test
849   * @tc.type      Function
850   * @tc.require   AR000H5GKU
851   */
852  it('pasteboard_function_test18', 0, async function (done) {
853    var systemPasteboard = pasteboard.getSystemPasteboard();
854    systemPasteboard.clear().then(() => {
855      var buffer = new ArrayBuffer(128);
856      var opt = {
857        size: { height: 5, width: 5 },
858        pixelFormat: 3,
859        editable: true,
860        alphaType: 1,
861        scaleMode: 1,
862      };
863      var pasteData = pasteboard.createHtmlData('application/xml');
864      image.createPixelMap(buffer, opt).then((pixelMap) => {
865        expect(pixelMap.getPixelBytesNumber()).assertEqual(100);
866        var pixelMapRecord = pasteboard.createRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
867        pasteData.addRecord(pixelMapRecord);
868        systemPasteboard.setPasteData(pasteData).then(() => {
869          systemPasteboard.hasPasteData().then((data) => {
870            expect(data).assertEqual(true);
871            systemPasteboard.getPasteData().then((newPasteData) => {
872              var recordCount = newPasteData.getRecordCount();
873              expect(recordCount).assertEqual(2);
874              var newPixelMap = newPasteData.getPrimaryPixelMap();
875              var PixelMapBytesNumber = newPixelMap.getPixelBytesNumber();
876              expect(PixelMapBytesNumber).assertEqual(100);
877              var newHtmlData = newPasteData.getRecordAt(1);
878              expect(newHtmlData.htmlText).assertEqual('application/xml');
879              newPixelMap.getImageInfo().then((imageInfo) => {
880                expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true);
881                done();
882              });
883            });
884          });
885        });
886      });
887    });
888  });
889
890  /**
891   * @tc.name      pasteboard_function_test19
892   * @tc.desc      Add plainText、htmlText、uriText record
893   * @tc.type      Function
894   * @tc.require   AR000H5GKU
895   */
896  it('pasteboard_function_test19', 0, async function (done) {
897    var systemPasteboard = pasteboard.getSystemPasteboard();
898    systemPasteboard.clear((err, data) => {
899      if (err) {
900        console.error('f_test19: systemPasteboard.clear callback error:' + err);
901      } else {
902        var textData0 = 'Hello World0';
903        var pasteData = pasteboard.createPlainTextData(textData0);
904        var textData = '';
905        for (var i = 1; i < 5; i++) {
906          textData = 'Hello World';
907          textData = textData + i;
908          pasteData.addTextRecord(textData);
909        }
910        var htmlText = '';
911        for (var i = 0; i < 5; i++) {
912          htmlText = '<html><head></head><body>Hello World!</body></html>';
913          htmlText = htmlText + i;
914          pasteData.addHtmlRecord(htmlText);
915        }
916        var uriText = '';
917        for (var i = 0; i < 5; i++) {
918          uriText = 'https://www.baidu.com/';
919          uriText = uriText + i;
920          pasteData.addUriRecord(uriText);
921        }
922        systemPasteboard.setPasteData(pasteData, (err, data) => {
923          if (err) {
924            console.error('f_test19: systemPasteboard.setPasteData callback error:' + err);
925          } else {
926            systemPasteboard.hasPasteData((err, data) => {
927              if (err) {
928                console.error('f_test19: systemPasteboard.hasPasteData callback error:' + err);
929              } else {
930                expect(data).assertEqual(true);
931                systemPasteboard.getPasteData(async (err, data) => {
932                  if (err) {
933                    console.error('f_test19: systemPasteboard.getPasteData callback error:' + err);
934                  } else {
935                    expect(data.getRecordCount()).assertEqual(15);
936                    await systemPasteboard.clear();
937                    var newData = await systemPasteboard.getPasteData();
938                    expect(newData.getRecordCount()).assertEqual(0);
939                    done();
940                  }
941                });
942              }
943            });
944          }
945        });
946      }
947    });
948  });
949
950  /**
951   * @tc.name      pasteboard_function_test20
952   * @tc.desc      convertToText test
953   * @tc.type      Function
954   * @tc.require   AR000H5GKU
955   */
956  it('pasteboard_function_test20', 0, async function (done) {
957    var systemPasteboard = pasteboard.getSystemPasteboard();
958    systemPasteboard.clear((err, data) => {
959      if (err) {
960        console.error('f_test20: systemPasteboard.clear callback error:' + err);
961      } else {
962        var textData = 'Hello World!';
963        var pasteData = pasteboard.createPlainTextData(textData);
964        systemPasteboard.setPasteData(pasteData, (err, data) => {
965          if (err) {
966            console.error('f_test20: systemPasteboard.setPasteData callback error:' + err);
967          } else {
968            systemPasteboard.hasPasteData((err, data) => {
969              if (err) {
970                console.error('f_test20: systemPasteboard.hasPasteData callback error:' + err);
971              } else {
972                expect(data).assertEqual(true);
973                systemPasteboard.getPasteData(async (err, data) => {
974                  if (err) {
975                    console.error('f_test20: systemPasteboard.getPasteData callback error:' + err);
976                  } else {
977                    expect(data.getRecordCount()).assertEqual(1);
978                    var dataRecord = data.getRecordAt(0);
979                    var text = await dataRecord.convertToText();
980                    expect(text).assertEqual(textData);
981                    done();
982                  }
983                });
984              }
985            });
986          }
987        });
988      }
989    });
990  });
991
992  /**
993   * @tc.name      pasteboard_function_test21
994   * @tc.desc      convertToText test
995   * @tc.type      Function
996   * @tc.require   AR000H5GKU
997   */
998  it('pasteboard_function_test21', 0, async function (done) {
999    var systemPasteboard = pasteboard.getSystemPasteboard();
1000    systemPasteboard.clear((err, data) => {
1001      if (err) {
1002        console.error('f_test21: systemPasteboard.clear callback error:' + err);
1003      } else {
1004        var textData = 'Hello World!';
1005        var pasteData = pasteboard.createPlainTextData(textData);
1006        systemPasteboard.setPasteData(pasteData, (err, data) => {
1007          if (err) {
1008            console.error('f_test21: systemPasteboard.setPasteData callback error:' + err);
1009          } else {
1010            systemPasteboard.hasPasteData((err, data) => {
1011              if (err) {
1012                console.error('f_test21: systemPasteboard.hasPasteData callback error:' + err);
1013              } else {
1014                expect(data).assertEqual(true);
1015                systemPasteboard.getPasteData((err, data) => {
1016                  if (err) {
1017                    console.error('f_test21: systemPasteboard.getPasteData callback error:' + err);
1018                  } else {
1019                    expect(data.getRecordCount()).assertEqual(1);
1020                    var dataRecord = data.getRecordAt(0);
1021                    dataRecord.convertToText((err, data) => {
1022                      if (err) {
1023                        console.error('f_test21: PasteDataRecord.convertToText callback error:' + err);
1024                      } else {
1025                        expect(data).assertEqual(textData);
1026                        done();
1027                      }
1028                    });
1029                  }
1030                });
1031              }
1032            });
1033          }
1034        });
1035      }
1036    });
1037  });
1038
1039  /**
1040   * @tc.name      pasteboard_function_test22
1041   * @tc.desc      convertToText test
1042   * @tc.type      Function
1043   * @tc.require   AR000H5GKU
1044   */
1045  it('pasteboard_function_test22', 0, async function (done) {
1046    var systemPasteboard = pasteboard.getSystemPasteboard();
1047    systemPasteboard.clear((err, data) => {
1048      if (err) {
1049        console.error('f_test22: systemPasteboard.clear callback error:' + err);
1050      } else {
1051        var textData = 'Hello 中国!@#$%^&*()_+{}\\?.';
1052        var pasteData = pasteboard.createPlainTextData(textData);
1053        systemPasteboard.setPasteData(pasteData, (err, data) => {
1054          if (err) {
1055            console.error('f_test22: systemPasteboard.setPasteData callback error:' + err);
1056          } else {
1057            systemPasteboard.hasPasteData((err, data) => {
1058              if (err) {
1059                console.error('f_test22: systemPasteboard.hasPasteData callback error:' + err);
1060              } else {
1061                expect(data).assertEqual(true);
1062                systemPasteboard.getPasteData(async (err, data) => {
1063                  if (err) {
1064                    console.error('f_test22: systemPasteboard.getPasteData callback error:' + err);
1065                  } else {
1066                    expect(data.getRecordCount()).assertEqual(1);
1067                    var dataRecord = data.getRecordAt(0);
1068                    var text = await dataRecord.convertToText();
1069                    expect(text).assertEqual(textData);
1070                    done();
1071                  }
1072                });
1073              }
1074            });
1075          }
1076        });
1077      }
1078    });
1079  });
1080
1081  /**
1082   * @tc.name      pasteboard_function_test23
1083   * @tc.desc      convertToText test
1084   * @tc.type      Function
1085   * @tc.require   AR000H5GKU
1086   */
1087  it('pasteboard_function_test23', 0, async function (done) {
1088    var systemPasteboard = pasteboard.getSystemPasteboard();
1089    systemPasteboard.clear((err, data) => {
1090      if (err) {
1091        console.error('f_test23: systemPasteboard.clear callback error:' + err);
1092      } else {
1093        var uriText = 'https://www.baidu.com/';
1094        var pasteData = pasteboard.createUriData(uriText);
1095        systemPasteboard.setPasteData(pasteData, (err, data) => {
1096          if (err) {
1097            console.error('f_test23: systemPasteboard.setPasteData callback error:' + err);
1098          } else {
1099            systemPasteboard.hasPasteData((err, data) => {
1100              if (err) {
1101                console.error('f_test23: systemPasteboard.hasPasteData callback error:' + err);
1102              } else {
1103                expect(data).assertEqual(true);
1104                systemPasteboard.getPasteData(async (err, data) => {
1105                  if (err) {
1106                    console.error('f_test23: systemPasteboard.getPasteData callback error:' + err);
1107                  } else {
1108                    expect(data.getRecordCount()).assertEqual(1);
1109                    var dataRecord = data.getRecordAt(0);
1110                    var text = await dataRecord.convertToText();
1111                    expect(text).assertEqual(uriText);
1112                    done();
1113                  }
1114                });
1115              }
1116            });
1117          }
1118        });
1119      }
1120    });
1121  });
1122
1123  /**
1124   *  The callback function is used for pasteboard content changes
1125   */
1126  function contentChanges() {
1127    console.info('#EVENT: The content is changed in the pasteboard');
1128  }
1129});
1130