• 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      Adds PlainTextData
32     * @tc.type      Function
33     * @tc.require   AR000H5HVI
34     */
35    it('pasteboard_function_test1', 0, async function (done) {
36        var systemPasteboard = pasteboard.getSystemPasteboard();
37        systemPasteboard.clear().then(() => {
38            var textData = 'Hello World!';
39            var pasteData = pasteboard.createPlainTextData(textData);
40            systemPasteboard.setPasteData(pasteData).then(() => {
41                systemPasteboard.hasPasteData().then((data) => {
42                    expect(data).assertEqual(true);
43                    var types = pasteData.getMimeTypes();
44                    expect("text/plain").assertEqual(types[0]);
45                    systemPasteboard.getPasteData().then((data) => {
46                        var pasteData1 = data;
47                        expect(pasteData1.getRecordCount()).assertEqual(1);
48                        var primaryText = pasteData1.getPrimaryText();
49                        expect(primaryText).assertEqual(textData);
50                        expect(pasteboard.MAX_RECORD_NUM).assertEqual(512);
51                        expect(pasteData1.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
52                        done();
53                    })
54                });
55            });
56        });
57    })
58
59    /**
60     * @tc.name      pasteboard_function_test2
61     * @tc.desc      Adds PlainTextData = ''
62     * @tc.type      Function
63     * @tc.require   AR000H5HVI
64     */
65    it('pasteboard_function_test2', 0, async function (done) {
66        var systemPasteboard = pasteboard.getSystemPasteboard();
67        systemPasteboard.clear().then(() => {
68            var textData = '';
69            var pasteData = pasteboard.createPlainTextData(textData);
70            systemPasteboard.setPasteData(pasteData).then(() => {
71                systemPasteboard.hasPasteData().then((data) => {
72                    expect(data).assertEqual(true);
73                    systemPasteboard.getPasteData().then((data) => {
74                        var recordCount = data.getRecordCount();
75                        expect(recordCount).assertEqual(1);
76                        done();
77                    })
78                });
79            });
80        });
81    })
82
83    /**
84     * @tc.name      pasteboard_function_test3
85     * @tc.desc      Adds PlainTextData = 'Hello 中国!@#$%^&*()_+{}\?.'
86     * @tc.type      Function
87     * @tc.require   AR000H5HVI
88     */
89    it('pasteboard_function_test3', 0, async function (done) {
90        var systemPasteboard = pasteboard.getSystemPasteboard();
91        systemPasteboard.clear().then(() => {
92            var textData = 'Hello 中国!@#$%^&*()_+{}\?.';
93            var pasteData = pasteboard.createPlainTextData(textData);
94            systemPasteboard.setPasteData(pasteData).then(() => {
95                systemPasteboard.hasPasteData().then((data) => {
96                    expect(data).assertEqual(true);
97                    systemPasteboard.getPasteData().then((data) => {
98                        var pasteData1 = data;
99                        expect(pasteData1.getRecordCount()).assertEqual(1);
100                        var primaryText = pasteData1.getPrimaryText()
101                        expect(primaryText).assertEqual(textData);
102                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
103                        done();
104                    })
105                });
106            });
107        });
108    })
109
110    /**
111     * @tc.name      pasteboard_function_test4
112     * @tc.desc      Adds 300K PlainTextData
113     * @tc.type      Function
114     * @tc.require   AR000H5HVI
115     */
116    it('pasteboard_function_test4', 0, async function (done) {
117        var systemPasteboard = pasteboard.getSystemPasteboard();
118        systemPasteboard.clear().then(() => {
119            var textData = ''
120            for (var i = 0; i < 300; i++) {
121                textData = textData + "A";
122            }
123            var pasteData = pasteboard.createPlainTextData(textData);
124            systemPasteboard.setPasteData(pasteData).then(() => {
125                systemPasteboard.hasPasteData().then((data) => {
126                    expect(data).assertEqual(true);
127                    systemPasteboard.getPasteData().then((data) => {
128                        var pasteData1 = data;
129                        expect(pasteData1.getRecordCount()).assertEqual(1);
130                        var primaryText = pasteData1.getPrimaryText();
131                        expect(primaryText).assertEqual(textData);
132                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
133                        expect(pasteData1.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN);
134                        done();
135                    })
136                });
137            });
138        });
139    })
140
141    /**
142     * @tc.name      pasteboard_function_test5
143     * @tc.desc      Adds htmlText
144     * @tc.type      Function
145     * @tc.require   AR000H5HVI
146     */
147    it('pasteboard_function_test5', 0, async function (done) {
148        var systemPasteboard = pasteboard.getSystemPasteboard();
149        systemPasteboard.clear().then(() => {
150            var htmlText = '<html><head></head><body>Hello World!</body></html>';
151            var pasteData = pasteboard.createHtmlData(htmlText);
152            systemPasteboard.setPasteData(pasteData).then(() => {
153                systemPasteboard.hasPasteData().then((data) => {
154                    expect(data).assertEqual(true);
155                    systemPasteboard.getPasteData().then((data) => {
156                        var pasteData1 = data;
157                        expect(pasteData1.getRecordCount()).assertEqual(1);
158                        var primaryHtml = pasteData1.getPrimaryHtml();
159                        expect(primaryHtml).assertEqual(htmlText);
160                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
161                        expect(pasteData1.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
162                        done();
163                    })
164                });
165            });
166        });
167    })
168
169    /**
170     * @tc.name      pasteboard_function_test6
171     * @tc.desc      Adds htmlText = ''
172     * @tc.type      Function
173     * @tc.require   AR000H5HVI
174     */
175    it('pasteboard_function_test6', 0, async function (done) {
176        var systemPasteboard = pasteboard.getSystemPasteboard();
177        systemPasteboard.clear().then(() => {
178            var htmlText = '';
179            var pasteData = pasteboard.createHtmlData(htmlText);
180            systemPasteboard.setPasteData(pasteData).then(() => {
181                systemPasteboard.hasPasteData().then((data) => {
182                    expect(data).assertEqual(true);
183                    systemPasteboard.getPasteData().then((data) => {
184                        expect(data.getRecordCount()).assertEqual(1);
185                        var primaryHtml = data.getPrimaryHtml();
186                        expect(primaryHtml).assertEqual(htmlText);
187                        expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
188                        expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
189                        done();
190                    })
191                });
192            });
193        });
194    })
195
196    /**
197     * @tc.name      pasteboard_function_test7
198     * @tc.desc      Adds htmlText = 'Hello 中国!@#$%^&*()_+{}\?.'
199     * @tc.type      Function
200     * @tc.require   AR000H5HVI
201     */
202    it('pasteboard_function_test7', 0, async function (done) {
203        var systemPasteboard = pasteboard.getSystemPasteboard();
204        systemPasteboard.clear().then(() => {
205            var htmlText = 'Hello 中国!@#$%^&*()_+{}\?.'
206            var pasteData = pasteboard.createHtmlData(htmlText);
207            systemPasteboard.setPasteData(pasteData).then(() => {
208                systemPasteboard.hasPasteData().then((data) => {
209                    expect(data).assertEqual(true);
210                    systemPasteboard.getPasteData().then((data) => {
211                        expect(data.getRecordCount()).assertEqual(1);
212                        expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
213                        expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML);
214                        expect(data.getPrimaryHtml()).assertEqual(htmlText);
215                        done();
216                    })
217                });
218            });
219        });
220    })
221
222    /**
223     * @tc.name      pasteboard_function_test8
224     * @tc.desc      Adds uriText
225     * @tc.type      Function
226     * @tc.require   AR000H5HVI
227     */
228    it('pasteboard_function_test8', 0, async function (done) {
229        var systemPasteboard = pasteboard.getSystemPasteboard();
230        systemPasteboard.clear().then(() => {
231            var uriText = 'https://www.baidu.com/';
232            var pasteData = pasteboard.createUriData(uriText);
233            systemPasteboard.setPasteData(pasteData).then(() => {
234                systemPasteboard.hasPasteData().then((data) => {
235                    expect(data).assertEqual(true);
236                    systemPasteboard.getPasteData().then((data) => {
237                        var pasteData1 = data;
238                        expect(pasteData1.getRecordCount()).assertEqual(1);
239                        var primaryUri = pasteData1.getPrimaryUri()
240                        expect(primaryUri).assertEqual(uriText);
241                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
242                        done();
243                    })
244                });
245            });
246        });
247    })
248
249    /**
250     * @tc.name      pasteboard_function_test9
251     * @tc.desc      Adds uriText = ''
252     * @tc.type      Function
253     * @tc.require   AR000H5HVI
254     */
255    it('pasteboard_function_test9', 0, async function (done) {
256        var systemPasteboard = pasteboard.getSystemPasteboard();
257        systemPasteboard.clear().then(() => {
258            var uriText = '';
259            var pasteData = pasteboard.createUriData(uriText);
260            systemPasteboard.setPasteData(pasteData).then(() => {
261                systemPasteboard.hasPasteData().then((data) => {
262                    expect(data).assertEqual(true);
263                    systemPasteboard.getPasteData().then((data) => {
264                        var pasteData1 = data;
265                        expect(pasteData1.getRecordCount()).assertEqual(1);
266                        expect(pasteData1.getPrimaryUri()).assertEqual(uriText);
267                        done();
268                    })
269                });
270            });
271        });
272    })
273
274    /**
275     * @tc.name      pasteboard_function_test10
276     * @tc.desc      Set uriText = 'Hello //'
277     * @tc.type      Function
278     * @tc.require   AR000H5HVI
279     */
280    it('pasteboard_function_test10', 0, async function (done) {
281        var systemPasteboard = pasteboard.getSystemPasteboard();
282        systemPasteboard.clear().then(() => {
283            var uriText = 'Hello//';
284            var pasteData = pasteboard.createUriData(uriText);
285            systemPasteboard.setPasteData(pasteData).then(() => {
286                systemPasteboard.hasPasteData().then((data) => {
287                    expect(data).assertEqual(true);
288                    systemPasteboard.getPasteData().then((data) => {
289                        var pasteData1 = data;
290                        expect(pasteData1.getRecordCount()).assertEqual(1);
291                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
292                        expect(pasteData1.getPrimaryUri()).assertEqual(uriText);
293                        done();
294                    })
295                });
296            });
297        });
298    })
299
300    /**
301     * @tc.name      pasteboard_function_test11
302     * @tc.desc      Adds want
303     * @tc.type      Function
304     * @tc.require   AR000H5HVI
305     */
306    it('pasteboard_function_test11', 0, async function (done) {
307        var systemPasteboard = pasteboard.getSystemPasteboard();
308        systemPasteboard.clear().then(() => {
309            var want = {
310                bundleName: "com.example.myapplication8",
311                abilityName: "com.example.myapplication8.MainAbility"
312            }
313            var pasteData = pasteboard.createWantData(want);
314            systemPasteboard.setPasteData(pasteData).then(() => {
315                systemPasteboard.hasPasteData().then((data) => {
316                    expect(data).assertEqual(true);
317                    systemPasteboard.getPasteData().then((data) => {
318                        var pasteData1 = data;
319                        expect(pasteData1.getRecordCount()).assertEqual(1);
320                        var primaryWant = pasteData1.getPrimaryWant()
321                        expect(want.bundleName).assertEqual(primaryWant.bundleName);
322                        expect(want.abilityName).assertEqual(primaryWant.abilityName);
323                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true);
324                        done();
325                    })
326                });
327            });
328        });
329    })
330
331    /**
332     * @tc.name      pasteboard_function_test12
333     * @tc.desc      Adds one record(s)
334     * @tc.type      Function
335     * @tc.require   AR000H5HVI
336     */
337    it('pasteboard_function_test12', 0, async function (done) {
338        var systemPasteboard = pasteboard.getSystemPasteboard();
339        systemPasteboard.clear().then(() => {
340            var textData = 'Hello World!';
341            var pasteData = pasteboard.createPlainTextData(textData);
342            systemPasteboard.setPasteData(pasteData).then(() => {
343                systemPasteboard.hasPasteData().then((data) => {
344                    expect(data).assertEqual(true);
345                    systemPasteboard.getPasteData().then((data) => {
346                        var pasteData1 = data;
347                        expect(pasteData1.getRecordCount()).assertEqual(1);
348                        var recordText = pasteData1.getRecordAt(0).plainText;
349                        expect(recordText).assertEqual(textData);
350                        done();
351                    })
352                });
353            });
354        });
355    })
356
357    /**
358     * @tc.name      pasteboard_function_test13
359     * @tc.desc      Adds 2 record(s)
360     * @tc.type      Function
361     * @tc.require   AR000H5HVI
362     */
363    it('pasteboard_function_test13', 0, async function (done) {
364        var systemPasteboard = pasteboard.getSystemPasteboard();
365        systemPasteboard.clear().then(() => {
366            var textData0 = 'Hello World!';
367            var pasteData = pasteboard.createPlainTextData(textData0);
368            var textData1 = 'Hello World1';
369            pasteData.addTextRecord(textData1);
370            systemPasteboard.setPasteData(pasteData).then(() => {
371                systemPasteboard.hasPasteData().then((data) => {
372                    expect(data).assertEqual(true);
373                    systemPasteboard.getPasteData().then((data) => {
374                        expect(data.getRecordCount()).assertEqual(2);
375                        var dataRecord0 = data.getRecordAt(0);
376                        var dataRecord1 = data.getRecordAt(1);
377                        expect(dataRecord0.plainText).assertEqual(textData1);
378                        expect(dataRecord1.plainText).assertEqual(textData0);
379                        done();
380                    })
381                });
382            });
383        });
384    })
385
386    /**
387     * @tc.name      pasteboard_function_test14
388     * @tc.desc      Adds 15 record(s)
389     * @tc.type      Function
390     * @tc.require   AR000H5HVI
391     */
392    it('pasteboard_function_test14', 0, async function (done) {
393        var systemPasteboard = pasteboard.getSystemPasteboard();
394        systemPasteboard.clear().then(() => {
395            var textData0 = 'Hello World!';
396            var pasteData = pasteboard.createPlainTextData(textData0);
397            var textData = ''
398            for (var i = 1; i < 15; i++) {
399                textData = 'Hello World'
400                textData = textData + i
401                pasteData.addTextRecord(textData)
402            }
403            systemPasteboard.setPasteData(pasteData).then(() => {
404                systemPasteboard.hasPasteData().then((data) => {
405                    expect(data).assertEqual(true);
406                    systemPasteboard.getPasteData().then((data) => {
407                        var pasteData1 = data;
408                        expect(pasteData1.getRecordCount()).assertEqual(15);
409                        var dataRecord = pasteData1.getRecordAt(14);
410                        expect(dataRecord.plainText).assertEqual(textData0);
411                        done();
412                    })
413                });
414            });
415        });
416    })
417
418    /**
419     * @tc.name      pasteboard_function_test15
420     * @tc.desc      Adds 30 record(s)
421     * @tc.type      Function
422     * @tc.require   AR000H5HVI
423     */
424    it('pasteboard_function_test15', 0, async function (done) {
425        var systemPasteboard = pasteboard.getSystemPasteboard();
426        systemPasteboard.clear().then(() => {
427            var textData0 = 'Hello World!';
428            var pasteData = pasteboard.createPlainTextData(textData0);
429            var textData = ''
430            for (var i = 1; i < 30; i++) {
431                textData = 'Hello World'
432                textData = textData + i
433                pasteData.addTextRecord(textData)
434            }
435            systemPasteboard.setPasteData(pasteData).then(() => {
436                systemPasteboard.hasPasteData().then((data) => {
437                    expect(data).assertEqual(true);
438                    systemPasteboard.getPasteData().then((data) => {
439                        var pasteData1 = data;
440                        expect(pasteData1.getRecordCount()).assertEqual(30);
441                        var dataRecord = pasteData1.getRecordAt(0);
442                        expect(dataRecord.plainText).assertEqual('Hello World29');
443                        done();
444                    })
445                });
446            });
447        });
448    })
449
450    /**
451     * @tc.name      pasteboard_function_test16
452     * @tc.desc      Adds 31 record(s)
453     * @tc.type      Function
454     * @tc.require   AR000H5HVI
455     */
456    it('pasteboard_function_test16', 0, async function (done) {
457        var systemPasteboard = pasteboard.getSystemPasteboard();
458        systemPasteboard.clear().then(() => {
459            var textData0 = 'Hello World!';
460            var pasteData = pasteboard.createPlainTextData(textData0);
461            var textData = ''
462            for (var i = 1; i < 31; i++) {
463                textData = 'Hello World'
464                textData = textData + i
465                pasteData.addTextRecord(textData)
466            }
467            systemPasteboard.setPasteData(pasteData).then(() => {
468                systemPasteboard.hasPasteData().then((data) => {
469                    expect(data).assertEqual(true);
470                    systemPasteboard.getPasteData().then((data) => {
471                        var pasteData1 = data;
472                        var recordCount = pasteData1.getRecordCount();
473                        expect(recordCount).assertEqual(31);
474                        var dataRecord = pasteData1.getRecordAt(0);
475                        expect(dataRecord.plainText).assertEqual('Hello World30');
476                        done();
477                    })
478                });
479            });
480        });
481    })
482
483    /**
484     * @tc.name      pasteboard_function_test17
485     * @tc.desc      Adds PlainText,HtmlText,UriText
486     * @tc.type      Function
487     * @tc.require   AR000H5HVI
488     */
489    it('pasteboard_function_test17', 0, async function (done) {
490        var systemPasteboard = pasteboard.getSystemPasteboard();
491        systemPasteboard.clear().then(() => {
492            var textData = 'Hello World!';
493            var pasteData = pasteboard.createPlainTextData(textData);
494            var htmlText = '<html><head></head><body>Hello World!</body></html>';
495            pasteData.addHtmlRecord(htmlText);
496            var uriText = 'https://www.baidu.com/';
497            pasteData.addUriRecord(uriText);
498            var want = {
499                bundleName: "com.example.myapplication8",
500                abilityName: "com.example.myapplication8.MainAbility"
501            }
502            pasteData.addWantRecord(want);
503            systemPasteboard.setPasteData(pasteData).then(() => {
504                systemPasteboard.hasPasteData().then((data) => {
505                    expect(data).assertEqual(true);
506                    systemPasteboard.getPasteData().then((data) => {
507                        var pasteData1 = data;
508                        expect(pasteData1.getRecordCount()).assertEqual(4);
509                        var wantRecord = pasteData1.getPrimaryWant();
510                        expect(wantRecord.bundleName).assertEqual(want.bundleName);
511                        expect(wantRecord.abilityName).assertEqual(want.abilityName);
512                        done();
513                    })
514                });
515            });
516        });
517    })
518
519    /**
520     * @tc.name      pasteboard_function_test18
521     * @tc.desc      Delete one PlainTextData
522     * @tc.type      Function
523     * @tc.require   AR000H5HVI
524     */
525    it('pasteboard_function_test18', 0, async function (done) {
526        var systemPasteboard = pasteboard.getSystemPasteboard();
527        systemPasteboard.clear().then(() => {
528            var textData = 'Hello World!';
529            var pasteData = pasteboard.createPlainTextData(textData);
530            systemPasteboard.setPasteData(pasteData).then(() => {
531                systemPasteboard.hasPasteData().then((data) => {
532                    expect(data).assertEqual(true);
533                    systemPasteboard.getPasteData().then((data) => {
534                        var pasteData1 = data;
535                        expect(pasteData1.getRecordCount()).assertEqual(1);
536                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
537                        systemPasteboard.setPasteData(pasteData1).then(() => {
538                            systemPasteboard.getPasteData().then((data) => {
539                                var pasteData2 = data;
540                                var recordCount = pasteData2.getRecordCount();
541                                expect(recordCount).assertEqual(0);
542                                done();
543                            });
544                        });
545                    });
546                });
547            });
548        });
549    })
550
551    /**
552     * @tc.name      pasteboard_function_test19
553     * @tc.desc      Delete one htmlText
554     * @tc.type      Function
555     * @tc.require   AR000H5HVI
556     */
557    it('pasteboard_function_test19', 0, async function (done) {
558        var systemPasteboard = pasteboard.getSystemPasteboard();
559        systemPasteboard.clear().then(() => {
560            var htmlText = '<html><head></head><body>Hello World!</body></html>'
561            var pasteData = pasteboard.createHtmlData(htmlText);
562            systemPasteboard.setPasteData(pasteData).then(() => {
563                systemPasteboard.hasPasteData().then((data) => {
564                    expect(data).assertEqual(true);
565                    systemPasteboard.getPasteData().then((data) => {
566                        var pasteData1 = data;
567                        expect(pasteData1.getRecordCount()).assertEqual(1);
568                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
569                        systemPasteboard.setPasteData(pasteData1).then(() => {
570                            systemPasteboard.getPasteData().then((data) => {
571                                var pasteData2 = data;
572                                var recordCount = pasteData2.getRecordCount();
573                                expect(recordCount).assertEqual(0);
574                                done();
575                            });
576                        });
577                    });
578                });
579            });
580        });
581    })
582
583    /**
584     * @tc.name      pasteboard_function_test20
585     * @tc.desc      Delete one uriText
586     * @tc.type      Function
587     * @tc.require   AR000H5HVI
588     */
589    it('pasteboard_function_test20', 0, async function (done) {
590        var systemPasteboard = pasteboard.getSystemPasteboard();
591        systemPasteboard.clear().then(() => {
592            var uriText = 'https://www.baidu.com/';
593            var pasteData = pasteboard.createUriData(uriText);
594            systemPasteboard.setPasteData(pasteData).then(() => {
595                systemPasteboard.hasPasteData().then((data) => {
596                    expect(data).assertEqual(true);
597                    systemPasteboard.getPasteData().then((data) => {
598                        var pasteData1 = data;
599                        expect(pasteData1.getRecordCount()).assertEqual(1);
600                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
601                        systemPasteboard.setPasteData(pasteData1).then(() => {
602                            systemPasteboard.getPasteData().then((data) => {
603                                var pasteData2 = data;
604                                var recordCount = pasteData2.getRecordCount();
605                                expect(recordCount).assertEqual(0);
606                                done();
607                            });
608                        });
609                    });
610                });
611            });
612        });
613    })
614
615    /**
616     * @tc.name      pasteboard_function_test21
617     * @tc.desc      Delete one want
618     * @tc.type      Function
619     * @tc.require   AR000H5I1D
620     */
621    it('pasteboard_function_test21', 0, async function (done) {
622        var systemPasteboard = pasteboard.getSystemPasteboard();
623        systemPasteboard.clear().then(() => {
624            var want = {
625                bundleName: "com.example.myapplication8",
626                abilityName: "com.example.myapplication8.MainAbility"
627            }
628            var pasteData = pasteboard.createWantData(want);
629            systemPasteboard.setPasteData(pasteData).then(() => {
630                systemPasteboard.hasPasteData().then((data) => {
631                    expect(data).assertEqual(true);
632                    systemPasteboard.getPasteData().then((data) => {
633                        var pasteData1 = data;
634                        expect(pasteData1.getRecordCount()).assertEqual(1);
635                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
636                        systemPasteboard.setPasteData(pasteData1).then(() => {
637                            systemPasteboard.getPasteData().then((data) => {
638                                var pasteData2 = data;
639                                var recordCount = pasteData2.getRecordCount();
640                                expect(recordCount).assertEqual(0);
641                                done();
642                            });
643                        });
644                    });
645                });
646            });
647        });
648    })
649
650    /**
651     * @tc.name      pasteboard_function_test22
652     * @tc.desc      Deletes 300K PlainTextData
653     * @tc.type      Function
654     * @tc.require   AR000H5I1D
655     */
656    it('pasteboard_function_test22', 0, async function (done) {
657        var systemPasteboard = pasteboard.getSystemPasteboard();
658        systemPasteboard.clear().then(() => {
659            var textData = ''
660            for (var i = 0; i < 300; i++) {
661                textData = textData + "A";
662            }
663            var pasteData = pasteboard.createPlainTextData(textData);
664            systemPasteboard.setPasteData(pasteData).then(() => {
665                systemPasteboard.hasPasteData().then((data) => {
666                    expect(data).assertEqual(true);
667                    systemPasteboard.getPasteData().then((data) => {
668                        var pasteData1 = data;
669                        expect(pasteData1.getRecordCount()).assertEqual(1);
670                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
671                        systemPasteboard.setPasteData(pasteData1).then(() => {
672                            systemPasteboard.getPasteData().then((data) => {
673                                var pasteData2 = data;
674                                var recordCount = pasteData2.getRecordCount();
675                                expect(recordCount).assertEqual(0);
676                                done();
677                            });
678                        });
679                    });
680                });
681            });
682        });
683    })
684
685    /**
686     * @tc.name      pasteboard_function_test23
687     * @tc.desc      Deletes 30 record(s)
688     * @tc.type      Function
689     * @tc.require   AR000H5I1D
690     */
691    it('pasteboard_function_test23', 0, async function (done) {
692        var systemPasteboard = pasteboard.getSystemPasteboard();
693        systemPasteboard.clear().then(() => {
694            var textData0 = 'Hello World';
695            var pasteData = pasteboard.createPlainTextData(textData0);
696            var textData = '';
697            for (var i = 1; i < 30; i++) {
698                textData = 'Hello World';
699                textData = textData + i;
700                pasteData.addTextRecord(textData);
701            }
702            systemPasteboard.setPasteData(pasteData).then(() => {
703                systemPasteboard.hasPasteData().then((data) => {
704                    expect(data).assertEqual(true);
705                    systemPasteboard.getPasteData().then((data) => {
706                        var pasteData1 = data;
707                        expect(pasteData1.getRecordCount()).assertEqual(30);
708                        for (var i = 0; i < 30; i++) {
709                            expect(pasteData1.removeRecordAt(0)).assertEqual(true);
710                        }
711                        expect(pasteData1.getRecordCount()).assertEqual(0);
712                        systemPasteboard.setPasteData(pasteData1).then(() => {
713                            systemPasteboard.getPasteData().then((data) => {
714                                var pasteData2 = data;
715                                var recordCount = pasteData2.getRecordCount();
716                                expect(recordCount).assertEqual(0);
717                                done();
718                            });
719                        });
720                    });
721                });
722            });
723        });
724    })
725
726    /**
727     * @tc.name      pasteboard_function_test24
728     * @tc.desc      Deletes replaced record
729     * @tc.type      Function
730     * @tc.require   AR000H5I1D
731     */
732    it('pasteboard_function_test24', 0, async function (done) {
733        var systemPasteboard = pasteboard.getSystemPasteboard();
734        systemPasteboard.clear().then(() => {
735            var textData = 'Hello World!';
736            var pasteData = pasteboard.createPlainTextData(textData);
737            systemPasteboard.setPasteData(pasteData).then(() => {
738                systemPasteboard.hasPasteData().then((data) => {
739                    expect(data).assertEqual(true);
740                    systemPasteboard.getPasteData().then((data) => {
741                        var pasteData1 = data;
742                        expect(pasteData1.getRecordCount()).assertEqual(1);
743                        var textData1 = 'Hello World1';
744                        var pasteDataRecord = pasteboard.createPlainTextRecord(textData1);
745                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
746                        expect(replace).assertEqual(true);
747                        var primaryText = pasteData1.getPrimaryText();
748                        expect(primaryText).assertEqual(textData1);
749                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true);
750                        var dataRecord = pasteData1.getRecordAt(0);
751                        expect(dataRecord.plainText).assertEqual(textData1);
752                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
753                        systemPasteboard.setPasteData(pasteData1).then(() => {
754                            systemPasteboard.getPasteData().then((data) => {
755                                var pasteData2 = data;
756                                var recordCount = pasteData2.getRecordCount();
757                                expect(recordCount).assertEqual(0);
758                                done();
759                            });
760                        });
761                    });
762                });
763            });
764        });
765    })
766
767    /**
768     * @tc.name      pasteboard_function_test25
769     * @tc.desc      Deletes 文本、uri、html
770     * @tc.type      Function
771     * @tc.require   AR000H5I1D
772     */
773    it('pasteboard_function_test25', 0, async function (done) {
774        var systemPasteboard = pasteboard.getSystemPasteboard();
775        systemPasteboard.clear().then(() => {
776            var textData = 'Hello World!';
777            var pasteData = pasteboard.createPlainTextData(textData);
778            var htmlText = '<html><head></head><body>Hello World!</body></html>'
779            pasteData.addHtmlRecord(htmlText);
780            var uriText = 'https://www.baidu.com/';
781            pasteData.addUriRecord(uriText);
782            systemPasteboard.setPasteData(pasteData).then(() => {
783                systemPasteboard.hasPasteData().then((data) => {
784                    expect(data).assertEqual(true);
785                    systemPasteboard.getPasteData().then((data) => {
786                        var pasteData1 = data;
787                        expect(pasteData1.getRecordCount()).assertEqual(3);
788                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
789                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
790                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
791                        systemPasteboard.setPasteData(pasteData1).then(() => {
792                            systemPasteboard.getPasteData().then((data) => {
793                                var pasteData2 = data;
794                                var recordCount = pasteData2.getRecordCount();
795                                expect(recordCount).assertEqual(0);
796                                done();
797                            });
798                        });
799                    });
800                });
801            });
802        });
803    })
804
805    /**
806     * @tc.name      pasteboard_function_test26
807     * @tc.desc      Replaces 文本 record
808     * @tc.type      Function
809     * @tc.require   AR000H5I1D
810     */
811    it('pasteboard_function_test26', 0, async function (done) {
812        var systemPasteboard = pasteboard.getSystemPasteboard();
813        systemPasteboard.clear().then(() => {
814            var textData = 'Hello World!';
815            var pasteData = pasteboard.createPlainTextData(textData);
816            systemPasteboard.setPasteData(pasteData).then(() => {
817                systemPasteboard.hasPasteData().then((data) => {
818                    expect(data).assertEqual(true);
819                    systemPasteboard.getPasteData().then((data) => {
820                        var pasteData1 = data;
821                        expect(pasteData1.getRecordCount()).assertEqual(1);
822                        var textData1 = 'Hello World1';
823                        var pasteDataRecord = pasteboard.createPlainTextRecord(textData1);
824                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
825                        expect(replace).assertEqual(true);
826                        var primaryText = pasteData1.getPrimaryText();
827                        expect(primaryText).assertEqual(textData1);
828                        done();
829                    })
830                });
831            });
832        });
833    })
834
835    /**
836     * @tc.name      pasteboard_function_test27
837     * @tc.desc      Replaces htmlText record
838     * @tc.type      Function
839     * @tc.require   AR000H5I1D
840     */
841    it('pasteboard_function_test27', 0, async function (done) {
842        var systemPasteboard = pasteboard.getSystemPasteboard();
843        systemPasteboard.clear().then(() => {
844            var htmlText = '<html><head></head><body>Hello World!</body></html>';
845            var pasteData = pasteboard.createHtmlData(htmlText);
846            systemPasteboard.setPasteData(pasteData).then(() => {
847                systemPasteboard.hasPasteData().then((data) => {
848                    expect(data).assertEqual(true);
849                    systemPasteboard.getPasteData().then((data) => {
850                        var pasteData1 = data;
851                        expect(pasteData1.getRecordCount()).assertEqual(1);
852                        var htmlText1 = '<html><head></head><body>Hello World 1</body></html>';
853                        var pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText1);
854                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
855                        expect(replace).assertEqual(true);
856                        var primaryHtml = pasteData1.getPrimaryHtml();
857                        expect(primaryHtml).assertEqual(htmlText1);
858                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true);
859                        var primaryHtml = pasteData1.getPrimaryHtml();
860                        expect(primaryHtml).assertEqual(htmlText1);
861                        done();
862                    })
863                });
864            });
865        });
866    })
867
868    /**
869     * @tc.name      pasteboard_function_test28
870     * @tc.desc      Replaces uri record
871     * @tc.type      Function
872     * @tc.require   AR000H5I1D
873     */
874    it('pasteboard_function_test28', 0, async function (done) {
875        var systemPasteboard = pasteboard.getSystemPasteboard();
876        systemPasteboard.clear().then(() => {
877            var uriText = 'https://www.baidu.com/';
878            var pasteData = pasteboard.createUriData(uriText);
879            systemPasteboard.setPasteData(pasteData).then(() => {
880                systemPasteboard.hasPasteData().then((data) => {
881                    expect(data).assertEqual(true);
882                    systemPasteboard.getPasteData().then((data) => {
883                        var pasteData1 = data;
884                        expect(pasteData1.getRecordCount()).assertEqual(1);
885                        var uriText1 = 'https://www.baidu.com/1';
886                        var pasteDataRecord = pasteboard.createUriRecord(uriText1);
887                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
888                        expect(replace).assertEqual(true);
889                        var primaryUri = pasteData1.getPrimaryUri();
890                        expect(primaryUri).assertEqual(uriText1);
891                        expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
892                        var primaryUri = pasteData1.getPrimaryUri();
893                        expect(primaryUri).assertEqual(uriText1);
894                        done();
895                    })
896                });
897            });
898        });
899    })
900
901    /**
902     * @tc.name      pasteboard_function_test29
903     * @tc.desc      Replaces want record
904     * @tc.type      Function
905     * @tc.require   AR000H5I1D
906     */
907    it('pasteboard_function_test29', 0, async function (done) {
908        var systemPasteboard = pasteboard.getSystemPasteboard();
909        systemPasteboard.clear().then(() => {
910            var wantText0 = {
911                bundleName: "com.example.myapplication3",
912                abilityName: "com.example.myapplication3.MainAbility"
913            }
914            var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText0);
915            systemPasteboard.setPasteData(pasteData).then(() => {
916                systemPasteboard.hasPasteData().then((data) => {
917                    expect(data).assertEqual(true);
918                    systemPasteboard.getPasteData().then((data) => {
919                        var pasteData1 = data;
920                        expect(pasteData1.getRecordCount()).assertEqual(1);
921                        var wantText1 = {
922                            bundleName: "com.example.myapplication30",
923                            abilityName: "com.example.myapplication30.MainAbility"
924                        }
925                        var pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText1);
926                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
927                        expect(replace).assertEqual(true);
928                        var primaryWant = pasteData1.getPrimaryWant();
929                        expect(primaryWant.bundleName).assertEqual(wantText1.bundleName);
930                        expect(primaryWant.abilityName).assertEqual(wantText1.abilityName);
931                        done();
932                    })
933                });
934            });
935        });
936    })
937
938    /**
939     * @tc.name      pasteboard_function_test30
940     * @tc.desc      Replaces 300k文本 record
941     * @tc.type      Function
942     * @tc.require   AR000H5I1D
943     */
944    it('pasteboard_function_test30', 0, async function (done) {
945        var systemPasteboard = pasteboard.getSystemPasteboard();
946        systemPasteboard.clear().then(() => {
947            var textData = ''
948            for (var i = 0; i < 300; i++) {
949                textData = textData + "A";
950            }
951            var pasteData = pasteboard.createPlainTextData(textData);
952            systemPasteboard.setPasteData(pasteData).then(() => {
953                systemPasteboard.hasPasteData().then((data) => {
954                    expect(data).assertEqual(true);
955                    systemPasteboard.getPasteData().then((data) => {
956                        var pasteData1 = data;
957                        expect(pasteData1.getRecordCount()).assertEqual(1);
958                        var textData1 = 'Hello World1'
959                        var pasteDataRecord = pasteboard.createPlainTextRecord(textData1);
960                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
961                        expect(replace).assertEqual(true);
962                        var primaryText = pasteData1.getPrimaryText();
963                        expect(primaryText).assertEqual(textData1);
964                        done();
965                    })
966                });
967            });
968        });
969    })
970
971    /**
972     * @tc.name      pasteboard_function_test31
973     * @tc.desc      Clears pasteBoard, gets record count
974     * @tc.type      Function
975     * @tc.require   AR000H5I1D
976     */
977    it('pasteboard_function_test31', 0, async function (done) {
978        var systemPasteboard = pasteboard.getSystemPasteboard();
979        systemPasteboard.clear().then(() => {
980            var textData = 'Hello World!';
981            var pasteData = pasteboard.createPlainTextData(textData);
982            systemPasteboard.setPasteData(pasteData).then(() => {
983                systemPasteboard.hasPasteData().then((data) => {
984                    expect(data).assertEqual(true);
985                    systemPasteboard.getPasteData().then(async (data) => {
986                        var pasteData1 = data;
987                        expect(pasteData1.getRecordCount()).assertEqual(1);
988                        await systemPasteboard.clear();
989                        systemPasteboard.getPasteData().then((data) => {
990                            var pasteData2 = data;
991                            var recordCount = pasteData2.getRecordCount();
992                            expect(recordCount).assertEqual(0);
993                            done();
994                        });
995                    });
996                });
997            });
998        });
999    })
1000
1001    /**
1002     * @tc.name      pasteboard_function_test32
1003     * @tc.desc      Adds Property
1004     * @tc.type      Function
1005     * @tc.require   AR000H5I1D
1006     */
1007    it('pasteboard_function_test32', 0, async function (done) {
1008        var systemPasteboard = pasteboard.getSystemPasteboard();
1009        systemPasteboard.clear().then(() => {
1010            var textData = 'Hello World!';
1011            var pasteData = pasteboard.createPlainTextData(textData);
1012            systemPasteboard.setPasteData(pasteData).then(() => {
1013                systemPasteboard.hasPasteData().then((data) => {
1014                    expect(data).assertEqual(true);
1015                    systemPasteboard.getPasteData().then((data) => {
1016                        var pasteData1 = data;
1017                        expect(pasteData1.getRecordCount()).assertEqual(1);
1018                        var pasteDataProperty = pasteData1.getProperty()
1019                        expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
1020                        pasteDataProperty.shareOption = pasteboard.ShareOption.InApp;
1021                        pasteData1.setProperty(pasteDataProperty);
1022                        expect(pasteData1.getProperty().shareOption).assertEqual(pasteboard.ShareOption.InApp);
1023                        done();
1024                    })
1025                });
1026            });
1027        });
1028    })
1029
1030    /**
1031     * @tc.name      pasteboard_function_test33
1032     * @tc.desc      Clears pasteBoard and check property
1033     * @tc.type      Function
1034     * @tc.require   AR000H5I1D
1035     */
1036    it('pasteboard_function_test33', 0, async function (done) {
1037        var systemPasteboard = pasteboard.getSystemPasteboard();
1038        systemPasteboard.clear().then(() => {
1039            var textData = 'Hello World!';
1040            var pasteData = pasteboard.createPlainTextData(textData);
1041            systemPasteboard.setPasteData(pasteData).then(() => {
1042                systemPasteboard.hasPasteData().then((data) => {
1043                    expect(data).assertEqual(true);
1044                    systemPasteboard.getPasteData().then(async (data) => {
1045                        expect(data.getRecordCount()).assertEqual(1);
1046                        await systemPasteboard.clear();
1047                        var newPasteData = await systemPasteboard.getPasteData();
1048                        expect(newPasteData.getProperty().shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
1049                        done();
1050                    })
1051                });
1052            });
1053        });
1054    })
1055
1056    /**
1057     * @tc.name      pasteboard_function_test34
1058     * @tc.desc      打开内容变化通知功能
1059     * @tc.type      Function
1060     * @tc.require   AR000H5I1D
1061     */
1062    it('pasteboard_function_test34', 0, async function (done) {
1063        var systemPasteboard = pasteboard.getSystemPasteboard();
1064        systemPasteboard.clear().then(() => {
1065            systemPasteboard.on('update', contentChanges)
1066            var textData = 'Hello World!';
1067            var pasteData = pasteboard.createPlainTextData(textData);
1068            systemPasteboard.setPasteData(pasteData).then(() => {
1069                systemPasteboard.hasPasteData().then((data) => {
1070                    expect(data).assertEqual(true);
1071                    systemPasteboard.getPasteData().then((data) => {
1072                        var pasteData1 = data;
1073                        expect(pasteData1.getRecordCount()).assertEqual(1);
1074                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
1075                        expect(pasteData1.getRecordCount()).assertEqual(0);
1076                        done();
1077                    })
1078                });
1079            });
1080        });
1081    })
1082
1083    /**
1084     * @tc.name      pasteboard_function_test35
1085     * @tc.desc      清除剪切板内的文本数据项
1086     * @tc.type      Function
1087     * @tc.require   AR000H5I1D
1088     */
1089    it('pasteboard_function_test35', 0, async function (done) {
1090        var systemPasteboard = pasteboard.getSystemPasteboard();
1091        systemPasteboard.clear().then(() => {
1092            var textData = 'Hello World!';
1093            var pasteData = pasteboard.createPlainTextData(textData);
1094            systemPasteboard.setPasteData(pasteData).then(() => {
1095                systemPasteboard.hasPasteData().then((data) => {
1096                    expect(data).assertEqual(true);
1097                    systemPasteboard.getPasteData().then(async (data) => {
1098                        var pasteData1 = data;
1099                        expect(pasteData1.getRecordCount()).assertEqual(1);
1100                        await systemPasteboard.clear();
1101                        systemPasteboard.getPasteData().then((data) => {
1102                            var pasteData2 = data;
1103                            var recordCount = pasteData2.getRecordCount();
1104                            expect(recordCount).assertEqual(0);
1105                            done();
1106                        });
1107                    });
1108                });
1109            });
1110        });
1111    })
1112
1113    /**
1114     * @tc.name      pasteboard_function_test36
1115     * @tc.desc      清除剪切板内的uri数据项
1116     * @tc.type      Function
1117     * @tc.require   AR000H5I1D
1118     */
1119    it('pasteboard_function_test36', 0, async function (done) {
1120        var systemPasteboard = pasteboard.getSystemPasteboard();
1121        systemPasteboard.clear().then(() => {
1122            var uriText = 'https://www.baidu.com/';
1123            var pasteData = pasteboard.createUriData(uriText);
1124            systemPasteboard.setPasteData(pasteData).then(() => {
1125                systemPasteboard.hasPasteData().then((data) => {
1126                    expect(data).assertEqual(true);
1127                    systemPasteboard.getPasteData().then(async (data) => {
1128                        var pasteData1 = data;
1129                        expect(pasteData1.getRecordCount()).assertEqual(1);
1130                        await systemPasteboard.clear();
1131                        systemPasteboard.getPasteData().then((data) => {
1132                            var pasteData2 = data;
1133                            var recordCount = pasteData2.getRecordCount();
1134                            expect(recordCount).assertEqual(0);
1135                            done();
1136                        });
1137                    });
1138                });
1139            });
1140        });
1141    })
1142
1143    /**
1144     * @tc.name      pasteboard_function_test37
1145     * @tc.desc      清除剪切板内的html数据项
1146     * @tc.type      Function
1147     * @tc.require   AR000H5I1D
1148     */
1149    it('pasteboard_function_test37', 0, async function (done) {
1150        var systemPasteboard = pasteboard.getSystemPasteboard();
1151        systemPasteboard.clear().then(() => {
1152            var htmlText = '<html><head></head><body>Hello World!</body></html>';
1153            var pasteData = pasteboard.createHtmlData(htmlText);
1154            systemPasteboard.setPasteData(pasteData).then(() => {
1155                systemPasteboard.hasPasteData().then((data) => {
1156                    expect(data).assertEqual(true);
1157                    systemPasteboard.getPasteData().then(async (data) => {
1158                        var pasteData1 = data;
1159                        expect(pasteData1.getRecordCount()).assertEqual(1);
1160                        await systemPasteboard.clear();
1161                        systemPasteboard.getPasteData().then((data) => {
1162                            var pasteData2 = data;
1163                            var recordCount = pasteData2.getRecordCount();
1164                            expect(recordCount).assertEqual(0);
1165                            done();
1166                        });
1167                    });
1168                });
1169            });
1170        });
1171    })
1172
1173    /**
1174     * @tc.name      pasteboard_function_test38
1175     * @tc.desc      清除剪切板内的want数据项
1176     * @tc.type      Function
1177     * @tc.require   AR000H5I1D
1178     */
1179    it('pasteboard_function_test38', 0, async function (done) {
1180        var systemPasteboard = pasteboard.getSystemPasteboard();
1181        systemPasteboard.clear().then(() => {
1182            var myWant = {
1183                bundleName: "com.example.myapplication55",
1184                abilityName: "com.example.myapplication55.MainAbility"
1185            }
1186            var pasteData = pasteboard.createWantData(myWant);
1187            systemPasteboard.setPasteData(pasteData).then(() => {
1188                systemPasteboard.hasPasteData().then((data) => {
1189                    expect(data).assertEqual(true);
1190                    systemPasteboard.getPasteData().then(async (data) => {
1191                        var pasteData1 = data;
1192                        expect(pasteData1.getRecordCount()).assertEqual(1);
1193                        await systemPasteboard.clear();
1194                        systemPasteboard.getPasteData().then((data) => {
1195                            var pasteData2 = data;
1196                            var recordCount = pasteData2.getRecordCount();
1197                            expect(recordCount).assertEqual(0);
1198                            done();
1199                        });
1200                    });
1201                });
1202            });
1203        });
1204    })
1205
1206    /**
1207     * @tc.name      pasteboard_function_test39
1208     * @tc.desc      向剪切板内增加30条数据项,然后清除
1209     * @tc.type      Function
1210     * @tc.require   AR000H5I1D
1211     */
1212    it('pasteboard_function_test39', 0, async function (done) {
1213        var systemPasteboard = pasteboard.getSystemPasteboard();
1214        systemPasteboard.clear().then(() => {
1215            var textData0 = 'Hello World!';
1216            var pasteData = pasteboard.createPlainTextData(textData0);
1217            var textData = '';
1218            for (var i = 1; i < 30; i++) {
1219                textData = 'Hello World';
1220                textData = textData + i;
1221                pasteData.addTextRecord(textData);
1222            }
1223            systemPasteboard.setPasteData(pasteData).then(() => {
1224                systemPasteboard.hasPasteData().then((data) => {
1225                    expect(data).assertEqual(true);
1226                    systemPasteboard.getPasteData().then(async (data) => {
1227                        var pasteData1 = data;
1228                        expect(pasteData1.getRecordCount()).assertEqual(30);
1229                        await systemPasteboard.clear();
1230                        systemPasteboard.getPasteData().then((data) => {
1231                            var pasteData2 = data;
1232                            var recordCount = pasteData2.getRecordCount();
1233                            expect(recordCount).assertEqual(0);
1234                            done();
1235                        })
1236                    })
1237                });
1238            });
1239        });
1240    })
1241
1242    /**
1243     * @tc.name      pasteboard_function_test40
1244     * @tc.desc      向剪贴板数据各增加5条文本、uri、html数据,然后清除
1245     * @tc.type      Function
1246     * @tc.require   AR000H5I1D
1247     */
1248    it('pasteboard_function_test40', 0, async function (done) {
1249        var systemPasteboard = pasteboard.getSystemPasteboard();
1250        systemPasteboard.clear().then(() => {
1251            var textData0 = 'Hello World0';
1252            var pasteData = pasteboard.createPlainTextData(textData0);
1253            var textData = '';
1254            for (var i = 1; i < 5; i++) {
1255                textData = 'Hello World';
1256                textData = textData + i;
1257                pasteData.addTextRecord(textData);
1258            }
1259            var htmlText = '';
1260            for (var i = 0; i < 5; i++) {
1261                htmlText = '<html><head></head><body>Hello World!</body></html>';
1262                htmlText = htmlText + i;
1263                pasteData.addHtmlRecord(htmlText);
1264            }
1265            var uriText = '';
1266            for (var i = 0; i < 5; i++) {
1267                uriText = 'https://www.baidu.com/';
1268                uriText = uriText + i;
1269                pasteData.addUriRecord(uriText);
1270            }
1271            systemPasteboard.setPasteData(pasteData).then(() => {
1272                systemPasteboard.hasPasteData().then((data) => {
1273                    expect(data).assertEqual(true);
1274                    systemPasteboard.getPasteData().then(async (data) => {
1275                        var pasteData1 = data;
1276                        expect(pasteData1.getRecordCount()).assertEqual(15);
1277                        await systemPasteboard.clear();
1278                        systemPasteboard.getPasteData().then((data) => {
1279                            var pasteData2 = data;
1280                            var recordCount = pasteData2.getRecordCount();
1281                            expect(recordCount).assertEqual(0);
1282                            done();
1283                        })
1284                    })
1285                });
1286            });
1287        });
1288    })
1289
1290    /**
1291     * @tc.name      pasteboard_function_test41
1292     * @tc.desc      更新剪贴板数据,查询剪贴板存在剪贴板数据
1293     * @tc.type      Function
1294     * @tc.require   AR000HEECD
1295     */
1296    it('pasteboard_function_test41', 0, async function (done) {
1297        var systemPasteboard = pasteboard.getSystemPasteboard();
1298        systemPasteboard.clear().then(() => {
1299            var textData = 'Hello World!';
1300            var pasteData = pasteboard.createPlainTextData(textData);
1301            systemPasteboard.setPasteData(pasteData).then(() => {
1302                systemPasteboard.hasPasteData().then((data) => {
1303                    expect(data).assertEqual(true);
1304                    systemPasteboard.getPasteData().then(async (data) => {
1305                        var pasteData1 = data;
1306                        expect(pasteData1.getRecordCount()).assertEqual(1);
1307                        var textData1 = 'Hello World1';
1308                        var pasteDataRecord = pasteboard.createPlainTextRecord(textData1);
1309                        var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
1310                        expect(replace).assertEqual(true);
1311                        await systemPasteboard.setPasteData(pasteData1);
1312                        systemPasteboard.hasPasteData().then(async (data) => {
1313                            expect(data).assertEqual(true);
1314                            var newData = await systemPasteboard.getPasteData();
1315                            expect(newData.getPrimaryText()).assertEqual(textData1);
1316                            var newPasteDataRecord = newData.getRecordAt(0);
1317                            expect(newPasteDataRecord.plainText).assertEqual(textData1);
1318                            done();
1319                        })
1320                    })
1321                });
1322            });
1323        });
1324    })
1325
1326    /**
1327     * @tc.name      pasteboard_function_test42
1328     * @tc.desc      删除所有的剪贴板数据,查询剪贴板不存在剪贴板数据
1329     * @tc.type      Function
1330     * @tc.require   AR000HEECD
1331     */
1332    it('pasteboard_function_test42', 0, async function (done) {
1333        var systemPasteboard = pasteboard.getSystemPasteboard();
1334        systemPasteboard.clear().then(() => {
1335            var textData = 'Hello World!';
1336            var pasteData = pasteboard.createPlainTextData(textData);
1337            systemPasteboard.setPasteData(pasteData).then(() => {
1338                systemPasteboard.hasPasteData().then((data) => {
1339                    expect(data).assertEqual(true);
1340                    systemPasteboard.getPasteData().then(async (data) => {
1341                        var pasteData1 = data;
1342                        var recordCount = pasteData1.getRecordCount();
1343                        expect(recordCount).assertEqual(1);
1344                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
1345                        expect(pasteData1.getRecordCount()).assertEqual(0);
1346                        var newData = await systemPasteboard.getPasteData();
1347                        expect(newData.getRecordCount()).assertEqual(1);
1348                        done();
1349                    })
1350                });
1351            });
1352        });
1353    })
1354
1355    /**
1356     * @tc.name      pasteboard_function_test43
1357     * @tc.desc      将文本数据强制转换为文本
1358     * @tc.type      Function
1359     * @tc.require   AR000HEECD
1360     */
1361    it('pasteboard_function_test43', 0, async function (done) {
1362        var systemPasteboard = pasteboard.getSystemPasteboard();
1363        systemPasteboard.clear().then(() => {
1364            var textData = 'Hello World!';
1365            var pasteData = pasteboard.createPlainTextData(textData);
1366            systemPasteboard.setPasteData(pasteData).then(() => {
1367                systemPasteboard.hasPasteData().then((data) => {
1368                    expect(data).assertEqual(true);
1369                    systemPasteboard.getPasteData().then(async (data) => {
1370                        var pasteData1 = data;
1371                        expect(pasteData1.getRecordCount()).assertEqual(1);
1372                        var pasteDataRecord = pasteData1.getRecordAt(0);
1373                        var text = await pasteDataRecord.convertToText();
1374                        expect(text).assertEqual(textData);
1375                        done();
1376                    })
1377                });
1378            });
1379        });
1380    })
1381
1382    /**
1383     * @tc.name      pasteboard_function_test44
1384     * @tc.desc      将一条含有特殊字符、中英混杂的文本数据强制转换为文本
1385     * @tc.type      Function
1386     * @tc.require   AR000HEECD
1387     */
1388    it('pasteboard_function_test44', 0, async function (done) {
1389        var systemPasteboard = pasteboard.getSystemPasteboard();
1390        systemPasteboard.clear().then(() => {
1391            var textData = 'Hello 中国!@#$%^&*()_+{}\?.';
1392            var pasteData = pasteboard.createPlainTextData(textData);
1393            systemPasteboard.setPasteData(pasteData).then(() => {
1394                systemPasteboard.hasPasteData().then((data) => {
1395                    expect(data).assertEqual(true);
1396                    systemPasteboard.getPasteData().then((data) => {
1397                        var pasteData1 = data;
1398                        expect(pasteData1.getRecordCount()).assertEqual(1);
1399                        var pasteDataRecord = pasteData1.getRecordAt(0);
1400                        pasteDataRecord.convertToText((err, text) => {
1401                            if (err) {
1402                                console.info('f_test44 pasteDataRecord.convertToText error: ' + error);
1403                            } else {
1404                                expect(textData).assertEqual(text);
1405                                done();
1406                            }
1407                        });
1408                    })
1409                });
1410            });
1411        });
1412    })
1413
1414    /**
1415     * @tc.name      pasteboard_function_test45
1416     * @tc.desc      将一条超长文本数据 (大小为301K)强制转换为文本
1417     * @tc.type      Function
1418     * @tc.require   AR000HEECD
1419     */
1420    it('pasteboard_function_test45', 0, async function (done) {
1421        var systemPasteboard = pasteboard.getSystemPasteboard();
1422        systemPasteboard.clear().then(() => {
1423            var textData = ''
1424            for (var i = 0; i < 301; i++) {
1425                textData = textData + "A";
1426            }
1427            var pasteData = pasteboard.createPlainTextData(textData);
1428            systemPasteboard.setPasteData(pasteData).then(() => {
1429                systemPasteboard.hasPasteData().then((data) => {
1430                    expect(data).assertEqual(true);
1431                    systemPasteboard.getPasteData().then((data) => {
1432                        var pasteData1 = data;
1433                        expect(pasteData1.getRecordCount()).assertEqual(1);
1434                        var pasteDataRecord = pasteData1.getRecordAt(0);
1435                        pasteDataRecord.convertToText((err, text) => {
1436                            if (err) {
1437                                console.info('f_test45 pasteDataRecord.convertToText error: ' + error);
1438                            } else {
1439                                expect(textData).assertEqual(text);
1440                                done();
1441                            }
1442                        });
1443                    })
1444                });
1445            });
1446        });
1447    })
1448
1449    /**
1450     * @tc.name      pasteboard_function_test46
1451     * @tc.desc      将uri数据强制转换为文本
1452     * @tc.type      Function
1453     * @tc.require   AR000HEECD
1454     */
1455    it('pasteboard_function_test46', 0, async function (done) {
1456        var systemPasteboard = pasteboard.getSystemPasteboard();
1457        systemPasteboard.clear().then(() => {
1458            var uriText = 'https://www.baidu.com/';
1459            var pasteData = pasteboard.createUriData(uriText);
1460            systemPasteboard.setPasteData(pasteData).then(() => {
1461                systemPasteboard.hasPasteData().then((data) => {
1462                    expect(data).assertEqual(true);
1463                    systemPasteboard.getPasteData().then((data) => {
1464                        var pasteData1 = data;
1465                        expect(pasteData1.getRecordCount()).assertEqual(1);
1466                        var pasteDataRecord = pasteData1.getRecordAt(0)
1467                        pasteDataRecord.convertToText().then((text) => {
1468                            expect(uriText).assertEqual(text);
1469                            done();
1470                        }).catch((error) => {
1471                            console.info('f_test46 pasteDataRecord.convertToText error: ' + error);
1472                        });
1473                    })
1474                });
1475            });
1476        });
1477    })
1478
1479    /**
1480     * @tc.name      pasteboard_function_test47
1481     * @tc.desc      复制文本、uri格式
1482     * @tc.type      Function
1483     * @tc.require   AR000HEECD
1484     */
1485    it('pasteboard_function_test47', 0, async function (done) {
1486        var systemPasteboard = pasteboard.getSystemPasteboard();
1487        systemPasteboard.clear().then(() => {
1488            var textData0 = 'Hello World0';
1489            var pasteData = pasteboard.createPlainTextData(textData0);
1490            var uriText = pasteboard.createUriRecord("https://www.baidu.com/");
1491            pasteData.addRecord(uriText);
1492            systemPasteboard.setPasteData(pasteData).then(() => {
1493                systemPasteboard.hasPasteData().then((data) => {
1494                    expect(data).assertEqual(true);
1495                    systemPasteboard.getPasteData().then((pasteData1) => {
1496                        var recordCount = pasteData1.getRecordCount();
1497                        expect(recordCount).assertEqual(2);
1498                        var pasteDataRecord1 = pasteData1.getRecordAt(0);
1499                        var pasteDataRecord2 = pasteData1.getRecordAt(1);
1500                        expect(pasteDataRecord1.uri).assertEqual(uriText.uri);
1501                        expect(pasteDataRecord2.plainText).assertEqual(textData0);
1502                        done();
1503                    })
1504                });
1505            });
1506        });
1507    })
1508
1509    /**
1510     * @tc.name      pasteboard_function_test48
1511     * @tc.desc      关闭内容变化通知功能:向剪贴板数据增加、删除等html数据项
1512     * @tc.type      Function
1513     * @tc.require   AR000HEECD
1514     */
1515    it('pasteboard_function_test48', 0, async function (done) {
1516        var systemPasteboard = pasteboard.getSystemPasteboard();
1517        systemPasteboard.clear().then(() => {
1518            systemPasteboard.off('update', contentChanges);
1519            var htmlText = '<html><head></head><body>Hello World!</body></html>';
1520            var pasteData = pasteboard.createHtmlData(htmlText);
1521            systemPasteboard.setPasteData(pasteData).then(() => {
1522                systemPasteboard.hasPasteData().then((data) => {
1523                    expect(data).assertEqual(true);
1524                    systemPasteboard.getPasteData().then((data) => {
1525                        var pasteData1 = data;
1526                        expect(pasteData1.getRecordCount()).assertEqual(1);
1527                        expect(pasteData1.removeRecordAt(0)).assertEqual(true);
1528                        expect(pasteData1.getRecordCount()).assertEqual(0);
1529                        done();
1530                    })
1531                });
1532            });
1533        });
1534    })
1535
1536    /**
1537     * @tc.name      pasteboard_function_test49
1538     * @tc.desc      创建pixelMap
1539     * @tc.type      Function
1540     * @tc.require   AR000HEECD
1541     */
1542    it('pasteboard_function_test49', 0, async function (done) {
1543        var systemPasteboard = pasteboard.getSystemPasteboard();
1544        systemPasteboard.clear().then(() => {
1545            var buffer = new ArrayBuffer(128);
1546            var opt = {
1547                size: {height: 5, width: 5},
1548                pixelFormat: 3,
1549                editable: true,
1550                alphaType: 1,
1551                scaleMode: 1
1552            };
1553            image.createPixelMap(buffer, opt).then(async (pixelMap) => {
1554                expect(pixelMap.getPixelBytesNumber()).assertEqual(100);
1555                var pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
1556                systemPasteboard.setPasteData(pasteData).then(() => {
1557                    systemPasteboard.hasPasteData().then((data) => {
1558                        expect(data).assertEqual(true);
1559                        systemPasteboard.getPasteData().then((newPasteData) => {
1560                            var recordCount = newPasteData.getRecordCount();
1561                            expect(recordCount).assertEqual(1);
1562                            var newPixelMap = newPasteData.getPrimaryPixelMap();
1563                            var PixelMapBytesNumber = newPixelMap.getPixelBytesNumber();
1564                            expect(PixelMapBytesNumber).assertEqual(100);
1565                            newPixelMap.getImageInfo().then((imageInfo) => {
1566                                expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true);
1567                                done();
1568                            });
1569                        });
1570                    });
1571                });
1572            });
1573        });
1574    })
1575
1576    /**
1577     * @tc.name      pasteboard_function_test50
1578     * @tc.desc      创建kv Record
1579     * @tc.type      Function
1580     * @tc.require   AR000HEECD
1581     */
1582    it('pasteboard_function_test50', 0, async function (done) {
1583        var systemPasteboard = pasteboard.getSystemPasteboard();
1584        systemPasteboard.clear().then(() => {
1585            var dataXml = new ArrayBuffer(512);
1586            var int32view = new Int32Array(dataXml);
1587            for (var i = 0; i < int32view.length; i++) {
1588                int32view[i] = 65535 + i;
1589            }
1590            var pasteDataRecord = pasteboard.createRecord('app/xml', dataXml);
1591            var dataJpg = new ArrayBuffer(256);
1592            pasteDataRecord.data['image/ipg'] = dataJpg;
1593            var pasteData = pasteboard.createHtmlData('application/xml');
1594            var replace = pasteData.replaceRecordAt(0, pasteDataRecord);
1595            expect(replace).assertEqual(true);
1596            systemPasteboard.setPasteData(pasteData).then(() => {
1597                systemPasteboard.hasPasteData().then((data) => {
1598                    expect(data).assertEqual(true);
1599                    systemPasteboard.getPasteData().then((newPasteData) => {
1600                        var recordCount = newPasteData.getRecordCount();
1601                        expect(recordCount).assertEqual(1);
1602                        var newPasteDataRecord = newPasteData.getRecordAt(0);
1603                        var newAppXml = newPasteDataRecord.data['app/xml'];
1604                        var newImageIpg = newPasteDataRecord.data['image/ipg'];
1605                        expect(newAppXml.byteLength === 512 && newImageIpg.byteLength === 256).assertEqual(true);
1606                        var newAppXmlView = new Int32Array(newAppXml);
1607                        var newImageIpgView = new Int32Array(newImageIpg);
1608                        for (var i = 0; i < newAppXmlView.length; i++) {
1609                            console.info("newAppXml[" + i + "] = " + newAppXmlView[i]);
1610                        }
1611                        for (var i = 0; i < newImageIpgView.length; i++) {
1612                            console.info("newImageIpg[" + i + "] = " + newImageIpg[i]);
1613                        }
1614                        done();
1615                    });
1616                });
1617            });
1618        });
1619    })
1620
1621    /**
1622     * @tc.name      pasteboard_function_test51
1623     * @tc.desc      测试addPixelMapRecord
1624     * @tc.type      Function
1625     * @tc.require   AR000HEECD
1626     */
1627    it('pasteboard_function_test51', 0, async function (done) {
1628        var systemPasteboard = pasteboard.getSystemPasteboard();
1629        systemPasteboard.clear().then(() => {
1630            var buffer = new ArrayBuffer(128);
1631            var opt = {
1632                size: {height: 5, width: 5},
1633                pixelFormat: 3,
1634                editable: true,
1635                alphaType: 1,
1636                scaleMode: 1
1637            };
1638            var pasteData = pasteboard.createHtmlData('application/xml');
1639            image.createPixelMap(buffer, opt).then((pixelMap) => {
1640                expect(pixelMap.getPixelBytesNumber() === 100).assertEqual(true);
1641                pasteData.addRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
1642                systemPasteboard.setPasteData(pasteData).then(() => {
1643                    systemPasteboard.hasPasteData().then((data) => {
1644                        expect(data).assertEqual(true);
1645                        systemPasteboard.getPasteData().then((newPasteData) => {
1646                            var recordCount = newPasteData.getRecordCount();
1647                            expect(recordCount).assertEqual(2);
1648                            var newPixelMap = newPasteData.getPrimaryPixelMap();
1649                            var PixelMapBytesNumber = newPixelMap.getPixelBytesNumber();
1650                            expect(PixelMapBytesNumber).assertEqual(100);
1651                            var newHtmlData = newPasteData.getRecordAt(1);
1652                            expect(newHtmlData.htmlText).assertEqual('application/xml');
1653                            newPixelMap.getImageInfo().then((imageInfo) => {
1654                                expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true);
1655                                done();
1656                            });
1657                        });
1658                    });
1659                });
1660            });
1661        });
1662    })
1663
1664
1665    /**
1666     * @tc.name      pasteboard_function_test52
1667     * @tc.desc      支持512个record
1668     * @tc.type      Function
1669     * @tc.require   AR000HEECB
1670     */
1671    it('pasteboard_function_test52', 0, async function (done) {
1672        var systemPasteBoard = pasteboard.getSystemPasteboard();
1673        systemPasteBoard.clear().then(() => {
1674            var dataHtml = new ArrayBuffer(256)
1675            var htmlText = '<html><head></head><body>Hello!</body></html>';
1676            var uriText = 'https://www.baidu.com/';
1677            var wantText = {
1678                bundleName: "com.example.myapplication3",
1679                abilityName: "com.example.myapplication3.MainAbility"
1680            };
1681            var plainText = "";
1682            var pasteData = pasteboard.createData("x".repeat(1024), dataHtml)
1683            var record = pasteData.getRecordAt(0)
1684            record.htmlText = htmlText;
1685            record.plainText = plainText;
1686            record.uri = uriText;
1687            record.want = wantText;
1688            var buffer = new ArrayBuffer(128);
1689            var opt = {
1690                size: {height: 5, width: 5},
1691                pixelFormat: 3,
1692                editable: true,
1693                alphaType: 1,
1694                scaleMode: 1
1695            };
1696            image.createPixelMap(buffer, opt).then((pixelMap) => {
1697                record.pixelMap = pixelMap;
1698                pasteData.replaceRecordAt(0, record);
1699                for (var i = 0; i < 511; i++) {
1700                    pasteData.addRecord(record);
1701                }
1702                systemPasteBoard.setPasteData(pasteData).then(() => {
1703                    systemPasteBoard.hasPasteData().then((hasData) => {
1704                        expect(hasData).assertTrue();
1705                        systemPasteBoard.getPasteData().then((data) => {
1706                            expect(data.getRecordCount()).assertEqual(512)
1707                            expect(data.getRecordAt(0).mimeType).assertEqual("x".repeat(1024))
1708                            expect(data.getPrimaryWant().bundleName).assertEqual(wantText.bundleName)
1709                            expect(data.getRecordAt(253).htmlText).assertEqual(htmlText)
1710                            expect(data.getRecordAt(511).plainText).assertEqual(plainText)
1711                            done();
1712                        })
1713                    })
1714                })
1715            })
1716        })
1717    })
1718
1719    /**
1720     *  The callback function is used for pasteboard content changes
1721     */
1722    function contentChanges() {
1723        console.info('#EVENT: The content is changed in the pasteboard');
1724    }
1725});
1726