1/* 2 * Copyright (C) 2022-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the 'License'); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an 'AS IS' BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15// @ts-nocheck 16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; 17import pasteboard from '@ohos.pasteboard'; 18import image from '@ohos.multimedia.image'; 19 20describe('PasteBoardJSTest', function () { 21 beforeAll(async function () { 22 console.info('beforeAll'); 23 }); 24 25 afterAll(async function () { 26 console.info('afterAll'); 27 }); 28 29 /** 30 * @tc.name pasteboard_exception_test1 31 * @tc.desc 自定义数据测试 32 * @tc.type Function 33 * @tc.require AR000HEECB 34 */ 35 it('pasteboard_exception_test1', 0, async function (done) { 36 const systemPasteboard = pasteboard.getSystemPasteboard(); 37 await systemPasteboard.clearData(); 38 let pasteData = undefined; 39 console.info('systemPasteboard clear data success'); 40 const dataUri = new ArrayBuffer(256); 41 pasteData = pasteboard.createData('xxx', dataUri); 42 const addUri = new ArrayBuffer(128); 43 pasteData.addRecord('xxx', addUri); 44 const recordUri = new ArrayBuffer(96); 45 const pasteDataRecord = pasteboard.createRecord('xxx', recordUri); 46 pasteData.addRecord(pasteDataRecord); 47 await systemPasteboard.setPasteData(pasteData); 48 console.info('Set pastedata success'); 49 const res = await systemPasteboard.hasPasteData(); 50 console.info('Check pastedata has data success, result: ' + res); 51 expect(res).assertTrue(); 52 const data = await systemPasteboard.getPasteData(); 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 * @tc.name pasteboard_exception_test2 63 * @tc.desc 自定义数据测试 64 * @tc.type Function 65 * @tc.require AR000HEECB 66 */ 67 it('pasteboard_exception_test2', 0, async function (done) { 68 const systemPasteboard = pasteboard.getSystemPasteboard(); 69 await systemPasteboard.clearData(); 70 console.info('systemPasteboard clear data success'); 71 let pasteData = undefined; 72 let pasteRecord = undefined; 73 const dataHtml = new ArrayBuffer(256); 74 pasteData = pasteboard.createData('xy', dataHtml); 75 expect(pasteData != undefined).assertTrue(); 76 pasteData.addRecord('x'.repeat(1024), dataHtml); 77 expect(pasteData.getRecordCount()).assertEqual(2); 78 pasteRecord = pasteboard.createRecord('xy2', dataHtml); 79 expect(pasteRecord != undefined).assertTrue(); 80 pasteData.addRecord(pasteRecord); 81 await systemPasteboard.setPasteData(pasteData); 82 console.info('set pastedata success'); 83 const res = await systemPasteboard.hasPasteData(); 84 console.info('Check pastedata has data success, result: ' + res); 85 expect(res).assertTrue(); 86 systemPasteboard.getPasteData().then((data) => { 87 console.info('get paste data success'); 88 expect(data.getRecordCount()).assertEqual(3); 89 expect(data.getRecordAt(0).mimeType).assertEqual('xy2'); 90 expect(data.getRecordAt(1).mimeType).assertEqual('x'.repeat(1024)); 91 expect(data.getRecordAt(2).mimeType).assertEqual('xy'); 92 done(); 93 }); 94 }); 95 96 /** 97 * @tc.name pasteboard_exception_test3 98 * @tc.desc 自定义数据异常测试 99 * @tc.type Function 100 * @tc.require AR000HEECB 101 */ 102 it('pasteboard_exception_test3', 0, async function (done) { 103 console.info('pasteboard_exception_test1 start'); 104 const systemPasteboard = pasteboard.getSystemPasteboard(); 105 await systemPasteboard.clearData(); 106 console.info('systemPasteboard clear data success'); 107 let pasteData = undefined; 108 let pasteRecord = undefined; 109 110 // test createData 111 let dataHtml = new ArrayBuffer(256); 112 try { 113 pasteData = pasteboard.createData('x'.repeat(1025), dataHtml); 114 expect(true === false).assertTrue(); 115 } catch (error) { 116 console.info(error.code); 117 console.info(error.message); 118 } 119 120 expect(pasteData).assertEqual(undefined); 121 pasteData = pasteboard.createData('x'.repeat(1024), dataHtml); 122 expect(pasteData != undefined).assertTrue(); 123 124 // test addRecord 125 try { 126 pasteData.addRecord('x'.repeat(1025), dataHtml); 127 expect(true === false).assertTrue(); 128 } catch (error) { 129 console.info(error.code); 130 console.info(error.message); 131 } 132 expect(pasteData.getRecordCount()).assertEqual(1); 133 pasteData.addRecord('x'.repeat(1024), dataHtml); 134 expect(pasteData.getRecordCount()).assertEqual(2); 135 136 let addHtml = new ArrayBuffer(128); 137 try { 138 pasteData.addRecord('x'.repeat(1025), addHtml); 139 expect(true === false).assertTrue(); 140 } catch (error) { 141 console.info(error.code); 142 console.info(error.message); 143 } 144 expect(pasteData.getRecordCount()).assertEqual(2); 145 pasteData.addRecord('x'.repeat(1024), addHtml); 146 expect(pasteData.getRecordCount()).assertEqual(3); 147 148 let recordHtml = new ArrayBuffer(64); 149 try { 150 pasteRecord = pasteboard.createRecord('x'.repeat(1025), recordHtml); 151 expect(true === false).assertTrue(); 152 } catch (error) { 153 console.info(error.code); 154 console.info(error.message); 155 } 156 expect(pasteRecord).assertEqual(undefined); 157 pasteRecord = pasteboard.createRecord('x'.repeat(1024), recordHtml); 158 expect(pasteRecord != undefined).assertTrue(); 159 pasteData.addRecord(pasteRecord); 160 expect(pasteData.getRecordCount()).assertEqual(4); 161 await systemPasteboard.setPasteData(pasteData); 162 console.info('set pastedata success'); 163 const res = await systemPasteboard.hasPasteData(); 164 console.info('Check pastedata has data success, result: ' + res); 165 expect(res).assertTrue(); 166 systemPasteboard.getPasteData().then((data) => { 167 console.info('get paste data success'); 168 expect(data.getRecordCount()).assertEqual(4); 169 done(); 170 }); 171 }); 172 173 /** 174 * @tc.name pasteboard_exception_test4 175 * @tc.desc 一个record中多个数据类型:get primary html、pixelMap、want、text、uri 176 * @tc.type Function 177 * @tc.require AR000HEECB 178 */ 179 it('pasteboard_exception_test4', 0, async function (done) { 180 const systemPasteboard = pasteboard.getSystemPasteboard(); 181 await systemPasteboard.clearData(); 182 const dataHtml = new ArrayBuffer(256); 183 const htmlText = '<html><head></head><body>Hello!</body></html>'; 184 const uriText = 'https://www.baidu.com/'; 185 const wantText = { 186 bundleName: 'com.example.myapplication3', 187 abilityName: 'com.example.myapplication3.MainAbility', 188 }; 189 let plainText = ''; 190 const pasteData = pasteboard.createData('x'.repeat(1024), dataHtml); 191 const record = pasteData.getRecordAt(0); 192 record.htmlText = htmlText; 193 record.plainText = plainText; 194 record.uri = uriText; 195 record.want = wantText; 196 const buffer = new ArrayBuffer(128); 197 const opt = { 198 size: { height: 5, width: 5 }, 199 pixelFormat: 3, 200 editable: true, 201 alphaType: 1, 202 scaleMode: 1, 203 }; 204 const pixelMap = await image.createPixelMap(buffer, opt); 205 record.pixelMap = pixelMap; 206 pasteData.replaceRecordAt(0, record); 207 await systemPasteboard.setPasteData(pasteData); 208 const hasData = await systemPasteboard.hasPasteData(); 209 expect(hasData).assertTrue(); 210 systemPasteboard.getPasteData().then((data) => { 211 expect(data.getRecordCount()).assertEqual(1); 212 expect(data.getRecordAt(0).mimeType).assertEqual('x'.repeat(1024)); 213 expect(data.getPrimaryWant().bundleName).assertEqual(wantText.bundleName); 214 expect(data.getPrimaryWant().abilityName).assertEqual(wantText.abilityName); 215 let newPixelMap = data.getPrimaryPixelMap(); 216 newPixelMap.getImageInfo().then((imageInfo) => { 217 expect(imageInfo.size.height).assertEqual(opt.size.height); 218 expect(imageInfo.size.width).assertEqual(opt.size.width); 219 }); 220 expect(data.getPrimaryUri()).assertEqual(uriText); 221 expect(data.getPrimaryText()).assertEqual(plainText); 222 expect(data.getPrimaryHtml()).assertEqual(htmlText); 223 done(); 224 }); 225 }); 226 227 /** 228 * @tc.name pasteboard_exception_test5 229 * @tc.desc Test CreateRecord throw error 230 * @tc.type Function 231 * @tc.require I5TYVJ 232 */ 233 it('pasteboard_exception_test5', 0, async function (done) { 234 const systemPasteboard = pasteboard.getSystemPasteboard(); 235 await systemPasteboard.clearData(); 236 const uriText = 'https://www.baidu.com/'; 237 const pasteData = pasteboard.createUriData(uriText); 238 await systemPasteboard.setPasteData(pasteData); 239 const res = await systemPasteboard.hasPasteData(); 240 expect(res).assertEqual(true); 241 systemPasteboard.getPasteData().then((data) => { 242 const pasteData1 = data; 243 expect(pasteData1.getRecordCount()).assertEqual(1); 244 const uriText1 = 'https://www.baidu.com/1'; 245 const pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText1); 246 const replace = pasteData1.replaceRecordAt(0, pasteDataRecord); 247 expect(replace).assertEqual(true); 248 const primaryUri1 = pasteData1.getPrimaryUri(); 249 expect(primaryUri1).assertEqual(uriText1); 250 expect(pasteData1.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 251 const primaryUri2 = pasteData1.getPrimaryUri(); 252 expect(primaryUri2).assertEqual(uriText1); 253 done(); 254 }); 255 }); 256 257 /** 258 * @tc.name pasteboard_exception_test6 259 * @tc.desc Test CreateRecord throw error 260 * @tc.type Function 261 * @tc.require I5TYVJ 262 */ 263 it('pasteboard_exception_test6', 0, async function (done) { 264 const systemPasteboard = pasteboard.getSystemPasteboard(); 265 await systemPasteboard.clearData(); 266 const uriText6 = 'https://www.baidu.com/'; 267 const textData6 = 'Hello World!'; 268 const htmlText6 = '<html><head></head><body>Hello World!</body></html>'; 269 const wantText6 = { 270 bundleName: 'com.example.myapplication3', 271 abilityName: 'com.example.myapplication3.MainAbility', 272 }; 273 const dataHtml6 = new ArrayBuffer(256); 274 const buffer6 = new ArrayBuffer(128); 275 const opt6 = { 276 size: { height: 5, width: 5 }, 277 pixelFormat: 3, 278 editable: true, 279 alphaType: 1, 280 scaleMode: 1, 281 }; 282 const pixelMap = await image.createPixelMap(buffer6, opt6); 283 const pasteData = pasteboard.createUriData(uriText6); 284 285 try { 286 let pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText6); 287 pasteData.addRecord(pasteDataRecord); 288 pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, textData6); 289 pasteData.addRecord(pasteDataRecord); 290 pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText6); 291 pasteData.addRecord(pasteDataRecord); 292 pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText6); 293 pasteData.addRecord(pasteDataRecord); 294 pasteDataRecord = pasteboard.createRecord('x'.repeat(1022), dataHtml6); 295 pasteData.addRecord(pasteDataRecord); 296 pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 297 pasteData.addRecord(pasteDataRecord); 298 } catch (error) { 299 expect(error.code === undefined).assertTrue(); 300 expect(error.message === undefined).assertTrue(); 301 expect(True === false).assertTrue(); 302 } 303 await systemPasteboard.setPasteData(pasteData); 304 const res = await systemPasteboard.hasPasteData(); 305 expect(res).assertEqual(true); 306 systemPasteboard.getPasteData().then((data) => { 307 expect(data.getRecordCount()).assertEqual(7); 308 let dataRecord = data.getRecordAt(3); 309 expect(dataRecord.htmlText).assertEqual(htmlText6); 310 done(); 311 }); 312 }); 313 314 /** 315 * @tc.name pasteboard_exception_test7 316 * @tc.desc Test CreateRecord throw error 317 * @tc.type Function 318 * @tc.require I5TYVJ 319 */ 320 it('pasteboard_exception_test7', 0, async function (done) { 321 const systemPasteboard = pasteboard.getSystemPasteboard(); 322 await systemPasteboard.clearData(); 323 const uriText = 'https://www.baidu.com/'; 324 const htmlText = '<html><head></head><body>Hello World!</body></html>'; 325 const pasteData = pasteboard.createUriData(uriText); 326 327 try { 328 const pasteDataRecord = pasteboard.createRecord('xxddxx', htmlText); 329 pasteData.addRecord(pasteDataRecord); 330 expect(true === false).assertTrue(); 331 } catch (error) { 332 expect(error.code).assertEqual('401'); 333 expect(error.message).assertEqual('Parameter error. The mimeType is not an arraybuffer.'); 334 } 335 done(); 336 }); 337 338 /** 339 * @tc.name pasteboard_exception_test8 340 * @tc.desc Test Create Uri Data 341 * @tc.type Function 342 * @tc.require I5TYVJ 343 */ 344 it('pasteboard_exception_test8', 0, async function (done) { 345 const systemPasteboard = pasteboard.getSystemPasteboard(); 346 await systemPasteboard.clearData(); 347 let uriText = 'https://www.baidu.com/'; 348 let pasteData = undefined; 349 try { 350 pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 351 } catch (e) { 352 expect(true === false).assertTrue(); 353 } 354 await systemPasteboard.setPasteData(pasteData); 355 const res = await systemPasteboard.hasPasteData(); 356 expect(res).assertEqual(true); 357 systemPasteboard.getPasteData().then((data) => { 358 expect(data.getRecordCount()).assertEqual(1); 359 const dataRecord = data.getRecordAt(0); 360 expect(dataRecord.uri).assertEqual(uriText); 361 done(); 362 }); 363 }); 364 365 /** 366 * @tc.name pasteboard_exception_test9 367 * @tc.desc Test Create htmlText Data 368 * @tc.type Function 369 * @tc.require I5TYVJ 370 */ 371 it('pasteboard_exception_test9', 0, async function (done) { 372 const systemPasteboard = pasteboard.getSystemPasteboard(); 373 await systemPasteboard.clearData(); 374 const htmlText = '<html><head></head><body>Hello World!</body></html>'; 375 let pasteData = undefined; 376 try { 377 pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, htmlText); 378 } catch (e) { 379 expect(true === false).assertTrue(); 380 } 381 await systemPasteboard.setPasteData(pasteData); 382 const res = await systemPasteboard.hasPasteData(); 383 expect(res).assertEqual(true); 384 systemPasteboard.getPasteData().then((data) => { 385 expect(data.getRecordCount()).assertEqual(1); 386 const dataRecord = data.getRecordAt(0); 387 expect(dataRecord.htmlText).assertEqual(htmlText); 388 done(); 389 }); 390 }); 391 392 /** 393 * @tc.name pasteboard_exception_test10 394 * @tc.desc Test Create wantText Data 395 * @tc.type Function 396 * @tc.require I5TYVJ 397 */ 398 it('pasteboard_exception_test10', 0, async function (done) { 399 const systemPasteboard = pasteboard.getSystemPasteboard(); 400 await systemPasteboard.clearData(); 401 const wantText = { 402 bundleName: 'com.example.myapplication3', 403 abilityName: 'com.example.myapplication3.MainAbility', 404 }; 405 let pasteData = undefined; 406 try { 407 pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText); 408 } catch (e) { 409 expect(true === false).assertTrue(); 410 } 411 await systemPasteboard.setPasteData(pasteData); 412 const res = await systemPasteboard.hasPasteData(); 413 expect(res).assertEqual(true); 414 systemPasteboard.getPasteData().then((data) => { 415 expect(data.getRecordCount()).assertEqual(1); 416 let primaryWant = data.getPrimaryWant(); 417 expect(primaryWant.bundleName).assertEqual(wantText.bundleName); 418 expect(primaryWant.abilityName).assertEqual(wantText.abilityName); 419 done(); 420 }); 421 }); 422 423 /** 424 * @tc.name pasteboard_exception_test11 425 * @tc.desc Test Create pixelMap Data 426 * @tc.type Function 427 * @tc.require I5TYVJ 428 */ 429 it('pasteboard_exception_test11', 0, async function (done) { 430 const systemPasteboard = pasteboard.getSystemPasteboard(); 431 await systemPasteboard.clearData(); 432 const buffer = new ArrayBuffer(128); 433 const opt = { 434 size: { height: 5, width: 5 }, 435 pixelFormat: 3, 436 editable: true, 437 alphaType: 1, 438 scaleMode: 1, 439 }; 440 let pasteData = undefined; 441 const pixelMap = await image.createPixelMap(buffer, opt); 442 try { 443 pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 444 } catch (e) { 445 expect(true === false).assertTrue(); 446 } 447 await systemPasteboard.setPasteData(pasteData); 448 const res = await systemPasteboard.hasPasteData(); 449 expect(res).assertEqual(true); 450 systemPasteboard.getPasteData().then(async (data) => { 451 expect(data.getRecordCount()).assertEqual(1); 452 const primaryPixelMap = data.getPrimaryPixelMap(); 453 const PixelMapBytesNumber = primaryPixelMap.getPixelBytesNumber(); 454 expect(PixelMapBytesNumber).assertEqual(100); 455 const imageInfo = await primaryPixelMap.getImageInfo(); 456 expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true); 457 done(); 458 }); 459 }); 460 461 /** 462 * @tc.name pasteboard_exception_test12 463 * @tc.desc Test CreateData throw error 464 * @tc.type Function 465 * @tc.require I5TYVJ 466 */ 467 it('pasteboard_exception_test12', 0, async function (done) { 468 const systemPasteboard = pasteboard.getSystemPasteboard(); 469 await systemPasteboard.clearData(); 470 let dataHtml = new ArrayBuffer(256); 471 let pasteData = undefined; 472 try { 473 pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, dataHtml); 474 expect(true === false).assertTrue(); 475 } catch (e) { 476 expect(e.code).assertEqual('401'); 477 expect(e.message).assertEqual('Parameter error. Actual mimeType is not mimetype_pixelmap.'); 478 } 479 done(); 480 }); 481 482 /** 483 * @tc.name pasteboard_exception_test13 484 * @tc.desc Test Create KV Data 485 * @tc.type Function 486 * @tc.require I5TYVJ 487 */ 488 it('pasteboard_exception_test13', 0, async function (done) { 489 const systemPasteboard = pasteboard.getSystemPasteboard(); 490 await systemPasteboard.clearData(); 491 let dataHtml = new ArrayBuffer(256); 492 let pasteData = undefined; 493 try { 494 pasteData = pasteboard.createData('x'.repeat(1034), dataHtml); 495 expect(true === false).assertTrue(); 496 } catch (e) { 497 expect(e.code === '401').assertTrue(); 498 expect(e.message === 'Parameter error. The length of mimeType cannot be greater than 1024 bytes.').assertTrue(); 499 } 500 done(); 501 }); 502 503 /** 504 * @tc.name pasteboard_exception_test14 505 * @tc.desc Test addRecord throw error 506 * @tc.type Function 507 * @tc.require I5TYVJ 508 */ 509 it('pasteboard_exception_test14', 0, async function (done) { 510 const systemPasteboard = pasteboard.getSystemPasteboard(); 511 await systemPasteboard.clearData(); 512 const uriText14 = 'https://www.baidu.com/'; 513 const textData14 = 'Hello World!'; 514 const htmlText14 = '<html><head></head><body>Hello World!</body></html>'; 515 const wantText14 = { 516 bundleName: 'com.example.myapplication3', 517 abilityName: 'com.example.myapplication3.MainAbility', 518 }; 519 const dataHtml14 = new ArrayBuffer(256); 520 const buffer14 = new ArrayBuffer(128); 521 const opt14 = { 522 size: { height: 5, width: 5 }, 523 pixelFormat: 3, 524 editable: true, 525 alphaType: 1, 526 scaleMode: 1, 527 }; 528 const pixelMap = await image.createPixelMap(buffer14, opt14); 529 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText14); 530 531 try { 532 pasteData.addRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText14); 533 pasteData.addRecord(pasteboard.MIMETYPE_TEXT_URI, uriText14); 534 pasteData.addRecord(pasteboard.MIMETYPE_TEXT_PLAIN, textData14); 535 pasteData.addRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 536 pasteData.addRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText14); 537 pasteData.addRecord('x'.repeat(100), dataHtml14); 538 } catch (error) { 539 expect(true === false).assertTrue(); 540 } 541 await systemPasteboard.setPasteData(pasteData); 542 const res = await systemPasteboard.hasPasteData(); 543 expect(res).assertEqual(true); 544 systemPasteboard.getPasteData().then((data) => { 545 expect(data.getRecordCount()).assertEqual(7); 546 let dataRecord = data.getRecordAt(6); 547 expect(dataRecord.uri).assertEqual(uriText14); 548 let primaryPixelMap = data.getPrimaryPixelMap(); 549 let PixelMapBytesNumber = primaryPixelMap.getPixelBytesNumber(); 550 expect(PixelMapBytesNumber).assertEqual(100); 551 done(); 552 }); 553 }); 554 555 /** 556 * @tc.name pasteboard_exception_test15 557 * @tc.desc Test addRecord throw error 558 * @tc.type Function 559 * @tc.require I5TYVJ 560 */ 561 it('pasteboard_exception_test15', 0, async function (done) { 562 let uriText = 'https://www.baidu.com/'; 563 let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 564 try { 565 pasteData.addRecord('xxxx', uriText); 566 expect(true === false).assertTrue(); 567 } catch (e) { 568 expect(e.code === '401').assertTrue(); 569 } 570 done(); 571 }); 572 573 /** 574 * @tc.name pasteboard_exception_test16 575 * @tc.desc Test addRecord throw error 576 * @tc.type Function 577 * @tc.require I5TYVJ 578 */ 579 it('pasteboard_exception_test16', 0, async function (done) { 580 const uriText = 'https://www.baidu.com/'; 581 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 582 const num = 600; 583 try { 584 for (let i = 0; i < num-1; i++) { 585 pasteData.addRecord(pasteboard.MIMETYPE_TEXT_URI, uriText); 586 } 587 expect(pasteData.getRecordCount()).assertEqual(num); 588 } catch (e) { 589 expect(e.code === '12900002').assertTrue(); 590 } 591 done(); 592 }); 593 594 /** 595 * @tc.name pasteboard_exception_test17 596 * @tc.desc Test getRecord throw error 597 * @tc.type Function 598 * @tc.require I5TYVJ 599 */ 600 it('pasteboard_exception_test17', 0, async function (done) { 601 const uriText = 'https://www.baidu.com/'; 602 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 603 try { 604 let dataRecord = pasteData.getRecord(0); 605 expect(dataRecord.uri).assertEqual(uriText); 606 } catch (e) { 607 expect(true === false).assertTrue(); 608 } 609 done(); 610 }); 611 612 /** 613 * @tc.name pasteboard_exception_test18 614 * @tc.desc Test getRecord throw error 615 * @tc.type Function 616 * @tc.require I5TYVJ 617 */ 618 it('pasteboard_exception_test18', 0, async function (done) { 619 const uriText = 'https://www.baidu.com/'; 620 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 621 try { 622 let dataRecord = pasteData.getRecord(5); 623 expect(true === false).assertTrue(); 624 } catch (e) { 625 expect(e.code === '12900001').assertTrue(); 626 } 627 done(); 628 }); 629 630 /** 631 * @tc.name pasteboard_exception_test19 632 * @tc.desc Test replaceRecord throw error 633 * @tc.type Function 634 * @tc.require I5TYVJ 635 */ 636 it('pasteboard_exception_test19', 0, async function (done) { 637 const uriText = 'https://www.baidu.com/'; 638 const uriText1 = 'https://www.baidu1.com/'; 639 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 640 const dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText1); 641 try { 642 pasteData.replaceRecord(0, dataRecord); 643 const record = pasteData.getRecord(0); 644 expect(record.uri).assertEqual(uriText1); 645 } catch (e) { 646 expect(true === false).assertTrue(); 647 } 648 done(); 649 }); 650 651 /** 652 * @tc.name pasteboard_exception_test20 653 * @tc.desc Test replaceRecord throw error 654 * @tc.type Function 655 * @tc.require I5TYVJ 656 */ 657 it('pasteboard_exception_test20', 0, async function (done) { 658 const uriText = 'https://www.baidu.com/'; 659 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 660 try { 661 pasteData.replaceRecord(0, 'xxxxxx'); 662 expect(true === false).assertTrue(); 663 } catch (e) { 664 expect(e.code === '401').assertTrue(); 665 } 666 done(); 667 }); 668 669 /** 670 * @tc.name pasteboard_exception_test21 671 * @tc.desc Test setData 672 * @tc.type Function 673 * @tc.require I5TYVJ 674 */ 675 it('pasteboard_exception_test21', 0, async function (done) { 676 const systemPasteboard = pasteboard.getSystemPasteboard(); 677 await systemPasteboard.clearData(); 678 const uriText = 'Hello//'; 679 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText); 680 await systemPasteboard.setData(pasteData); 681 const data = await systemPasteboard.hasData(); 682 expect(data).assertEqual(true); 683 systemPasteboard.getData().then((pasteData1) => { 684 expect(pasteData1.getRecordCount()).assertEqual(1); 685 expect(pasteData1.hasType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 686 expect(pasteData1.getPrimaryUri()).assertEqual(uriText); 687 done(); 688 }); 689 }); 690 691 /** 692 * @tc.name pasteboard_exception_test22 693 * @tc.desc Test setData throw error 694 * @tc.type Function 695 * @tc.require I5TYVJ 696 */ 697 it('pasteboard_exception_test22', 0, async function (done) { 698 const systemPasteboard = pasteboard.getSystemPasteboard(); 699 try { 700 systemPasteboard.setData('xxxxx'); 701 expect(true === false).assertTrue(); 702 } catch (e) { 703 expect(e.code === '401').assertTrue(); 704 expect(e.message === 'Parameter error. The Type of data must be pasteData.').assertTrue(); 705 } 706 done(); 707 }); 708 709 /** 710 * @tc.name pasteboard_exception_test23 711 * @tc.desc Test setproperty throw error 712 * @tc.type Function 713 * @tc.require I5TYVJ 714 */ 715 it('pasteboard_exception_test23', 0, async function (done) { 716 const systemPasteboard = pasteboard.getSystemPasteboard(); 717 await systemPasteboard.clearData(); 718 const textData = 'Hello World!'; 719 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, textData); 720 const pasteDataProperty = pasteData.getProperty(); 721 expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice); 722 pasteDataProperty.shareOption = pasteboard.ShareOption.InApp; 723 pasteData.setProperty(pasteDataProperty); 724 expect(pasteData.getProperty().shareOption).assertEqual(pasteboard.ShareOption.InApp); 725 done(); 726 }); 727 728 /** 729 * @tc.name pasteboard_exception_test24 730 * @tc.desc Test setproperty throw error 731 * @tc.type Function 732 * @tc.require I5TYVJ 733 */ 734 it('pasteboard_exception_test24', 0, async function (done) { 735 const systemPasteboard = pasteboard.getSystemPasteboard(); 736 await systemPasteboard.clearData(); 737 const textData = 'Hello World!'; 738 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, textData); 739 try { 740 const obj = { shareOption: 1 }; 741 pasteData.setProperty(obj); 742 expect(true === false).assertTrue(); 743 } catch (e) { 744 expect(e.code === '401').assertTrue(); 745 expect(e.message === 'Parameter error. The type of property must be PasteDataProperty.').assertTrue(); 746 } 747 done(); 748 }); 749 750 /** 751 * @tc.name pasteboard_exception_test25 752 * @tc.desc Test createData throw error 753 * @tc.type Function 754 * @tc.require I5TYVJ 755 */ 756 it('pasteboard_exception_test25', 0, async function (done) { 757 const textData = 'Hello World!'; 758 const dataXml = new ArrayBuffer(512); 759 try { 760 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, dataXml); 761 expect(true === false).assertTrue(); 762 } catch (e) { 763 expect(e.code === '401').assertTrue(); 764 expect(e.message === 'Parameter error. The type of mimeType must be string.').assertTrue(); 765 } 766 done(); 767 }); 768 769 /** 770 * @tc.name pasteboard_exception_test26 771 * @tc.desc Test createData throw error 772 * @tc.type Function 773 * @tc.require I5TYVJ 774 */ 775 it('pasteboard_exception_test26', 0, async function (done) { 776 const textData = 'Hello World!'; 777 const dataXml = new ArrayBuffer(512); 778 try { 779 const pasteData = pasteboard.createData('xxxxx', textData); 780 expect(true === false).assertTrue(); 781 } catch (e) { 782 expect(e.code === '401').assertTrue(); 783 expect(e.message === 'Parameter error. The mimeType is not an arraybuffer.').assertTrue(); 784 } 785 done(); 786 }); 787 788 /** 789 * @tc.name pasteboard_exception_test27 790 * @tc.desc Test createData throw error 791 * @tc.type Function 792 * @tc.require I5TYVJ 793 */ 794 it('pasteboard_exception_test27', 0, async function (done) { 795 try { 796 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, {}); 797 expect(true === false).assertTrue(); 798 } catch (e) { 799 expect(e.code === '401').assertTrue(); 800 expect(e.message === 'Parameter error. Actual mimeType is not mimetype_pixelmap.').assertTrue(); 801 } 802 done(); 803 }); 804 805 /** 806 * @tc.name pasteboard_exception_test28 807 * @tc.desc 异常值 非数组 808 * @tc.type Function 809 * @tc.require AR000H5HVI 810 */ 811 it('pasteboard_exception_test28', 0, async function (done) { 812 const systemPasteboard = pasteboard.getSystemPasteboard(); 813 await systemPasteboard.clearData(); 814 const textData = "部分人的十点半:\n" + 815 "https://pr5yyye-drseyive.u54yk.cwerfe/s/42e1ewed77f3dab4" + 816 "网gest加尔文iqru发的我ui哦计划任务i文化人:\n" + 817 "~b0043fg3423tddj~"; 818 const pasteData = pasteboard.createPlainTextData(textData); 819 await systemPasteboard.setPasteData(pasteData); 820 const res = await systemPasteboard.hasPasteData(); 821 expect(res).assertEqual(true); 822 const patterns = pasteboard.Pattern.EMAIL_ADDRESS; 823 try { 824 await systemPasteboard.detectPatterns(patterns); 825 } catch (e) { 826 expect(e.code == 401).assertTrue(); 827 } 828 done(); 829 }); 830 831 /** 832 * @tc.name pasteboard_exception_test29 833 * @tc.desc 异常值 传空 834 * @tc.type Function 835 * @tc.require AR000H5HVI 836 */ 837 it('pasteboard_exception_test29', 0, async function (done) { 838 const systemPasteboard = pasteboard.getSystemPasteboard(); 839 await systemPasteboard.clearData(); 840 const textData = "部分人的十点半:\n" + 841 "https://pr5yyye-drseyive.u54yk.cwerfe/s/42e1ewed77f3dab4" + 842 "网gest加尔文iqru发的我ui哦计划任务i文化人:\n" + 843 "~b0043fg3423tddj~"; 844 const pasteData = pasteboard.createPlainTextData(textData); 845 await systemPasteboard.setPasteData(pasteData); 846 const res = await systemPasteboard.hasPasteData(); 847 expect(res).assertEqual(true); 848 try { 849 await systemPasteboard.detectPatterns(); 850 } catch (e) { 851 expect(e.code == 401).assertTrue(); 852 } 853 done(); 854 }); 855 856 /** 857 * @tc.name pasteboard_exception_test30 858 * @tc.desc 异常值 数组内元素出错 859 * @tc.type Function 860 * @tc.require AR000H5HVI 861 */ 862 it('pasteboard_exception_test30', 0, async function (done) { 863 const systemPasteboard = pasteboard.getSystemPasteboard(); 864 await systemPasteboard.clearData(); 865 const textData = "部分人的十点半:\n" + 866 "https://pr5yyye-drseyive.u54yk.cwerfe/s/42e1ewed77f3dab4" + 867 "网gest加尔文iqru发的我ui哦计划任务i文化人:\n" + 868 "~b0043fg3423tddj~"; 869 const pasteData = pasteboard.createPlainTextData(textData); 870 await systemPasteboard.setPasteData(pasteData); 871 const res = await systemPasteboard.hasPasteData(); 872 expect(res).assertEqual(true); 873 const patterns = ["dsa", "fdsf", "da"]; 874 try { 875 await systemPasteboard.detectPatterns(patterns); 876 } catch (e) { 877 expect(e.code == 401).assertTrue(); 878 } 879 done(); 880 }); 881 882 /** 883 * @tc.name pasteboard_exception_test31 884 * @tc.desc 异常值 参数个数异常 885 * @tc.type Function 886 * @tc.require AR000H5HVI 887 */ 888 it('pasteboard_exception_test31', 0, async function (done) { 889 const systemPasteboard = pasteboard.getSystemPasteboard(); 890 await systemPasteboard.clearData(); 891 const textData = "部分人的十点半:\n" + 892 "https://pr5yyye-drseyive.u54yk.cwerfe/s/42e1ewed77f3dab4" + 893 "网gest加尔文iqru发的我ui哦计划任务i文化人:\n" + 894 "~b0043fg3423tddj~"; 895 const pasteData = pasteboard.createPlainTextData(textData); 896 await systemPasteboard.setPasteData(pasteData); 897 const res = await systemPasteboard.hasPasteData(); 898 expect(res).assertEqual(true); 899 const patterns1 = [0, 1]; 900 const patterns2 = [1, 2]; 901 try { 902 await systemPasteboard.detectPatterns(patterns1, patterns2); 903 } catch (e) { 904 expect(e.code == 401).assertTrue(); 905 } 906 done(); 907 }); 908 909 /** 910 * @tc.name pasteboard_exception_test32 911 * @tc.desc 异常值-非预期数字数组 912 * @tc.type Function 913 * @tc.require AR000H5HVI 914 */ 915 it('pasteboard_exception_test32', 0, async function (done) { 916 const systemPasteboard = pasteboard.getSystemPasteboard(); 917 await systemPasteboard.clearData(); 918 const textData = "<!DOCTYPE html><html><head><title>" + 919 ",尽快改好Greg就就。、</title></head><body><h2>访如果如果</h2>" + 920 "<p>搞了个<a href=\"https://grehtjeffxample.com\">" + 921 "剖一个v给ioadhoa@wdoiewf.com</a>。</p></body></html>"; 922 const pasteData = pasteboard.createHtmlData(textData); 923 await systemPasteboard.setPasteData(pasteData); 924 const res = await systemPasteboard.hasPasteData(); 925 expect(res).assertEqual(true); 926 const patterns1 = [0, 1, 23789, 238]; 927 try { 928 await systemPasteboard.detectPatterns(patterns1); 929 } catch (e) { 930 expect(e.code == 401).assertTrue(); 931 } 932 done(); 933 }); 934 935 /** 936 * @tc.name pasteboard_exception_test33 937 * @tc.desc 异常值-空数组 938 * @tc.type Function 939 * @tc.require AR000H5HVI 940 */ 941 it('pasteboard_exception_test33', 0, async function (done) { 942 const systemPasteboard = pasteboard.getSystemPasteboard(); 943 await systemPasteboard.clearData(); 944 const textData = "<!DOCTYPE html><html><head><title>" + 945 ",尽快改好Greg就就。、</title></head><body><h2>访如果如果</h2>" + 946 "<p>搞了个<a href=\"https://grehtjeffxample.com\">" + 947 "剖一个v给ioadhoa@wdoiewf.com</a>。</p></body></html>"; 948 const pasteData = pasteboard.createHtmlData(textData); 949 await systemPasteboard.setPasteData(pasteData); 950 const res = await systemPasteboard.hasPasteData(); 951 expect(res).assertEqual(true); 952 const patterns1 = []; 953 try { 954 await systemPasteboard.detectPatterns(patterns1); 955 } catch (e) { 956 expect(e.code == 401).assertTrue(); 957 } 958 done(); 959 }); 960 961}); 962