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