• 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      自定义数据测试
32   * @tc.type      Function
33   * @tc.require   AR000HEECB
34   */
35  it('pasteboard_function_test1', 0, async function (done) {
36    var systemPasteBoard = pasteboard.getSystemPasteboard();
37    await systemPasteBoard.clear().then(async () => {
38      var pasteData = undefined;
39      console.info('systemPasteBoard clear data success');
40      var dataUri = new ArrayBuffer(256);
41      pasteData = pasteboard.createData('xxx', dataUri);
42      var addUri = new ArrayBuffer(128);
43      pasteData.addRecord('xxx', addUri);
44      var recordUri = new ArrayBuffer(96);
45      var pasteDataRecord = pasteboard.createRecord('xxx', recordUri);
46      pasteData.addRecord(pasteDataRecord);
47      await systemPasteBoard.setPasteData(pasteData).then(async () => {
48        console.info('Set pastedata success');
49        await systemPasteBoard.hasPasteData().then(async (data) => {
50          console.info('Check pastedata has data success, result: ' + data);
51          expect(data).assertTrue();
52          await systemPasteBoard.getPasteData().then(async (data) => {
53            console.info('Get paste data success');
54            expect(data.getRecordCount()).assertEqual(3);
55            expect(data.getRecordAt(0).data['xxx'].byteLength).assertEqual(96);
56            expect(data.getRecordAt(1).data['xxx'].byteLength).assertEqual(128);
57            expect(data.getRecordAt(2).data['xxx'].byteLength).assertEqual(256);
58            done();
59          });
60        });
61      });
62    });
63  });
64
65  /**
66   * @tc.name      pasteboard_function_test2
67   * @tc.desc      自定义数据测试
68   * @tc.type      Function
69   * @tc.require   AR000HEECB
70   */
71  it('pasteboard_function_test2', 0, async function (done) {
72    var systemPasteBoard = pasteboard.getSystemPasteboard();
73    await systemPasteBoard.clear().then(async () => {
74      console.info('systemPasteBoard clear data success');
75      var pasteData = undefined;
76      var pasteRecord = undefined;
77
78      var dataHtml = new ArrayBuffer(256);
79      pasteData = pasteboard.createData('xy', dataHtml);
80      expect(pasteData != undefined).assertTrue();
81
82      pasteData.addRecord('x'.repeat(1024), dataHtml);
83      expect(pasteData.getRecordCount()).assertEqual(2);
84
85      pasteRecord = pasteboard.createRecord('xy2', dataHtml);
86      expect(pasteRecord != undefined).assertTrue();
87      pasteData.addRecord(pasteRecord);
88
89      await systemPasteBoard.setPasteData(pasteData).then(async () => {
90        console.info('set pastedata success');
91        await systemPasteBoard.hasPasteData().then(async (data) => {
92          console.info('Check pastedata has data success, result: ' + data);
93          expect(data).assertTrue();
94          await systemPasteBoard.getPasteData().then(async (data) => {
95            console.info('get paste data success');
96            expect(data.getRecordCount()).assertEqual(3);
97            expect(data.getRecordAt(0).mimeType).assertEqual('xy2');
98            expect(data.getRecordAt(1).mimeType).assertEqual('x'.repeat(1024));
99            expect(data.getRecordAt(2).mimeType).assertEqual('xy');
100            done();
101          });
102        });
103      });
104    });
105  });
106
107  /**
108   * @tc.name      pasteboard_function_test3
109   * @tc.desc      自定义数据异常测试
110   * @tc.type      Function
111   * @tc.require   AR000HEECB
112   */
113  it('pasteboard_function_test3', 0, async function (done) {
114    console.info('pasteboard_function_test1 start');
115    var systemPasteBoard = pasteboard.getSystemPasteboard();
116    await systemPasteBoard.clear().then(async () => {
117      console.info('systemPasteBoard clear data success');
118      var pasteData = undefined;
119      var pasteRecord = undefined;
120
121      var dataHtml = new ArrayBuffer(256);
122      try {
123        pasteData = pasteboard.createData('x'.repeat(1025), dataHtml);
124        expect(true === false).assertTrue();
125      } catch (error) {
126        console.info(error.code);
127        console.info(error.message);
128      }
129
130      expect(pasteData).assertEqual(undefined);
131      pasteData = pasteboard.createData('x'.repeat(1024), dataHtml);
132      expect(pasteData != undefined).assertTrue();
133
134      var addHtml = new ArrayBuffer(128);
135
136      try {
137        pasteData.addRecord('x'.repeat(1025), addHtml);
138        expect(true === false).assertTrue();
139      } catch (error) {
140        console.info(error.code);
141        console.info(error.message);
142      }
143      expect(pasteData.getRecordCount()).assertEqual(1);
144      pasteData.addRecord('x'.repeat(1024), addHtml);
145      expect(pasteData.getRecordCount()).assertEqual(2);
146
147      var recordHtml = new ArrayBuffer(64);
148      try {
149        pasteRecord = pasteboard.createRecord('x'.repeat(1025), recordHtml);
150        expect(true === false).assertTrue();
151      } catch (error) {
152        console.info(error.code);
153        console.info(error.message);
154      }
155      expect(pasteRecord).assertEqual(undefined);
156      pasteRecord = pasteboard.createRecord('x'.repeat(1024), recordHtml);
157      expect(pasteRecord != undefined).assertTrue();
158      pasteData.addRecord(pasteRecord);
159      expect(pasteData.getRecordCount()).assertEqual(3);
160      await systemPasteBoard.setPasteData(pasteData).then(async () => {
161        console.info('set pastedata success');
162        await systemPasteBoard.hasPasteData().then(async (data) => {
163          console.info('Check pastedata has data success, result: ' + data);
164          expect(data).assertTrue();
165          await systemPasteBoard.getPasteData().then(async (data) => {
166            console.info('get paste data success');
167            expect(data.getRecordCount()).assertEqual(3);
168            done();
169          });
170        });
171      });
172    });
173  });
174
175  /**
176   * @tc.name      pasteboard_function_test4
177   * @tc.desc      自定义数据异常测试
178   * @tc.type      Function
179   * @tc.require   AR000HEECB
180   */
181  it('pasteboard_function_test4', 0, async function (done) {
182    console.info('pasteboard_function_test2 start');
183    var systemPasteBoard = pasteboard.getSystemPasteboard();
184    await systemPasteBoard.clear().then(async () => {
185      console.info('systemPasteBoard clear data success');
186      var pasteData = undefined;
187      var pasteRecord = undefined;
188
189      var dataHtml = new ArrayBuffer(256);
190      try {
191        pasteData = pasteboard.createData('x'.repeat(1025), dataHtml);
192        expect(true === false).assertTrue();
193      } catch (error) {
194        console.info(error.code);
195        console.info(error.message);
196      }
197      expect(pasteData).assertEqual(undefined);
198      pasteData = pasteboard.createData('x'.repeat(1024), dataHtml);
199      expect(pasteData != undefined).assertTrue();
200
201      try {
202        pasteData.addRecord('x'.repeat(1025), dataHtml);
203        expect(true === false).assertTrue();
204      } catch (error) {
205        console.info(error.code);
206        console.info(error.message);
207      }
208      expect(pasteData.getRecordCount()).assertEqual(1);
209      pasteData.addRecord('x'.repeat(1024), dataHtml);
210      expect(pasteData.getRecordCount()).assertEqual(2);
211
212      try {
213        pasteRecord = pasteboard.createRecord('x'.repeat(1025), dataHtml);
214        expect(true === false).assertTrue();
215      } catch (error) {
216        console.info(error.code);
217        console.info(error.message);
218      }
219      expect(pasteRecord).assertEqual(undefined);
220      pasteRecord = pasteboard.createRecord('x'.repeat(1024), dataHtml);
221      expect(pasteRecord != undefined).assertTrue();
222
223      pasteData.addRecord(pasteRecord);
224      expect(pasteData.getRecordCount()).assertEqual(3);
225      await systemPasteBoard.setPasteData(pasteData).then(async () => {
226        console.info('set pastedata success');
227        await systemPasteBoard.hasPasteData().then(async (data) => {
228          console.info('Check pastedata has data success, result: ' + data);
229          expect(data).assertTrue();
230          await systemPasteBoard.getPasteData().then(async (data) => {
231            console.info('get paste data success');
232            expect(data.getRecordCount()).assertEqual(3);
233            done();
234          });
235        });
236      });
237    });
238  });
239
240  /**
241   * @tc.name      pasteboard_function_test5
242   * @tc.desc      一个record中多个数据类型:get primary html、pixelMap、want、text、uri
243   * @tc.type      Function
244   * @tc.require   AR000HEECB
245   */
246  it('pasteboard_function_test5', 0, async function (done) {
247    var systemPasteBoard = pasteboard.getSystemPasteboard();
248    systemPasteBoard.clear().then(() => {
249      var dataHtml = new ArrayBuffer(256);
250      var htmlText = '<html><head></head><body>Hello!</body></html>';
251      var uriText = 'https://www.baidu.com/';
252      var wantText = {
253        bundleName: 'com.example.myapplication3',
254        abilityName: 'com.example.myapplication3.MainAbility',
255      };
256      var plainText = '';
257      var pasteData = pasteboard.createData('x'.repeat(1024), dataHtml);
258      var record = pasteData.getRecordAt(0);
259      record.htmlText = htmlText;
260      record.plainText = plainText;
261      record.uri = uriText;
262      record.want = wantText;
263      var buffer = new ArrayBuffer(128);
264      var opt = {
265        size: { height: 5, width: 5 },
266        pixelFormat: 3,
267        editable: true,
268        alphaType: 1,
269        scaleMode: 1,
270      };
271      image.createPixelMap(buffer, opt).then((pixelMap) => {
272        record.pixelMap = pixelMap;
273        pasteData.replaceRecordAt(0, record);
274        systemPasteBoard.setPasteData(pasteData).then(() => {
275          systemPasteBoard.hasPasteData().then((hasData) => {
276            expect(hasData).assertTrue();
277            systemPasteBoard.getPasteData().then((data) => {
278              expect(data.getRecordCount()).assertEqual(1);
279              expect(data.getRecordAt(0).mimeType).assertEqual('x'.repeat(1024));
280              expect(data.getPrimaryWant().bundleName).assertEqual(wantText.bundleName);
281              expect(data.getPrimaryWant().abilityName).assertEqual(wantText.abilityName);
282              var newPixelMap = data.getPrimaryPixelMap();
283              newPixelMap.getImageInfo().then((imageInfo) => {
284                expect(imageInfo.size.height).assertEqual(opt.size.height);
285                expect(imageInfo.size.width).assertEqual(opt.size.width);
286              });
287              expect(data.getPrimaryUri()).assertEqual(uriText);
288              expect(data.getPrimaryText()).assertEqual(plainText);
289              expect(data.getPrimaryHtml()).assertEqual(htmlText);
290              done();
291            });
292          });
293        });
294      });
295    });
296  });
297
298  /**
299   * @tc.name      pasteboard_function_test6
300   * @tc.desc      Test CreateRecord throw error
301   * @tc.type      Function
302   * @tc.require   I5TYVJ
303   */
304  it('pasteboard_function_test6', 0, async function (done) {
305    var systemPasteboard = pasteboard.getSystemPasteboard();
306    systemPasteboard.clear().then(() => {
307      var uriText = 'https://www.baidu.com/';
308      var pasteData = pasteboard.createUriData(uriText);
309      systemPasteboard.setPasteData(pasteData).then(() => {
310        systemPasteboard.hasPasteData().then((data) => {
311          expect(data).assertEqual(true);
312          systemPasteboard.getPasteData().then((data) => {
313            var pasteData1 = data;
314            expect(pasteData1.getRecordCount()).assertEqual(1);
315            var uriText1 = 'https://www.baidu.com/1';
316            var pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText1);
317            var replace = pasteData1.replaceRecordAt(0, pasteDataRecord);
318            expect(replace).assertEqual(true);
319            var primaryUri = pasteData1.getPrimaryUri();
320            expect(primaryUri).assertEqual(uriText1);
321            expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
322            var primaryUri = pasteData1.getPrimaryUri();
323            expect(primaryUri).assertEqual(uriText1);
324            done();
325          });
326        });
327      });
328    });
329  });
330
331  /**
332   * @tc.name      pasteboard_function_test7
333   * @tc.desc      Test CreateRecord throw error
334   * @tc.type      Function
335   * @tc.require   I5TYVJ
336   */
337  it('pasteboard_function_test7', 0, async function (done) {
338    var systemPasteboard = pasteboard.getSystemPasteboard();
339    systemPasteboard.clear().then(async () => {
340      var uriText = 'https://www.baidu.com/';
341      var textData = 'Hello World!';
342      var htmlText = '<html><head></head><body>Hello World!</body></html>';
343      var wantText = {
344        bundleName: 'com.example.myapplication3',
345        abilityName: 'com.example.myapplication3.MainAbility',
346      };
347      var dataHtml = new ArrayBuffer(256);
348      var buffer = new ArrayBuffer(128);
349      var opt = {
350        size: { height: 5, width: 5 },
351        pixelFormat: 3,
352        editable: true,
353        alphaType: 1,
354        scaleMode: 1,
355      };
356      var pixelMap = await image.createPixelMap(buffer, opt);
357      var pasteData = pasteboard.createUriData(uriText);
358
359      try {
360        var pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText);
361        pasteData.addRecord(pasteDataRecord);
362        pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, textData);
363        pasteData.addRecord(pasteDataRecord);
364        pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText);
365        pasteData.addRecord(pasteDataRecord);
366        pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText);
367        pasteData.addRecord(pasteDataRecord);
368        pasteDataRecord = pasteboard.createRecord('x'.repeat(1022), dataHtml);
369        pasteData.addRecord(pasteDataRecord);
370        pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
371        pasteData.addRecord(pasteDataRecord);
372      } catch (error) {
373        expect(error.code === undefined).assertTrue();
374        expect(error.message === undefined).assertTrue();
375        expect(True === false).assertTrue();
376      }
377      systemPasteboard.setPasteData(pasteData).then(() => {
378        systemPasteboard.hasPasteData().then((data) => {
379          expect(data).assertEqual(true);
380          systemPasteboard.getPasteData().then((data) => {
381            expect(data.getRecordCount()).assertEqual(7);
382            var dataRecord = data.getRecordAt(3);
383            expect(dataRecord.htmlText).assertEqual(htmlText);
384            done();
385          });
386        });
387      });
388    });
389  });
390
391  /**
392   * @tc.name      pasteboard_function_test8
393   * @tc.desc      Test CreateRecord throw error
394   * @tc.type      Function
395   * @tc.require   I5TYVJ
396   */
397  it('pasteboard_function_test8', 0, async function (done) {
398    var systemPasteboard = pasteboard.getSystemPasteboard();
399    systemPasteboard.clear().then(async () => {
400      var uriText = 'https://www.baidu.com/';
401      var htmlText = '<html><head></head><body>Hello World!</body></html>';
402      var pasteData = pasteboard.createUriData(uriText);
403
404      try {
405        var pasteDataRecord = pasteboard.createRecord('xxddxx', htmlText);
406        pasteData.addRecord(pasteDataRecord);
407        expect(true === false).assertTrue();
408      } catch (error) {
409        expect(error.code).assertEqual('401');
410        expect(error.message).assertEqual('Parameter error. The value does not match mimeType correctly.');
411      }
412      done();
413    });
414  });
415
416  /**
417   * @tc.name      pasteboard_function_test9
418   * @tc.desc      Test Create Uri Data
419   * @tc.type      Function
420   * @tc.require   I5TYVJ
421   */
422  it('pasteboard_function_test9', 0, async function (done) {
423    var systemPasteboard = pasteboard.getSystemPasteboard();
424    await systemPasteboard.clear();
425    var uriText = 'https://www.baidu.com/';
426    var pasteData = undefined;
427    try {
428      pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
429    } catch (e) {
430      expect(true === false).assertTrue();
431    }
432    systemPasteboard.setPasteData(pasteData).then(() => {
433      systemPasteboard.hasPasteData().then((data) => {
434        expect(data).assertEqual(true);
435        systemPasteboard.getPasteData().then((data) => {
436          expect(data.getRecordCount()).assertEqual(1);
437          var dataRecord = data.getRecordAt(0);
438          expect(dataRecord.uri).assertEqual(uriText);
439          done();
440        });
441      });
442    });
443  });
444
445  /**
446   * @tc.name      pasteboard_function_test10
447   * @tc.desc      Test Create htmlText Data
448   * @tc.type      Function
449   * @tc.require   I5TYVJ
450   */
451  it('pasteboard_function_test10', 0, async function (done) {
452    var systemPasteboard = pasteboard.getSystemPasteboard();
453    await systemPasteboard.clear();
454    var htmlText = '<html><head></head><body>Hello World!</body></html>';
455    var pasteData = undefined;
456    try {
457      pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, htmlText);
458    } catch (e) {
459      expect(true === false).assertTrue();
460    }
461    systemPasteboard.setPasteData(pasteData).then(() => {
462      systemPasteboard.hasPasteData().then((data) => {
463        expect(data).assertEqual(true);
464        systemPasteboard.getPasteData().then((data) => {
465          expect(data.getRecordCount()).assertEqual(1);
466          var dataRecord = data.getRecordAt(0);
467          expect(dataRecord.htmlText).assertEqual(htmlText);
468          done();
469        });
470      });
471    });
472  });
473
474  /**
475   * @tc.name      pasteboard_function_test11
476   * @tc.desc      Test Create wantText Data
477   * @tc.type      Function
478   * @tc.require   I5TYVJ
479   */
480  it('pasteboard_function_test11', 0, async function (done) {
481    var systemPasteboard = pasteboard.getSystemPasteboard();
482    await systemPasteboard.clear();
483    var wantText = {
484      bundleName: 'com.example.myapplication3',
485      abilityName: 'com.example.myapplication3.MainAbility',
486    };
487    var pasteData = undefined;
488    try {
489      pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText);
490    } catch (e) {
491      expect(true === false).assertTrue();
492    }
493    systemPasteboard.setPasteData(pasteData).then(() => {
494      systemPasteboard.hasPasteData().then((data) => {
495        expect(data).assertEqual(true);
496        systemPasteboard.getPasteData().then((data) => {
497          expect(data.getRecordCount()).assertEqual(1);
498          var primaryWant = data.getPrimaryWant();
499          expect(primaryWant.bundleName).assertEqual(wantText.bundleName);
500          expect(primaryWant.abilityName).assertEqual(wantText.abilityName);
501          done();
502        });
503      });
504    });
505  });
506
507  /**
508   * @tc.name      pasteboard_function_test12
509   * @tc.desc      Test Create pixelMap Data
510   * @tc.type      Function
511   * @tc.require   I5TYVJ
512   */
513  it('pasteboard_function_test12', 0, async function (done) {
514    var systemPasteboard = pasteboard.getSystemPasteboard();
515    await systemPasteboard.clear();
516    var buffer = new ArrayBuffer(128);
517    var opt = {
518      size: { height: 5, width: 5 },
519      pixelFormat: 3,
520      editable: true,
521      alphaType: 1,
522      scaleMode: 1,
523    };
524    var pasteData = undefined;
525    var pixelMap = await image.createPixelMap(buffer, opt);
526    try {
527      pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
528    } catch (e) {
529      expect(true === false).assertTrue();
530    }
531    systemPasteboard.setPasteData(pasteData).then(() => {
532      systemPasteboard.hasPasteData().then((data) => {
533        expect(data).assertEqual(true);
534        systemPasteboard.getPasteData().then((data) => {
535          expect(data.getRecordCount()).assertEqual(1);
536          var primaryPixelMap = data.getPrimaryPixelMap();
537          var PixelMapBytesNumber = primaryPixelMap.getPixelBytesNumber();
538          expect(PixelMapBytesNumber).assertEqual(100);
539          primaryPixelMap.getImageInfo().then((imageInfo) => {
540            expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true);
541            done();
542          });
543        });
544      });
545    });
546  });
547
548  /**
549   * @tc.name      pasteboard_function_test13
550   * @tc.desc      Test CreateData throw error
551   * @tc.type      Function
552   * @tc.require   I5TYVJ
553   */
554  it('pasteboard_function_test13', 0, async function (done) {
555    var systemPasteboard = pasteboard.getSystemPasteboard();
556    await systemPasteboard.clear();
557    var dataHtml = new ArrayBuffer(256);
558    var pasteData = undefined;
559    try {
560      pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, dataHtml);
561      expect(true === false).assertTrue();
562    } catch (e) {
563      expect(e.code).assertEqual('401');
564      expect(e.message).assertEqual('Parameter error. The value does not match mimeType correctly.');
565    }
566    done();
567  });
568
569  /**
570   * @tc.name      pasteboard_function_test14
571   * @tc.desc      Test Create KV Data
572   * @tc.type      Function
573   * @tc.require   I5TYVJ
574   */
575  it('pasteboard_function_test14', 0, async function (done) {
576    var systemPasteboard = pasteboard.getSystemPasteboard();
577    await systemPasteboard.clear();
578    var dataHtml = new ArrayBuffer(256);
579    var pasteData = undefined;
580    try {
581      pasteData = pasteboard.createData('x'.repeat(1034), dataHtml);
582      expect(true === false).assertTrue();
583    } catch (e) {
584      expect(e.code === '401').assertTrue();
585      expect(e.message === 'Parameter error. The length of mimeType cannot be greater than 1024 bytes.').assertTrue();
586    }
587    done();
588  });
589
590  /**
591   * @tc.name      pasteboard_function_test15
592   * @tc.desc      Test addRecord throw error
593   * @tc.type      Function
594   * @tc.require   I5TYVJ
595   */
596  it('pasteboard_function_test15', 0, async function (done) {
597    var systemPasteboard = pasteboard.getSystemPasteboard();
598    systemPasteboard.clear().then(async () => {
599      var uriText = 'https://www.baidu.com/';
600      var textData = 'Hello World!';
601      var htmlText = '<html><head></head><body>Hello World!</body></html>';
602      var wantText = {
603        bundleName: 'com.example.myapplication3',
604        abilityName: 'com.example.myapplication3.MainAbility',
605      };
606      var dataHtml = new ArrayBuffer(256);
607      var buffer = new ArrayBuffer(128);
608      var opt = {
609        size: { height: 5, width: 5 },
610        pixelFormat: 3,
611        editable: true,
612        alphaType: 1,
613        scaleMode: 1,
614      };
615      var pixelMap = await image.createPixelMap(buffer, opt);
616      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
617
618      try {
619        pasteData.addRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText);
620        pasteData.addRecord(pasteboard.MIMETYPE_TEXT_URI, uriText);
621        pasteData.addRecord(pasteboard.MIMETYPE_TEXT_PLAIN, textData);
622        pasteData.addRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
623        pasteData.addRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText);
624        pasteData.addRecord('x'.repeat(100), dataHtml);
625      } catch (error) {
626        expect(true === false).assertTrue();
627      }
628      systemPasteboard.setPasteData(pasteData).then(() => {
629        systemPasteboard.hasPasteData().then((data) => {
630          expect(data).assertEqual(true);
631          systemPasteboard.getPasteData().then((data) => {
632            expect(data.getRecordCount()).assertEqual(7);
633            var dataRecord = data.getRecordAt(6);
634            expect(dataRecord.uri).assertEqual(uriText);
635            var primaryPixelMap = data.getPrimaryPixelMap();
636            var PixelMapBytesNumber = primaryPixelMap.getPixelBytesNumber();
637            expect(PixelMapBytesNumber).assertEqual(100);
638            done();
639          });
640        });
641      });
642    });
643  });
644
645  /**
646   * @tc.name      pasteboard_function_test16
647   * @tc.desc      Test addRecord throw error
648   * @tc.type      Function
649   * @tc.require   I5TYVJ
650   */
651  it('pasteboard_function_test16', 0, async function (done) {
652    var uriText = 'https://www.baidu.com/';
653    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
654    try {
655      pasteData.addRecord('xxxx', uriText);
656      expect(true === false).assertTrue();
657    } catch (e) {
658      expect(e.code === '401').assertTrue();
659    }
660    done();
661  });
662
663  /**
664   * @tc.name      pasteboard_function_test17
665   * @tc.desc      Test addRecord throw error
666   * @tc.type      Function
667   * @tc.require   I5TYVJ
668   */
669  it('pasteboard_function_test17', 0, async function (done) {
670    var uriText = 'https://www.baidu.com/';
671    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
672    try {
673      for (var i = 0; i < 600; i++) {
674        pasteData.addRecord(pasteboard.MIMETYPE_TEXT_URI, uriText);
675      }
676      expect(true === false).assertTrue();
677    } catch (e) {
678      expect(e.code === '12900002').assertTrue();
679    }
680    done();
681  });
682
683  /**
684   * @tc.name      pasteboard_function_test18
685   * @tc.desc      Test getRecord throw error
686   * @tc.type      Function
687   * @tc.require   I5TYVJ
688   */
689  it('pasteboard_function_test18', 0, async function (done) {
690    var uriText = 'https://www.baidu.com/';
691    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
692    try {
693      var dataRecord = pasteData.getRecord(0);
694      expect(dataRecord.uri).assertEqual(uriText);
695    } catch (e) {
696      expect(true === false).assertTrue();
697    }
698    done();
699  });
700
701  /**
702   * @tc.name      pasteboard_function_test19
703   * @tc.desc      Test getRecord throw error
704   * @tc.type      Function
705   * @tc.require   I5TYVJ
706   */
707  it('pasteboard_function_test19', 0, async function (done) {
708    var uriText = 'https://www.baidu.com/';
709    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
710    try {
711      var dataRecord = pasteData.getRecord(5);
712      expect(true === false).assertTrue();
713    } catch (e) {
714      expect(e.code === '12900001').assertTrue();
715    }
716    done();
717  });
718
719  /**
720   * @tc.name      pasteboard_function_test20
721   * @tc.desc      Test replaceRecord throw error
722   * @tc.type      Function
723   * @tc.require   I5TYVJ
724   */
725  it('pasteboard_function_test20', 0, async function (done) {
726    var uriText = 'https://www.baidu.com/';
727    var uriText1 = 'https://www.baidu1.com/';
728    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
729    var dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText1);
730    try {
731      pasteData.replaceRecord(0, dataRecord);
732      var record = pasteData.getRecord(0);
733      expect(record.uri).assertEqual(uriText1);
734    } catch (e) {
735      expect(true === false).assertTrue();
736    }
737    done();
738  });
739
740  /**
741   * @tc.name      pasteboard_function_test21
742   * @tc.desc      Test replaceRecord throw error
743   * @tc.type      Function
744   * @tc.require   I5TYVJ
745   */
746  it('pasteboard_function_test21', 0, async function (done) {
747    var uriText = 'https://www.baidu.com/';
748    var uriText1 = 'https://www.baidu1.com/';
749    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
750    var dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText1);
751    try {
752      pasteData.replaceRecord(0, dataRecord);
753      var record = pasteData.getRecord(0);
754      expect(record.uri).assertEqual(uriText1);
755    } catch (e) {
756      expect(true === false).assertTrue();
757    }
758    done();
759  });
760
761  /**
762   * @tc.name      pasteboard_function_test22
763   * @tc.desc      Test replaceRecord throw error
764   * @tc.type      Function
765   * @tc.require   I5TYVJ
766   */
767  it('pasteboard_function_test22', 0, async function (done) {
768    var uriText = 'https://www.baidu.com/';
769    var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
770    try {
771      pasteData.replaceRecord(0, 'xxxxxx');
772      expect(true === false).assertTrue();
773    } catch (e) {
774      expect(e.code === '401').assertTrue();
775    }
776    done();
777  });
778
779  /**
780   * @tc.name      pasteboard_function_test23
781   * @tc.desc      Test setData
782   * @tc.type      Function
783   * @tc.require   I5TYVJ
784   */
785  it('pasteboard_function_test23', 0, async function (done) {
786    var systemPasteboard = pasteboard.getSystemPasteboard();
787    systemPasteboard.clearData().then(() => {
788      var uriText = 'Hello//';
789      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
790      systemPasteboard.setData(pasteData).then(() => {
791        systemPasteboard.hasData().then((data) => {
792          expect(data).assertEqual(true);
793          systemPasteboard.getData().then((pasteData1) => {
794            expect(pasteData1.getRecordCount()).assertEqual(1);
795            expect(pasteData1.hasType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true);
796            expect(pasteData1.getPrimaryUri()).assertEqual(uriText);
797            done();
798          });
799        });
800      });
801    });
802  });
803
804  /**
805   * @tc.name      pasteboard_function_test24
806   * @tc.desc      Test setData throw error
807   * @tc.type      Function
808   * @tc.require   I5TYVJ
809   */
810  it('pasteboard_function_test24', 0, async function (done) {
811    var systemPasteboard = pasteboard.getSystemPasteboard();
812    try {
813      systemPasteboard.setData('xxxxx');
814      expect(true === false).assertTrue();
815    } catch (e) {
816      expect(e.code === '401').assertTrue();
817      expect(e.message === 'Parameter error. The Type of data must be pasteData.').assertTrue();
818    }
819    done();
820  });
821
822  /**
823   * @tc.name      pasteboard_function_test25
824   * @tc.desc      Test setproperty throw error
825   * @tc.type      Function
826   * @tc.require   I5TYVJ
827   */
828  it('pasteboard_function_test25', 0, async function (done) {
829    var systemPasteboard = pasteboard.getSystemPasteboard();
830    systemPasteboard.clear().then(async () => {
831      var textData = 'Hello World!';
832      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, textData);
833      var pasteDataProperty = pasteData.getProperty();
834      expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice);
835      pasteDataProperty.shareOption = pasteboard.ShareOption.InApp;
836      pasteData.setProperty(pasteDataProperty);
837      expect(pasteData.getProperty().shareOption).assertEqual(pasteboard.ShareOption.InApp);
838      done();
839    });
840  });
841
842  /**
843   * @tc.name      pasteboard_function_test26
844   * @tc.desc      Test setproperty throw error
845   * @tc.type      Function
846   * @tc.require   I5TYVJ
847   */
848  it('pasteboard_function_test26', 0, async function (done) {
849    var systemPasteboard = pasteboard.getSystemPasteboard();
850    systemPasteboard.clear().then(async () => {
851      var textData = 'Hello World!';
852      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, textData);
853      try {
854        var obj = { shareOption: 1 };
855        pasteData.setProperty(obj);
856        expect(true === false).assertTrue();
857      } catch (e) {
858        expect(e.code === '401').assertTrue();
859        expect(e.message === 'Parameter error. The type of property must be PasteDataProperty.').assertTrue();
860      }
861      done();
862    });
863  });
864
865  /**
866   * @tc.name      pasteboard_function_test27
867   * @tc.desc      Test createData throw error
868   * @tc.type      Function
869   * @tc.require   I5TYVJ
870   */
871  it('pasteboard_function_test27', 0, async function (done) {
872    var textData = 'Hello World!';
873    var dataXml = new ArrayBuffer(512);
874    try {
875      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataXml);
876      expect(true === false).assertTrue();
877    } catch (e) {
878      expect(e.code === '401').assertTrue();
879      expect(e.message === 'Parameter error. The value does not match mimeType correctly.').assertTrue();
880    }
881    done();
882  });
883
884  /**
885   * @tc.name      pasteboard_function_test28
886   * @tc.desc      Test createData throw error
887   * @tc.type      Function
888   * @tc.require   I5TYVJ
889   */
890  it('pasteboard_function_test28', 0, async function (done) {
891    var textData = 'Hello World!';
892    var dataXml = new ArrayBuffer(512);
893    try {
894      var pasteData = pasteboard.createData('xxxxx', textData);
895      expect(true === false).assertTrue();
896    } catch (e) {
897      expect(e.code === '401').assertTrue();
898      expect(e.message === 'Parameter error. The value does not match mimeType correctly.').assertTrue();
899    }
900    done();
901  });
902
903  /**
904   * @tc.name      pasteboard_function_test29
905   * @tc.desc      Test createData throw error
906   * @tc.type      Function
907   * @tc.require   I5TYVJ
908   */
909  it('pasteboard_function_test29', 0, async function (done) {
910    try {
911      var pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, {});
912      expect(true === false).assertTrue();
913    } catch (e) {
914      expect(e.code === '401').assertTrue();
915      expect(e.message === 'Parameter error. The value does not match mimeType correctly.').assertTrue();
916    }
917    done();
918  });
919});
920