• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022-2023 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_promise_test1
31   * @tc.desc      Adds PlainTextData
32   * @tc.type      Function
33   * @tc.require   AR000H5HVI
34   */
35  it('pasteboard_promise_test1', 0, async function (done) {
36    const systemPasteboard = pasteboard.getSystemPasteboard();
37    await systemPasteboard.clearData();
38    const textData1 = 'Hello World!';
39    const pasteData = pasteboard.createPlainTextData(textData1);
40    await systemPasteboard.setPasteData(pasteData);
41    const res = await systemPasteboard.hasPasteData();
42    expect(res).assertEqual(true);
43    const types = pasteData.getMimeTypes();
44    expect('text/plain').assertEqual(types[0]);
45    systemPasteboard.getPasteData().then((data) => {
46      const pasteData1 = data;
47      expect(pasteData1.getRecordCount()).assertEqual(1);
48      const primaryText = pasteData1.getPrimaryText();
49      expect(primaryText).assertEqual(textData1);
50      expect(pasteboard.MAX_RECORD_NUM).assertEqual(512);
51      expect(pasteData1.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
52      done();
53    });
54  });
55
56  /**
57   * @tc.name      pasteboard_promise_test2
58   * @tc.desc      Adds PlainTextData = ''
59   * @tc.type      Function
60   * @tc.require   AR000H5HVI
61   */
62  it('pasteboard_promise_test2', 0, async function (done) {
63    const systemPasteboard = pasteboard.getSystemPasteboard();
64    await systemPasteboard.clearData();
65    const textData2 = '';
66    const pasteData = pasteboard.createPlainTextData(textData2);
67    await systemPasteboard.setPasteData(pasteData);
68    const res2 = await systemPasteboard.hasPasteData();
69    expect(res2).assertEqual(true);
70    systemPasteboard.getPasteData().then((data) => {
71      const recordCount2 = data.getRecordCount();
72      expect(recordCount2).assertEqual(1);
73      done();
74    });
75  });
76
77  /**
78   * @tc.name      pasteboard_promise_test3
79   * @tc.desc      Adds PlainTextData = 'Hello 中国!@#$%^&*()_+{}\?.'
80   * @tc.type      Function
81   * @tc.require   AR000H5HVI
82   */
83  it('pasteboard_promise_test3', 0, async function (done) {
84    const systemPasteboard = pasteboard.getSystemPasteboard();
85    await systemPasteboard.clearData();
86    const textData3 = 'Hello 中国!@#$%^&*()_+{}?.';
87    const pasteData = pasteboard.createPlainTextData(textData3);
88    await systemPasteboard.setPasteData(pasteData);
89    const res3 = await systemPasteboard.hasPasteData();
90    expect(res3).assertEqual(true);
91    systemPasteboard.getPasteData().then((data) => {
92      const pasteData3 = data;
93      expect(pasteData3.getRecordCount()).assertEqual(1);
94      const primaryText = pasteData3.getPrimaryText();
95      expect(primaryText).assertEqual(textData3);
96      expect(pasteData3.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
97      done();
98    });
99  });
100
101  /**
102   * @tc.name      pasteboard_promise_test4
103   * @tc.desc      Adds 300K PlainTextData
104   * @tc.type      Function
105   * @tc.require   AR000H5HVI
106   */
107  it('pasteboard_promise_test4', 0, async function (done) {
108    const systemPasteboard = pasteboard.getSystemPasteboard();
109    await systemPasteboard.clearData();
110    let textData4 = '';
111    for (let i = 0; i < 300; i++) {
112      textData4 = textData4 + 'A';
113    }
114    const pasteData = pasteboard.createPlainTextData(textData4);
115    await systemPasteboard.setPasteData(pasteData);
116    const res4 = await systemPasteboard.hasPasteData();
117    expect(res4).assertEqual(true);
118    systemPasteboard.getPasteData().then((data) => {
119      const pasteData4 = data;
120      expect(pasteData4.getRecordCount()).assertEqual(1);
121      const primaryText = pasteData4.getPrimaryText();
122      expect(primaryText).assertEqual(textData4);
123      expect(pasteData4.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
124      expect(pasteData4.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
125      done();
126    });
127  });
128
129  /**
130   * @tc.name      pasteboard_promise_test5
131   * @tc.desc      Adds htmlText
132   * @tc.type      Function
133   * @tc.require   AR000H5HVI
134   */
135  it('pasteboard_promise_test5', 0, async function (done) {
136    const systemPasteboard = pasteboard.getSystemPasteboard();
137    await systemPasteboard.clearData();
138    const htmlText5 = '<html><head></head><body>Hello World!</body></html>';
139    const pasteData = pasteboard.createHtmlData(htmlText5);
140    await systemPasteboard.setPasteData(pasteData);
141    const res5 = await systemPasteboard.hasPasteData();
142    expect(res5).assertEqual(true);
143    systemPasteboard.getPasteData().then((data) => {
144      const pasteData5 = data;
145      expect(pasteData5.getRecordCount()).assertEqual(1);
146      const primaryHtml6 = pasteData5.getPrimaryHtml();
147      expect(primaryHtml6).assertEqual(htmlText5);
148      expect(pasteData5.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
149      expect(pasteData5.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
150      done();
151    });
152  });
153
154  /**
155   * @tc.name      pasteboard_promise_test6
156   * @tc.desc      Adds htmlText = ''
157   * @tc.type      Function
158   * @tc.require   AR000H5HVI
159   */
160  it('pasteboard_promise_test6', 0, async function (done) {
161    const systemPasteboard = pasteboard.getSystemPasteboard();
162    await systemPasteboard.clearData();
163    const htmlText6 = '';
164    const pasteData = pasteboard.createHtmlData(htmlText6);
165    await systemPasteboard.setPasteData(pasteData);
166    const res6 = await systemPasteboard.hasPasteData();
167    expect(res6).assertEqual(true);
168    systemPasteboard.getPasteData().then((data) => {
169      expect(data.getRecordCount()).assertEqual(1);
170      const primaryHtml6 = data.getPrimaryHtml();
171      expect(primaryHtml6).assertEqual(htmlText6);
172      expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
173      expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
174      done();
175    });
176  });
177
178  /**
179   * @tc.name      pasteboard_promise_test7
180   * @tc.desc      Adds htmlText = 'Hello 中国!@#$%^&*()_+{}\?.'
181   * @tc.type      Function
182   * @tc.require   AR000H5HVI
183   */
184  it('pasteboard_promise_test7', 0, async function (done) {
185    const systemPasteboard = pasteboard.getSystemPasteboard();
186    await systemPasteboard.clearData();
187    const htmlText = 'Hello 中国!@#$%^&*()_+{}?.';
188    const pasteData = pasteboard.createHtmlData(htmlText);
189    await systemPasteboard.setPasteData(pasteData);
190    const res = await systemPasteboard.hasPasteData();
191    expect(res).assertEqual(true);
192    systemPasteboard.getPasteData().then((data) => {
193      expect(data.getRecordCount()).assertEqual(1);
194      expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
195      expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
196      expect(data.getPrimaryHtml()).assertEqual(htmlText);
197      done();
198    });
199  });
200
201  /**
202   * @tc.name      pasteboard_promise_test8
203   * @tc.desc      Adds uriText
204   * @tc.type      Function
205   * @tc.require   AR000H5HVI
206   */
207  it('pasteboard_promise_test8', 0, async function (done) {
208    const systemPasteboard = pasteboard.getSystemPasteboard();
209    await systemPasteboard.clearData();
210    const uriText8 = 'https://www.baidu.com/';
211    const pasteData = pasteboard.createUriData(uriText8);
212    await systemPasteboard.setPasteData(pasteData);
213    const res8 = await systemPasteboard.hasPasteData();
214    expect(res8).assertEqual(true);
215    systemPasteboard.getPasteData().then((data) => {
216      expect(data.getRecordCount()).assertEqual(1);
217      const primaryUri8 = data.getPrimaryUri();
218      expect(primaryUri8).assertEqual(uriText8);
219      expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
220      done();
221    });
222  });
223
224  /**
225   * @tc.name      pasteboard_promise_test9
226   * @tc.desc      Adds uriText = ''
227   * @tc.type      Function
228   * @tc.require   AR000H5HVI
229   */
230  it('pasteboard_promise_test9', 0, async function (done) {
231    const systemPasteboard = pasteboard.getSystemPasteboard();
232    await systemPasteboard.clearData();
233    const uriText9 = '';
234    const pasteData = pasteboard.createUriData(uriText9);
235    await systemPasteboard.setPasteData(pasteData);
236    const res9 = await systemPasteboard.hasPasteData();
237    expect(res9).assertEqual(true);
238    systemPasteboard.getPasteData().then((data) => {
239      expect(data.getRecordCount()).assertEqual(1);
240      expect(data.getPrimaryUri()).assertEqual(uriText9);
241      done();
242    });
243  });
244
245  /**
246   * @tc.name      pasteboard_promise_test10
247   * @tc.desc      Set uriText = 'Hello //'
248   * @tc.type      Function
249   * @tc.require   AR000H5HVI
250   */
251  it('pasteboard_promise_test10', 0, async function (done) {
252    const systemPasteboard = pasteboard.getSystemPasteboard();
253    await systemPasteboard.clearData();
254    const uriText10 = 'Hello//';
255    const pasteData = pasteboard.createUriData(uriText10);
256    await systemPasteboard.setPasteData(pasteData);
257    const res10 = await systemPasteboard.hasPasteData();
258    expect(res10).assertEqual(true);
259    systemPasteboard.getPasteData().then((data) => {
260      expect(data.getRecordCount()).assertEqual(1);
261      expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
262      expect(data.getPrimaryUri()).assertEqual(uriText10);
263      done();
264    });
265  });
266
267  /**
268   * @tc.name      pasteboard_promise_test11
269   * @tc.desc      Adds want
270   * @tc.type      Function
271   * @tc.require   AR000H5HVI
272   */
273  it('pasteboard_promise_test11', 0, async function (done) {
274    const systemPasteboard = pasteboard.getSystemPasteboard();
275    await systemPasteboard.clearData();
276    const want11 = {
277      bundleName: 'com.example.myapplication8',
278      abilityName: 'com.example.myapplication8.MainAbility',
279    };
280    const pasteData = pasteboard.createWantData(want11);
281    await systemPasteboard.setPasteData(pasteData);
282    const res11 = await systemPasteboard.hasPasteData();
283    expect(res11).assertEqual(true);
284    systemPasteboard.getPasteData().then((data) => {
285      expect(data.getRecordCount()).assertEqual(1);
286      const primaryWant = data.getPrimaryWant();
287      expect(want11.bundleName).assertEqual(primaryWant.bundleName);
288      expect(want11.abilityName).assertEqual(primaryWant.abilityName);
289      expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true);
290      done();
291    });
292  });
293
294  /**
295   * @tc.name      pasteboard_promise_test12
296   * @tc.desc      Adds one record(s)
297   * @tc.type      Function
298   * @tc.require   AR000H5HVI
299   */
300  it('pasteboard_promise_test12', 0, async function (done) {
301    const systemPasteboard = pasteboard.getSystemPasteboard();
302    await systemPasteboard.clearData();
303    const textData12 = 'Hello World!';
304    const pasteData = pasteboard.createPlainTextData(textData12);
305    await systemPasteboard.setPasteData(pasteData);
306    const res12 = await systemPasteboard.hasPasteData();
307    expect(res12).assertEqual(true);
308    systemPasteboard.getPasteData().then((data) => {
309      expect(data.getRecordCount()).assertEqual(1);
310      let recordText12 = data.getRecordAt(0).plainText;
311      expect(recordText12).assertEqual(textData12);
312      done();
313    });
314  });
315
316  /**
317   * @tc.name      pasteboard_promise_test13
318   * @tc.desc      Adds 2 record(s)
319   * @tc.type      Function
320   * @tc.require   AR000H5HVI
321   */
322  it('pasteboard_promise_test13', 0, async function (done) {
323    const systemPasteboard = pasteboard.getSystemPasteboard();
324    await systemPasteboard.clearData();
325    const textData130 = 'Hello World!';
326    const pasteData = pasteboard.createPlainTextData(textData130);
327    const textData131 = 'Hello World1';
328    pasteData.addTextRecord(textData131);
329    await systemPasteboard.setPasteData(pasteData);
330    const res13 = await systemPasteboard.hasPasteData();
331    expect(res13).assertEqual(true);
332    systemPasteboard.getPasteData().then((data) => {
333      expect(data.getRecordCount()).assertEqual(2);
334      const dataRecord130 = data.getRecordAt(0);
335      const dataRecord131 = data.getRecordAt(1);
336      expect(dataRecord130.plainText).assertEqual(textData131);
337      expect(dataRecord131.plainText).assertEqual(textData130);
338      done();
339    });
340  });
341
342  /**
343   * @tc.name      pasteboard_promise_test14
344   * @tc.desc      Adds 15 record(s)
345   * @tc.type      Function
346   * @tc.require   AR000H5HVI
347   */
348  it('pasteboard_promise_test14', 0, async function (done) {
349    const systemPasteboard = pasteboard.getSystemPasteboard();
350    await systemPasteboard.clearData();
351    const textData140 = 'Hello World!';
352    const pasteData = pasteboard.createPlainTextData(textData140);
353    let textData14 = '';
354    for (let i = 1; i < 15; i++) {
355      textData14 = 'Hello World';
356      textData14 = textData14 + i;
357      pasteData.addTextRecord(textData14);
358    }
359    await systemPasteboard.setPasteData(pasteData);
360    const res14 = await systemPasteboard.hasPasteData();
361    expect(res14).assertEqual(true);
362    systemPasteboard.getPasteData().then((data) => {
363      expect(data.getRecordCount()).assertEqual(15);
364      const dataRecord14 = data.getRecordAt(14);
365      expect(dataRecord14.plainText).assertEqual(textData140);
366      done();
367    });
368  });
369
370  /**
371   * @tc.name      pasteboard_promise_test15
372   * @tc.desc      Adds 30 record(s)
373   * @tc.type      Function
374   * @tc.require   AR000H5HVI
375   */
376  it('pasteboard_promise_test15', 0, async function (done) {
377    const systemPasteboard = pasteboard.getSystemPasteboard();
378    await systemPasteboard.clearData();
379    const textData150 = 'Hello World!';
380    const pasteData = pasteboard.createPlainTextData(textData150);
381    let textData15 = '';
382    for (let i = 1; i < 30; i++) {
383      textData15 = 'Hello World';
384      textData15 = textData15 + i;
385      pasteData.addTextRecord(textData15);
386    }
387    await systemPasteboard.setPasteData(pasteData);
388    const res15 = await systemPasteboard.hasPasteData();
389    expect(res15).assertEqual(true);
390    systemPasteboard.getPasteData().then((data) => {
391      expect(data.getRecordCount()).assertEqual(30);
392      const dataRecord15 = data.getRecordAt(0);
393      expect(dataRecord15.plainText).assertEqual('Hello World29');
394      done();
395    });
396  });
397
398  /**
399   * @tc.name      pasteboard_promise_test16
400   * @tc.desc      Adds 31 record(s)
401   * @tc.type      Function
402   * @tc.require   AR000H5HVI
403   */
404  it('pasteboard_promise_test16', 0, async function (done) {
405    const systemPasteboard = pasteboard.getSystemPasteboard();
406    await systemPasteboard.clearData();
407    const textData160 = 'Hello World!';
408    const pasteData = pasteboard.createPlainTextData(textData160);
409    let textData16 = '';
410    for (let i = 1; i < 31; i++) {
411      textData16 = 'Hello World';
412      textData16 = textData16 + i;
413      pasteData.addTextRecord(textData16);
414    }
415    await systemPasteboard.setPasteData(pasteData);
416    const res16 = await systemPasteboard.hasPasteData();
417    expect(res16).assertEqual(true);
418    systemPasteboard.getPasteData().then((data) => {
419      const recordCount16 = data.getRecordCount();
420      expect(recordCount16).assertEqual(31);
421      const dataRecord16 = data.getRecordAt(0);
422      expect(dataRecord16.plainText).assertEqual('Hello World30');
423      done();
424    });
425  });
426
427  /**
428   * @tc.name      pasteboard_promise_test17
429   * @tc.desc      Adds PlainText,HtmlText,UriText
430   * @tc.type      Function
431   * @tc.require   AR000H5HVI
432   */
433  it('pasteboard_promise_test17', 0, async function (done) {
434    const systemPasteboard = pasteboard.getSystemPasteboard();
435    await systemPasteboard.clearData();
436    const textData17 = 'Hello World!';
437    const pasteData = pasteboard.createPlainTextData(textData17);
438    const htmlText17 = '<html><head></head><body>Hello World!</body></html>';
439    pasteData.addHtmlRecord(htmlText17);
440    const uriText17 = 'https://www.baidu.com/';
441    pasteData.addUriRecord(uriText17);
442    const want17 = {
443      bundleName: 'com.example.myapplication8',
444      abilityName: 'com.example.myapplication8.MainAbility',
445    };
446    pasteData.addWantRecord(want17);
447    await systemPasteboard.setPasteData(pasteData);
448    const res17 = await systemPasteboard.hasPasteData();
449    expect(res17).assertEqual(true);
450    systemPasteboard.getPasteData().then((data) => {
451      expect(data.getRecordCount()).assertEqual(4);
452      const wantRecord17 = data.getPrimaryWant();
453      expect(wantRecord17.bundleName).assertEqual(want17.bundleName);
454      expect(wantRecord17.abilityName).assertEqual(want17.abilityName);
455      done();
456    });
457  });
458
459  /**
460   * @tc.name      pasteboard_promise_test18
461   * @tc.desc      Delete one PlainTextData
462   * @tc.type      Function
463   * @tc.require   AR000H5HVI
464   */
465  it('pasteboard_promise_test18', 0, async function (done) {
466    const systemPasteboard = pasteboard.getSystemPasteboard();
467    await systemPasteboard.clearData();
468    const textData18 = 'Hello World!';
469    const pasteData = pasteboard.createPlainTextData(textData18);
470    await systemPasteboard.setPasteData(pasteData);
471    const res18 = await systemPasteboard.hasPasteData();
472    expect(res18).assertEqual(true);
473    const pasteData18 = await systemPasteboard.getPasteData();
474    expect(pasteData18.getRecordCount()).assertEqual(1);
475    expect(pasteData18.removeRecordAt(0)).assertEqual(true);
476    await systemPasteboard.setPasteData(pasteData18);
477    systemPasteboard.getPasteData().then((data) => {
478      const recordCount18 = data.getRecordCount();
479      expect(recordCount18).assertEqual(0);
480      done();
481    });
482  });
483
484  /**
485   * @tc.name      pasteboard_promise_test19
486   * @tc.desc      Delete one htmlText
487   * @tc.type      Function
488   * @tc.require   AR000H5HVI
489   */
490  it('pasteboard_promise_test19', 0, async function (done) {
491    const systemPasteboard = pasteboard.getSystemPasteboard();
492    await systemPasteboard.clearData();
493    const htmlText19 = '<html><head></head><body>Hello World!</body></html>';
494    const pasteData = pasteboard.createHtmlData(htmlText19);
495    await systemPasteboard.setPasteData(pasteData);
496    const res19 = await systemPasteboard.hasPasteData();
497    expect(res19).assertEqual(true);
498    const pasteData19 = await systemPasteboard.getPasteData();
499    expect(pasteData19.getRecordCount()).assertEqual(1);
500    expect(pasteData19.removeRecordAt(0)).assertEqual(true);
501    await systemPasteboard.setPasteData(pasteData19);
502    systemPasteboard.getPasteData().then((data) => {
503      const recordCount19 = data.getRecordCount();
504      expect(recordCount19).assertEqual(0);
505      done();
506    });
507  });
508
509  /**
510   * @tc.name      pasteboard_promise_test20
511   * @tc.desc      Delete one uriText
512   * @tc.type      Function
513   * @tc.require   AR000H5HVI
514   */
515  it('pasteboard_promise_test20', 0, async function (done) {
516    const systemPasteboard = pasteboard.getSystemPasteboard();
517    await systemPasteboard.clearData();
518    const uriText20 = 'https://www.baidu.com/';
519    const pasteData = pasteboard.createUriData(uriText20);
520    await systemPasteboard.setPasteData(pasteData);
521    const res20 = await systemPasteboard.hasPasteData();
522    expect(res20).assertEqual(true);
523    const pasteData20 = await systemPasteboard.getPasteData();
524    expect(pasteData20.getRecordCount()).assertEqual(1);
525    expect(pasteData20.removeRecordAt(0)).assertEqual(true);
526    await systemPasteboard.setPasteData(pasteData20);
527    systemPasteboard.getPasteData().then((data) => {
528      const recordCount20 = data.getRecordCount();
529      expect(recordCount20).assertEqual(0);
530      done();
531    });
532  });
533
534  /**
535   * @tc.name      pasteboard_promise_test21
536   * @tc.desc      Delete one want
537   * @tc.type      Function
538   * @tc.require   AR000H5I1D
539   */
540  it('pasteboard_promise_test21', 0, async function (done) {
541    const systemPasteboard = pasteboard.getSystemPasteboard();
542    await systemPasteboard.clearData();
543    const want21 = {
544      bundleName: 'com.example.myapplication8',
545      abilityName: 'com.example.myapplication8.MainAbility',
546    };
547    const pasteData = pasteboard.createWantData(want21);
548    await systemPasteboard.setPasteData(pasteData);
549    const res21 = await systemPasteboard.hasPasteData();
550    expect(res21).assertEqual(true);
551    const pasteData21 = await systemPasteboard.getPasteData();
552    expect(pasteData21.getRecordCount()).assertEqual(1);
553    expect(pasteData21.removeRecordAt(0)).assertEqual(true);
554    await systemPasteboard.setPasteData(pasteData21);
555    systemPasteboard.getPasteData().then((data) => {
556      const recordCount21 = data.getRecordCount();
557      expect(recordCount21).assertEqual(0);
558      done();
559    });
560  });
561
562  /**
563   * @tc.name      pasteboard_promise_test22
564   * @tc.desc      Deletes 300K PlainTextData
565   * @tc.type      Function
566   * @tc.require   AR000H5I1D
567   */
568  it('pasteboard_promise_test22', 0, async function (done) {
569    const systemPasteboard = pasteboard.getSystemPasteboard();
570    await systemPasteboard.clearData();
571    let textData22 = '';
572    for (let i = 0; i < 300; i++) {
573      textData22 = textData22 + 'A';
574    }
575    const pasteData = pasteboard.createPlainTextData(textData22);
576    await systemPasteboard.setPasteData(pasteData);
577    const res22 = await systemPasteboard.hasPasteData();
578    expect(res22).assertEqual(true);
579    const pasteData22 = await systemPasteboard.getPasteData();
580    expect(pasteData22.getRecordCount()).assertEqual(1);
581    expect(pasteData22.removeRecordAt(0)).assertEqual(true);
582    await systemPasteboard.setPasteData(pasteData22);
583    systemPasteboard.getPasteData().then((data) => {
584      const recordCount22 = data.getRecordCount();
585      expect(recordCount22).assertEqual(0);
586      done();
587    });
588  });
589
590  /**
591   * @tc.name      pasteboard_promise_test23
592   * @tc.desc      Deletes 30 record(s)
593   * @tc.type      Function
594   * @tc.require   AR000H5I1D
595   */
596  it('pasteboard_promise_test23', 0, async function (done) {
597    const systemPasteboard = pasteboard.getSystemPasteboard();
598    await systemPasteboard.clearData();
599    const textData230 = 'Hello World';
600    const pasteData = pasteboard.createPlainTextData(textData230);
601    let textData23 = '';
602    for (let i = 1; i < 30; i++) {
603      textData23 = 'Hello World';
604      textData23 = textData23 + i;
605      pasteData.addTextRecord(textData23);
606    }
607    await systemPasteboard.setPasteData(pasteData);
608    const res23 = await systemPasteboard.hasPasteData();
609    expect(res23).assertEqual(true);
610    const pasteData23 = await systemPasteboard.getPasteData();
611    expect(pasteData23.getRecordCount()).assertEqual(30);
612    for (let i = 0; i < 30; i++) {
613      expect(pasteData23.removeRecordAt(0)).assertEqual(true);
614    }
615    expect(pasteData23.getRecordCount()).assertEqual(0);
616    systemPasteboard.setPasteData(pasteData23).then(() => {
617      systemPasteboard.getPasteData().then((data) => {
618        let recordCount23 = data.getRecordCount();
619        expect(recordCount23).assertEqual(0);
620        done();
621      });
622    });
623  });
624
625  /**
626   * @tc.name      pasteboard_promise_test24
627   * @tc.desc      Deletes replaced record
628   * @tc.type      Function
629   * @tc.require   AR000H5I1D
630   */
631  it('pasteboard_promise_test24', 0, async function (done) {
632    const systemPasteboard = pasteboard.getSystemPasteboard();
633    await systemPasteboard.clearData();
634    const textData24 = 'Hello World!';
635    const pasteData = pasteboard.createPlainTextData(textData24);
636    await systemPasteboard.setPasteData(pasteData);
637    const res24 = await systemPasteboard.hasPasteData();
638    expect(res24).assertEqual(true);
639    const pasteData24 = await systemPasteboard.getPasteData();
640    expect(pasteData24.getRecordCount()).assertEqual(1);
641    const textData241 = 'Hello World1';
642    const pasteDataRecord = pasteboard.createPlainTextRecord(textData241);
643    const replace = pasteData24.replaceRecordAt(0, pasteDataRecord);
644    expect(replace).assertEqual(true);
645    const primaryText = pasteData24.getPrimaryText();
646    expect(primaryText).assertEqual(textData241);
647    expect(pasteData24.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
648    const dataRecord = pasteData24.getRecordAt(0);
649    expect(dataRecord.plainText).assertEqual(textData241);
650    expect(pasteData24.removeRecordAt(0)).assertEqual(true);
651    systemPasteboard.setPasteData(pasteData24).then(() => {
652      systemPasteboard.getPasteData().then((data) => {
653        const recordCount24 = data.getRecordCount();
654        expect(recordCount24).assertEqual(0);
655        done();
656      });
657    });
658  });
659
660  /**
661   * @tc.name      pasteboard_promise_test25
662   * @tc.desc      Deletes 文本、uri、html
663   * @tc.type      Function
664   * @tc.require   AR000H5I1D
665   */
666  it('pasteboard_promise_test25', 0, async function (done) {
667    const systemPasteboard = pasteboard.getSystemPasteboard();
668    await systemPasteboard.clearData();
669    const textData25 = 'Hello World!';
670    const pasteData = pasteboard.createPlainTextData(textData25);
671    const htmlText25 = '<html><head></head><body>Hello World!</body></html>';
672    pasteData.addHtmlRecord(htmlText25);
673    const uriText25 = 'https://www.baidu.com/';
674    pasteData.addUriRecord(uriText25);
675    await systemPasteboard.setPasteData(pasteData);
676    const res25 = await systemPasteboard.hasPasteData();
677    expect(res25).assertEqual(true);
678    const pasteData25 = await systemPasteboard.getPasteData();
679    expect(pasteData25.getRecordCount()).assertEqual(3);
680    expect(pasteData25.removeRecordAt(0)).assertEqual(true);
681    expect(pasteData25.removeRecordAt(0)).assertEqual(true);
682    expect(pasteData25.removeRecordAt(0)).assertEqual(true);
683    systemPasteboard.setPasteData(pasteData25).then(() => {
684      systemPasteboard.getPasteData().then((data) => {
685        const recordCount25 = data.getRecordCount();
686        expect(recordCount25).assertEqual(0);
687        done();
688      });
689    });
690  });
691
692  /**
693   * @tc.name      pasteboard_promise_test26
694   * @tc.desc      Replaces 文本 record
695   * @tc.type      Function
696   * @tc.require   AR000H5I1D
697   */
698  it('pasteboard_promise_test26', 0, async function (done) {
699    const systemPasteboard = pasteboard.getSystemPasteboard();
700    await systemPasteboard.clearData();
701    const textData26 = 'Hello World!';
702    const pasteData = pasteboard.createPlainTextData(textData26);
703    await systemPasteboard.setPasteData(pasteData);
704    const res26 = await systemPasteboard.hasPasteData();
705    expect(res26).assertEqual(true);
706    systemPasteboard.getPasteData().then((data) => {
707      const pasteData26 = data;
708      expect(pasteData26.getRecordCount()).assertEqual(1);
709      const textData261 = 'Hello World1';
710      const pasteDataRecord = pasteboard.createPlainTextRecord(textData261);
711      const replace26 = pasteData26.replaceRecordAt(0, pasteDataRecord);
712      expect(replace26).assertEqual(true);
713      const primaryText26 = pasteData26.getPrimaryText();
714      expect(primaryText26).assertEqual(textData261);
715      done();
716    });
717  });
718
719  /**
720   * @tc.name      pasteboard_promise_test27
721   * @tc.desc      Replaces htmlText record
722   * @tc.type      Function
723   * @tc.require   AR000H5I1D
724   */
725  it('pasteboard_promise_test27', 0, async function (done) {
726    const systemPasteboard = pasteboard.getSystemPasteboard();
727    await systemPasteboard.clearData();
728    const htmlText27 = '<html><head></head><body>Hello World!</body></html>';
729    const pasteData = pasteboard.createHtmlData(htmlText27);
730    await systemPasteboard.setPasteData(pasteData);
731    const res27 = await systemPasteboard.hasPasteData();
732    expect(res27).assertEqual(true);
733    systemPasteboard.getPasteData().then((data) => {
734      const pasteData27 = data;
735      expect(pasteData27.getRecordCount()).assertEqual(1);
736      const htmlText27 = '<html><head></head><body>Hello World 1</body></html>';
737      const pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText27);
738      const replace27 = pasteData27.replaceRecordAt(0, pasteDataRecord);
739      expect(replace27).assertEqual(true);
740      const primaryHtml271 = pasteData27.getPrimaryHtml();
741      expect(primaryHtml271).assertEqual(htmlText27);
742      expect(pasteData27.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
743      const primaryHtml272 = pasteData27.getPrimaryHtml();
744      expect(primaryHtml272).assertEqual(htmlText27);
745      done();
746    });
747  });
748
749  /**
750   * @tc.name      pasteboard_promise_test28
751   * @tc.desc      Replaces uri record
752   * @tc.type      Function
753   * @tc.require   AR000H5I1D
754   */
755  it('pasteboard_promise_test28', 0, async function (done) {
756    const systemPasteboard = pasteboard.getSystemPasteboard();
757    await systemPasteboard.clearData();
758    const uriText28 = 'https://www.baidu.com/';
759    const pasteData = pasteboard.createUriData(uriText28);
760    await systemPasteboard.setPasteData(pasteData);
761    const res28 = await systemPasteboard.hasPasteData();
762    expect(res28).assertEqual(true);
763    systemPasteboard.getPasteData().then((data) => {
764      const pasteData28 = data;
765      expect(pasteData28.getRecordCount()).assertEqual(1);
766      const uriText281 = 'https://www.baidu.com/1';
767      const pasteDataRecord = pasteboard.createUriRecord(uriText281);
768      const replace28 = pasteData28.replaceRecordAt(0, pasteDataRecord);
769      expect(replace28).assertEqual(true);
770      const primaryUri1 = pasteData28.getPrimaryUri();
771      expect(primaryUri1).assertEqual(uriText281);
772      expect(pasteData28.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
773      const primaryUri2 = pasteData28.getPrimaryUri();
774      expect(primaryUri2).assertEqual(uriText281);
775      done();
776    });
777  });
778
779  /**
780   * @tc.name      pasteboard_promise_test29
781   * @tc.desc      Replaces want record
782   * @tc.type      Function
783   * @tc.require   AR000H5I1D
784   */
785  it('pasteboard_promise_test29', 0, async function (done) {
786    const systemPasteboard = pasteboard.getSystemPasteboard();
787    await systemPasteboard.clearData();
788    const wantText29 = {
789      bundleName: 'com.example.myapplication3',
790      abilityName: 'com.example.myapplication3.MainAbility',
791    };
792    const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText29);
793    await systemPasteboard.setPasteData(pasteData);
794    const res29 = await systemPasteboard.hasPasteData();
795    expect(res29).assertEqual(true);
796    systemPasteboard.getPasteData().then((data) => {
797      const pasteData29 = data;
798      expect(pasteData29.getRecordCount()).assertEqual(1);
799      const wantText291 = {
800        bundleName: 'com.example.myapplication30',
801        abilityName: 'com.example.myapplication30.MainAbility',
802      };
803      const pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText291);
804      const replace29 = pasteData29.replaceRecordAt(0, pasteDataRecord);
805      expect(replace29).assertEqual(true);
806      const primaryWant29 = pasteData29.getPrimaryWant();
807      expect(primaryWant29.bundleName).assertEqual(wantText291.bundleName);
808      expect(primaryWant29.abilityName).assertEqual(wantText291.abilityName);
809      done();
810    });
811  });
812
813  /**
814   * @tc.name      pasteboard_promise_test30
815   * @tc.desc      Replaces 300k文本 record
816   * @tc.type      Function
817   * @tc.require   AR000H5I1D
818   */
819  it('pasteboard_promise_test30', 0, async function (done) {
820    const systemPasteboard = pasteboard.getSystemPasteboard();
821    await systemPasteboard.clearData();
822    let textData30 = '';
823    for (let i = 0; i < 300; i++) {
824      textData30 = textData30 + 'A';
825    }
826    const pasteData = pasteboard.createPlainTextData(textData30);
827    await systemPasteboard.setPasteData(pasteData);
828    const res30 = await systemPasteboard.hasPasteData();
829    expect(res30).assertEqual(true);
830    systemPasteboard.getPasteData().then((data) => {
831      const pasteData30 = data;
832      expect(pasteData30.getRecordCount()).assertEqual(1);
833      const textData301 = 'Hello World1';
834      const pasteDataRecord = pasteboard.createPlainTextRecord(textData301);
835      const replace = pasteData30.replaceRecordAt(0, pasteDataRecord);
836      expect(replace).assertEqual(true);
837      const primaryText = pasteData30.getPrimaryText();
838      expect(primaryText).assertEqual(textData301);
839      done();
840    });
841  });
842
843  /**
844   * @tc.name      pasteboard_promise_test31
845   * @tc.desc      Clears pasteBoard, gets record count
846   * @tc.type      Function
847   * @tc.require   AR000H5I1D
848   */
849  it('pasteboard_promise_test31', 0, async function (done) {
850    const systemPasteboard = pasteboard.getSystemPasteboard();
851    await systemPasteboard.clearData();
852    const textData31 = 'Hello World!';
853    const pasteData = pasteboard.createPlainTextData(textData31);
854    await systemPasteboard.setPasteData(pasteData);
855    const res31 = await systemPasteboard.hasPasteData();
856    expect(res31).assertEqual(true);
857    const pasteData31 = await systemPasteboard.getPasteData();
858    expect(pasteData31.getRecordCount()).assertEqual(1);
859    await systemPasteboard.clearData();
860    systemPasteboard.getPasteData().then((data) => {
861      const pasteData2 = data;
862      const recordCount = pasteData2.getRecordCount();
863      expect(recordCount).assertEqual(0);
864      done();
865    });
866  });
867
868  /**
869   * @tc.name      pasteboard_promise_test32
870   * @tc.desc      Adds Property
871   * @tc.type      Function
872   * @tc.require   AR000H5I1D
873   */
874  it('pasteboard_promise_test32', 0, async function (done) {
875    const systemPasteboard = pasteboard.getSystemPasteboard();
876    await systemPasteboard.clearData();
877    const textData32 = 'Hello World!';
878    const pasteData = pasteboard.createPlainTextData(textData32);
879    await systemPasteboard.setPasteData(pasteData);
880    const res32 = await systemPasteboard.hasPasteData();
881    expect(res32).assertEqual(true);
882    const pasteData32 = await systemPasteboard.getPasteData();
883    expect(pasteData32.getRecordCount()).assertEqual(1);
884    const pasteDataProperty = pasteData32.getProperty();
885    expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
886    pasteDataProperty.shareOption = pasteboard.ShareOption.InApp;
887    pasteData32.setProperty(pasteDataProperty);
888    expect(pasteData32.getProperty().shareOption).assertEqual(pasteboard.ShareOption.InApp);
889    done();
890  });
891
892  /**
893   * @tc.name      pasteboard_promise_test33
894   * @tc.desc      Clears pasteBoard and check property
895   * @tc.type      Function
896   * @tc.require   AR000H5I1D
897   */
898  it('pasteboard_promise_test33', 0, async function (done) {
899    const systemPasteboard = pasteboard.getSystemPasteboard();
900    await systemPasteboard.clearData();
901    const textData33 = 'Hello World!';
902    const pasteData = pasteboard.createPlainTextData(textData33);
903    await systemPasteboard.setPasteData(pasteData);
904    const res33 = await systemPasteboard.hasPasteData();
905    expect(res33).assertEqual(true);
906    systemPasteboard.getPasteData().then(async (data) => {
907      expect(data.getRecordCount()).assertEqual(1);
908      await systemPasteboard.clearData();
909      const newPasteData = await systemPasteboard.getPasteData();
910      expect(newPasteData.getProperty().shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
911      done();
912    });
913  });
914
915  /**
916   * @tc.name      pasteboard_promise_test34
917   * @tc.desc      打开内容变化通知功能
918   * @tc.type      Function
919   * @tc.require   AR000H5I1D
920   */
921  it('pasteboard_promise_test34', 0, async function (done) {
922    const systemPasteboard = pasteboard.getSystemPasteboard();
923    await systemPasteboard.clearData();
924    systemPasteboard.on('update', contentChanges);
925    const textData34 = 'Hello World!';
926    const pasteData = pasteboard.createPlainTextData(textData34);
927    await systemPasteboard.setPasteData(pasteData);
928    const res34 = await systemPasteboard.hasPasteData();
929    expect(res34).assertEqual(true);
930    systemPasteboard.getPasteData().then((data) => {
931      expect(data.getRecordCount()).assertEqual(1);
932      expect(data.removeRecordAt(0)).assertEqual(true);
933      expect(data.getRecordCount()).assertEqual(0);
934      done();
935    });
936  });
937
938  /**
939   * @tc.name      pasteboard_promise_test35
940   * @tc.desc      清除剪切板内的文本数据项
941   * @tc.type      Function
942   * @tc.require   AR000H5I1D
943   */
944  it('pasteboard_promise_test35', 0, async function (done) {
945    const systemPasteboard = pasteboard.getSystemPasteboard();
946    await systemPasteboard.clearData();
947    const textData35 = 'Hello World!';
948    const pasteData = pasteboard.createPlainTextData(textData35);
949    await systemPasteboard.setPasteData(pasteData);
950    const res35 = await systemPasteboard.hasPasteData();
951    expect(res35).assertEqual(true);
952    const pasteData35 = await systemPasteboard.getPasteData();
953    expect(pasteData35.getRecordCount()).assertEqual(1);
954    await systemPasteboard.clearData();
955    systemPasteboard.getPasteData().then((data) => {
956      const recordCount35 = data.getRecordCount();
957      expect(recordCount35).assertEqual(0);
958      done();
959    });
960  });
961
962  /**
963   * @tc.name      pasteboard_promise_test36
964   * @tc.desc      清除剪切板内的uri数据项
965   * @tc.type      Function
966   * @tc.require   AR000H5I1D
967   */
968  it('pasteboard_promise_test36', 0, async function (done) {
969    const systemPasteboard = pasteboard.getSystemPasteboard();
970    await systemPasteboard.clearData();
971    const uriText36 = 'https://www.baidu.com/';
972    const pasteData = pasteboard.createUriData(uriText36);
973    await systemPasteboard.setPasteData(pasteData);
974    const res36 = await systemPasteboard.hasPasteData();
975    expect(res36).assertEqual(true);
976    const pasteData36 = await systemPasteboard.getPasteData();
977    expect(pasteData36.getRecordCount()).assertEqual(1);
978    await systemPasteboard.clearData();
979    systemPasteboard.getPasteData().then((data) => {
980      const recordCount36 = data.getRecordCount();
981      expect(recordCount36).assertEqual(0);
982      done();
983    });
984  });
985
986  /**
987   * @tc.name      pasteboard_promise_test37
988   * @tc.desc      清除剪切板内的html数据项
989   * @tc.type      Function
990   * @tc.require   AR000H5I1D
991   */
992  it('pasteboard_promise_test37', 0, async function (done) {
993    const systemPasteboard = pasteboard.getSystemPasteboard();
994    await systemPasteboard.clearData();
995    const htmlText37 = '<html><head></head><body>Hello World!</body></html>';
996    const pasteData = pasteboard.createHtmlData(htmlText37);
997    await systemPasteboard.setPasteData(pasteData);
998    const res37 = await systemPasteboard.hasPasteData();
999    expect(res37).assertEqual(true);
1000    const pasteData37 = await systemPasteboard.getPasteData();
1001    expect(pasteData37.getRecordCount()).assertEqual(1);
1002    await systemPasteboard.clearData();
1003    systemPasteboard.getPasteData().then((data) => {
1004      const recordCount37 = data.getRecordCount();
1005      expect(recordCount37).assertEqual(0);
1006      done();
1007    });
1008  });
1009
1010  /**
1011   * @tc.name      pasteboard_promise_test38
1012   * @tc.desc      清除剪切板内的want数据项
1013   * @tc.type      Function
1014   * @tc.require   AR000H5I1D
1015   */
1016  it('pasteboard_promise_test38', 0, async function (done) {
1017    const systemPasteboard = pasteboard.getSystemPasteboard();
1018    await systemPasteboard.clearData();
1019    const myWant38 = {
1020      bundleName: 'com.example.myapplication55',
1021      abilityName: 'com.example.myapplication55.MainAbility',
1022    };
1023    const pasteData381 = pasteboard.createWantData(myWant38);
1024    await systemPasteboard.setPasteData(pasteData381);
1025    const res38 = await systemPasteboard.hasPasteData();
1026    expect(res38).assertEqual(true);
1027    const pasteData38 = await systemPasteboard.getPasteData();
1028    expect(pasteData38.getRecordCount()).assertEqual(1);
1029    await systemPasteboard.clearData();
1030    systemPasteboard.getPasteData().then((data) => {
1031      const recordCount38 = data.getRecordCount();
1032      expect(recordCount38).assertEqual(0);
1033      done();
1034    });
1035  });
1036
1037  /**
1038   * @tc.name      pasteboard_promise_test39
1039   * @tc.desc      向剪切板内增加30条数据项,然后清除
1040   * @tc.type      Function
1041   * @tc.require   AR000H5I1D
1042   */
1043  it('pasteboard_promise_test39', 0, async function (done) {
1044    const systemPasteboard = pasteboard.getSystemPasteboard();
1045    await systemPasteboard.clearData();
1046    const textData390 = 'Hello World!';
1047    const pasteData = pasteboard.createPlainTextData(textData390);
1048    let textData39 = '';
1049    for (let i = 1; i < 30; i++) {
1050      textData39 = 'Hello World';
1051      textData39 = textData39 + i;
1052      pasteData.addTextRecord(textData39);
1053    }
1054    await systemPasteboard.setPasteData(pasteData);
1055    const res39 = await systemPasteboard.hasPasteData();
1056    expect(res39).assertEqual(true);
1057    const pasteData39 = await systemPasteboard.getPasteData();
1058    expect(pasteData39.getRecordCount()).assertEqual(30);
1059    await systemPasteboard.clearData();
1060    systemPasteboard.getPasteData().then((data) => {
1061      const recordCount39 = data.getRecordCount();
1062      expect(recordCount39).assertEqual(0);
1063      done();
1064    });
1065  });
1066
1067  /**
1068   * @tc.name      pasteboard_promise_test40
1069   * @tc.desc      向剪贴板数据各增加5条文本、uri、html数据,然后清除
1070   * @tc.type      Function
1071   * @tc.require   AR000H5I1D
1072   */
1073  it('pasteboard_promise_test40', 0, async function (done) {
1074    const systemPasteboard = pasteboard.getSystemPasteboard();
1075    await systemPasteboard.clearData();
1076    const textData400 = 'Hello World0';
1077    const pasteData = pasteboard.createPlainTextData(textData400);
1078    let textData40 = '';
1079    for (let i = 1; i < 5; i++) {
1080      textData40 = 'Hello World';
1081      textData40 = textData40 + i;
1082      pasteData.addTextRecord(textData40);
1083    }
1084    let htmlText40 = '';
1085    for (let i = 0; i < 5; i++) {
1086      htmlText40 = '<html><head></head><body>Hello World!</body></html>';
1087      htmlText40 = htmlText40 + i;
1088      pasteData.addHtmlRecord(htmlText40);
1089    }
1090    let uriText40 = '';
1091    for (let i = 0; i < 5; i++) {
1092      uriText40 = 'https://www.baidu.com/';
1093      uriText40 = uriText40 + i;
1094      pasteData.addUriRecord(uriText40);
1095    }
1096    await systemPasteboard.setPasteData(pasteData);
1097    const res40 = await systemPasteboard.hasPasteData();
1098    expect(res40).assertEqual(true);
1099    const data40 = await systemPasteboard.getPasteData();
1100    expect(data40.getRecordCount()).assertEqual(15);
1101    await systemPasteboard.clearData();
1102    systemPasteboard.getPasteData().then((data) => {
1103      const recordCount40 = data.getRecordCount();
1104      expect(recordCount40).assertEqual(0);
1105      done();
1106    });
1107  });
1108
1109  /**
1110   * @tc.name      pasteboard_promise_test41
1111   * @tc.desc      更新剪贴板数据,查询剪贴板存在剪贴板数据
1112   * @tc.type      Function
1113   * @tc.require   AR000HEECD
1114   */
1115  it('pasteboard_promise_test41', 0, async function (done) {
1116    const systemPasteboard = pasteboard.getSystemPasteboard();
1117    await systemPasteboard.clearData();
1118    const textData41 = 'Hello World!';
1119    const pasteData = pasteboard.createPlainTextData(textData41);
1120    await systemPasteboard.setPasteData(pasteData);
1121    const res41 = await systemPasteboard.hasPasteData();
1122    expect(res41).assertEqual(true);
1123    const pasteData41 = await systemPasteboard.getPasteData();
1124    expect(pasteData41.getRecordCount()).assertEqual(1);
1125    const textData411 = 'Hello World1';
1126    const pasteDataRecord = pasteboard.createPlainTextRecord(textData411);
1127    const replace41 = pasteData41.replaceRecordAt(0, pasteDataRecord);
1128    expect(replace41).assertEqual(true);
1129    await systemPasteboard.setPasteData(pasteData41);
1130    systemPasteboard.hasPasteData().then(async (data) => {
1131      expect(data).assertEqual(true);
1132      const newData41 = await systemPasteboard.getPasteData();
1133      expect(newData41.getPrimaryText()).assertEqual(textData411);
1134      const newPasteDataRecord = newData41.getRecordAt(0);
1135      expect(newPasteDataRecord.plainText).assertEqual(textData411);
1136      done();
1137    });
1138  });
1139
1140  /**
1141   * @tc.name      pasteboard_promise_test42
1142   * @tc.desc      删除所有的剪贴板数据,查询剪贴板不存在剪贴板数据
1143   * @tc.type      Function
1144   * @tc.require   AR000HEECD
1145   */
1146  it('pasteboard_promise_test42', 0, async function (done) {
1147    const systemPasteboard = pasteboard.getSystemPasteboard();
1148    await systemPasteboard.clearData();
1149    const textData42 = 'Hello World!';
1150    const data42 = pasteboard.createPlainTextData(textData42);
1151    await systemPasteboard.setPasteData(data42);
1152    const res42 = await systemPasteboard.hasPasteData();
1153    expect(res42).assertEqual(true);
1154    const pasteData42 = await systemPasteboard.getPasteData();
1155    const recordCount = pasteData42.getRecordCount();
1156    expect(recordCount).assertEqual(1);
1157    expect(pasteData42.removeRecordAt(0)).assertEqual(true);
1158    expect(pasteData42.getRecordCount()).assertEqual(0);
1159    const newData42 = await systemPasteboard.getPasteData();
1160    expect(newData42.getRecordCount()).assertEqual(1);
1161    done();
1162  });
1163
1164  /**
1165   * @tc.name      pasteboard_promise_test43
1166   * @tc.desc      将文本数据强制转换为文本
1167   * @tc.type      Function
1168   * @tc.require   AR000HEECD
1169   */
1170  it('pasteboard_promise_test43', 0, async function (done) {
1171    const systemPasteboard = pasteboard.getSystemPasteboard();
1172    await systemPasteboard.clearData();
1173    const textData43 = 'Hello World!';
1174    const pasteData = pasteboard.createPlainTextData(textData43);
1175    await systemPasteboard.setPasteData(pasteData);
1176    const res43 = await systemPasteboard.hasPasteData();
1177    expect(res43).assertEqual(true);
1178    systemPasteboard.getPasteData().then(async (data) => {
1179      const pasteData143 = data;
1180      expect(pasteData143.getRecordCount()).assertEqual(1);
1181      const pasteDataRecord = pasteData143.getRecordAt(0);
1182      const text43 = await pasteDataRecord.convertToText();
1183      expect(text43).assertEqual(textData43);
1184      done();
1185    });
1186  });
1187
1188  /**
1189   * @tc.name      pasteboard_promise_test44
1190   * @tc.desc      将一条含有特殊字符、中英混杂的文本数据强制转换为文本
1191   * @tc.type      Function
1192   * @tc.require   AR000HEECD
1193   */
1194  it('pasteboard_promise_test44', 0, async function (done) {
1195    const systemPasteboard = pasteboard.getSystemPasteboard();
1196    await systemPasteboard.clearData();
1197    const textData44 = 'Hello 中国!@#$%^&*()_+{}?.';
1198    const pasteData = pasteboard.createPlainTextData(textData44);
1199    await systemPasteboard.setPasteData(pasteData);
1200    const res44 = await systemPasteboard.hasPasteData();
1201    expect(res44).assertEqual(true);
1202    const pasteData44 = await systemPasteboard.getPasteData();
1203    expect(pasteData44.getRecordCount()).assertEqual(1);
1204    const pasteDataRecord = pasteData44.getRecordAt(0);
1205    pasteDataRecord.convertToText((err, text) => {
1206      if (err) {
1207        console.info('f_test44 pasteDataRecord.convertToText error: ' + error);
1208      } else {
1209        expect(textData44).assertEqual(text);
1210        done();
1211      }
1212    });
1213  });
1214
1215  /**
1216   * @tc.name      pasteboard_promise_test45
1217   * @tc.desc      将一条超长文本数据 (大小为301K)强制转换为文本
1218   * @tc.type      Function
1219   * @tc.require   AR000HEECD
1220   */
1221  it('pasteboard_promise_test45', 0, async function (done) {
1222    const systemPasteboard = pasteboard.getSystemPasteboard();
1223    await systemPasteboard.clearData();
1224    let textData45 = '';
1225    for (let i = 0; i < 301; i++) {
1226      textData45 = textData45 + 'A';
1227    }
1228    const pasteData = pasteboard.createPlainTextData(textData45);
1229    await systemPasteboard.setPasteData(pasteData);
1230    const res45 = await systemPasteboard.hasPasteData();
1231    expect(res45).assertEqual(true);
1232    const pasteData45 = await systemPasteboard.getPasteData();
1233    expect(pasteData45.getRecordCount()).assertEqual(1);
1234    const pasteDataRecord = pasteData45.getRecordAt(0);
1235    pasteDataRecord.convertToText((err, text) => {
1236      if (err) {
1237        console.info('f_test45 pasteDataRecord.convertToText error: ' + error);
1238      } else {
1239        expect(textData45).assertEqual(text);
1240        done();
1241      }
1242    });
1243  });
1244
1245  /**
1246   * @tc.name      pasteboard_promise_test46
1247   * @tc.desc      将uri数据强制转换为文本
1248   * @tc.type      Function
1249   * @tc.require   AR000HEECD
1250   */
1251  it('pasteboard_promise_test46', 0, async function (done) {
1252    const systemPasteboard = pasteboard.getSystemPasteboard();
1253    await systemPasteboard.clearData();
1254    const uriText46 = 'https://www.baidu.com/';
1255    const pasteData = pasteboard.createUriData(uriText46);
1256    await systemPasteboard.setPasteData(pasteData);
1257    const res46 = await systemPasteboard.hasPasteData();
1258    expect(res46).assertEqual(true);
1259    let pasteData46 = await systemPasteboard.getPasteData();
1260    expect(pasteData46.getRecordCount()).assertEqual(1);
1261    let pasteDataRecord = pasteData46.getRecordAt(0);
1262    pasteDataRecord
1263      .convertToText()
1264      .then((text) => {
1265        expect(uriText46).assertEqual(text);
1266        done();
1267      })
1268      .catch((error) => {
1269        console.info('f_test46 pasteDataRecord.convertToText error: ' + error);
1270      });
1271  });
1272
1273  /**
1274   * @tc.name      pasteboard_promise_test47
1275   * @tc.desc      复制文本、uri格式
1276   * @tc.type      Function
1277   * @tc.require   AR000HEECD
1278   */
1279  it('pasteboard_promise_test47', 0, async function (done) {
1280    const systemPasteboard = pasteboard.getSystemPasteboard();
1281    await systemPasteboard.clearData();
1282    const textData470 = 'Hello World0';
1283    const pasteData = pasteboard.createPlainTextData(textData470);
1284    const uriText47 = pasteboard.createUriRecord('https://www.baidu.com/');
1285    pasteData.addRecord(uriText47);
1286    await systemPasteboard.setPasteData(pasteData);
1287    const res47 = await systemPasteboard.hasPasteData();
1288    expect(res47).assertEqual(true);
1289    systemPasteboard.getPasteData().then((data) => {
1290      const recordCount47 = data.getRecordCount();
1291      expect(recordCount47).assertEqual(2);
1292      const pasteDataRecord1 = data.getRecordAt(0);
1293      const pasteDataRecord2 = data.getRecordAt(1);
1294      expect(pasteDataRecord1.uri).assertEqual(uriText47.uri);
1295      expect(pasteDataRecord2.plainText).assertEqual(textData470);
1296      done();
1297    });
1298  });
1299
1300  /**
1301   * @tc.name      pasteboard_promise_test48
1302   * @tc.desc      关闭内容变化通知功能:向剪贴板数据增加、删除等html数据项
1303   * @tc.type      Function
1304   * @tc.require   AR000HEECD
1305   */
1306  it('pasteboard_promise_test48', 0, async function (done) {
1307    const systemPasteboard = pasteboard.getSystemPasteboard();
1308    await systemPasteboard.clearData();
1309    systemPasteboard.off('update', contentChanges);
1310    const htmlText48 = '<html><head></head><body>Hello World!</body></html>';
1311    const pasteData = pasteboard.createHtmlData(htmlText48);
1312    await systemPasteboard.setPasteData(pasteData);
1313    const res48 = await systemPasteboard.hasPasteData();
1314    expect(res48).assertEqual(true);
1315    systemPasteboard.getPasteData().then((data) => {
1316      expect(data.getRecordCount()).assertEqual(1);
1317      expect(data.removeRecordAt(0)).assertEqual(true);
1318      expect(data.getRecordCount()).assertEqual(0);
1319      done();
1320    });
1321  });
1322
1323  /**
1324   * @tc.name      pasteboard_promise_test49
1325   * @tc.desc      创建pixelMap
1326   * @tc.type      Function
1327   * @tc.require   AR000HEECD
1328   */
1329  it('pasteboard_promise_test49', 0, async function (done) {
1330    const systemPasteboard = pasteboard.getSystemPasteboard();
1331    await systemPasteboard.clearData();
1332    const buffer49 = new ArrayBuffer(128);
1333    const opt49 = {
1334      size: { height: 5, width: 5 },
1335      pixelFormat: 3,
1336      editable: true,
1337      alphaType: 1,
1338      scaleMode: 1,
1339    };
1340    const pixelMap = await image.createPixelMap(buffer49, opt49);
1341    expect(pixelMap.getPixelBytesNumber()).assertEqual(100);
1342    const pasteData49 = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
1343    await systemPasteboard.setPasteData(pasteData49);
1344    const res49 = await systemPasteboard.hasPasteData();
1345    expect(res49).assertEqual(true);
1346    systemPasteboard.getPasteData().then(async (newPasteData) => {
1347      const recordCount49 = newPasteData.getRecordCount();
1348      expect(recordCount49).assertEqual(1);
1349      const newPixelMap49 = newPasteData.getPrimaryPixelMap();
1350      const PixelMapBytesNumber = newPixelMap49.getPixelBytesNumber();
1351      expect(PixelMapBytesNumber).assertEqual(100);
1352      const imageInfo = await newPixelMap49.getImageInfo();
1353      expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true);
1354      done();
1355    });
1356  });
1357
1358  /**
1359   * @tc.name      pasteboard_promise_test50
1360   * @tc.desc      创建kv Record
1361   * @tc.type      Function
1362   * @tc.require   AR000HEECD
1363   */
1364  it('pasteboard_promise_test50', 0, async function (done) {
1365    const systemPasteboard = pasteboard.getSystemPasteboard();
1366    await systemPasteboard.clearData();
1367    const dataXml50 = new ArrayBuffer(512);
1368    let int32view50 = new Int32Array(dataXml50);
1369    for (let i = 0; i < int32view50.length; i++) {
1370      int32view50[i] = 65535 + i;
1371    }
1372    const pasteDataRecord = pasteboard.createRecord('app/xml', dataXml50);
1373    const dataJpg50 = new ArrayBuffer(256);
1374    pasteDataRecord.data['image/ipg'] = dataJpg50;
1375    const pasteData50 = pasteboard.createHtmlData('application/xml');
1376    const replace = pasteData50.replaceRecordAt(0, pasteDataRecord);
1377    expect(replace).assertEqual(true);
1378    await systemPasteboard.setPasteData(pasteData50);
1379    const res50 = await systemPasteboard.hasPasteData();
1380    expect(res50).assertEqual(true);
1381    systemPasteboard.getPasteData().then((newPasteData) => {
1382      const recordCount50 = newPasteData.getRecordCount();
1383      expect(recordCount50).assertEqual(1);
1384      let newPasteDataRecord = newPasteData.getRecordAt(0);
1385      let newAppXml50 = newPasteDataRecord.data['app/xml'];
1386      let newImageIpg50 = newPasteDataRecord.data['image/ipg'];
1387      expect(newAppXml50.byteLength === 512 && newImageIpg50.byteLength === 256).assertEqual(true);
1388      let newAppXmlView50 = new Int32Array(newAppXml50);
1389      let newImageIpgView50 = new Int32Array(newImageIpg50);
1390      for (let i = 0; i < newAppXmlView50.length; i++) {
1391        console.info('newAppXml[' + i + '] = ' + newAppXmlView50[i]);
1392      }
1393      for (let i = 0; i < newImageIpgView50.length; i++) {
1394        console.info('newImageIpg[' + i + '] = ' + newImageIpg50[i]);
1395      }
1396      done();
1397    });
1398  });
1399
1400  /**
1401   * @tc.name      pasteboard_promise_test51
1402   * @tc.desc      测试addPixelMapRecord
1403   * @tc.type      Function
1404   * @tc.require   AR000HEECD
1405   */
1406  it('pasteboard_promise_test51', 0, async function (done) {
1407    const systemPasteboard = pasteboard.getSystemPasteboard();
1408    await systemPasteboard.clearData();
1409    const buffer51 = new ArrayBuffer(128);
1410    const opt51 = {
1411      size: { height: 5, width: 5 },
1412      pixelFormat: 3,
1413      editable: true,
1414      alphaType: 1,
1415      scaleMode: 1,
1416    };
1417    const pasteData51 = pasteboard.createHtmlData('application/xml');
1418    const pixelMap = await image.createPixelMap(buffer51, opt51);
1419    expect(pixelMap.getPixelBytesNumber() === 100).assertEqual(true);
1420    pasteData51.addRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
1421    await systemPasteboard.setPasteData(pasteData51);
1422    const res51 = await systemPasteboard.hasPasteData();
1423    expect(res51).assertEqual(true);
1424    systemPasteboard.getPasteData().then(async (newPasteData) => {
1425      const recordCount51 = newPasteData.getRecordCount();
1426      expect(recordCount51).assertEqual(2);
1427      const newPixelMap51 = newPasteData.getPrimaryPixelMap();
1428      const PixelMapBytesNumber51 = newPixelMap51.getPixelBytesNumber();
1429      expect(PixelMapBytesNumber51).assertEqual(100);
1430      const newHtmlData51 = newPasteData.getRecordAt(1);
1431      expect(newHtmlData51.htmlText).assertEqual('application/xml');
1432      const imageInfo51 = await newPixelMap51.getImageInfo();
1433      expect(imageInfo51.size.height === 5 && imageInfo51.size.width === 5).assertEqual(true);
1434      done();
1435    });
1436  });
1437
1438  /**
1439   * @tc.name      pasteboard_promise_test52
1440   * @tc.desc      支持512个record
1441   * @tc.type      Function
1442   * @tc.require   AR000HEECB
1443   */
1444  it('pasteboard_promise_test52', 0, async function (done) {
1445    const systemPasteboard = pasteboard.getSystemPasteboard();
1446    await systemPasteboard.clearData();
1447    const dataHtml52 = new ArrayBuffer(256);
1448    const htmlText52 = '<html><head></head><body>Hello!</body></html>';
1449    const uriText52 = 'https://www.baidu.com/';
1450    const wantText52 = {
1451      bundleName: 'com.example.myapplication3',
1452      abilityName: 'com.example.myapplication3.MainAbility',
1453    };
1454    const plainText52 = '';
1455    const pasteData52 = pasteboard.createData('x'.repeat(1024), dataHtml52);
1456    const record52 = pasteData52.getRecordAt(0);
1457    record52.htmlText = htmlText52;
1458    record52.plainText = plainText52;
1459    record52.uri = uriText52;
1460    record52.want = wantText52;
1461    const buffer52 = new ArrayBuffer(128);
1462    const opt52 = {
1463      size: { height: 5, width: 5 },
1464      pixelFormat: 3,
1465      editable: true,
1466      alphaType: 1,
1467      scaleMode: 1,
1468    };
1469    const pixelMap = await image.createPixelMap(buffer52, opt52);
1470    record52.pixelMap = pixelMap;
1471    pasteData52.replaceRecordAt(0, record52);
1472    for (let i = 0; i < 511; i++) {
1473      pasteData52.addRecord(record52);
1474    }
1475    await systemPasteboard.setPasteData(pasteData52);
1476    const res52 = await systemPasteboard.hasPasteData();
1477    expect(res52).assertTrue();
1478    systemPasteboard.getPasteData().then((data) => {
1479      expect(data.getRecordCount()).assertEqual(512);
1480      expect(data.getRecordAt(0).mimeType).assertEqual('x'.repeat(1024));
1481      expect(data.getPrimaryWant().bundleName).assertEqual(wantText52.bundleName);
1482      expect(data.getRecordAt(253).htmlText).assertEqual(htmlText52);
1483      expect(data.getRecordAt(511).plainText).assertEqual(plainText52);
1484      done();
1485    });
1486  });
1487
1488  /**
1489   *  The callback function is used for pasteboard content changes
1490   */
1491  function contentChanges() {
1492    console.info('#EVENT: The content is changed in the pasteboard');
1493  }
1494});
1495