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