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'; 19import Want from '@ohos.app.ability.Want'; 20import List from '@ohos.util.List'; 21 22const myType = 'my-mime-type'; 23const allTypes = [pasteboard.MIMETYPE_TEXT_PLAIN, pasteboard.MIMETYPE_TEXT_HTML, pasteboard.MIMETYPE_TEXT_URI, 24 pasteboard.MIMETYPE_TEXT_WANT, pasteboard.MIMETYPE_PIXELMAP, myType 25]; 26 27describe('PasteBoardJSTest', function () { 28 beforeAll(async function () { 29 console.info('beforeAll'); 30 }); 31 32 afterAll(async function () { 33 console.info('afterAll'); 34 }); 35 36 /** 37 * @tc.name pasteboard_promise_test1 38 * @tc.desc Adds PlainTextData 39 * @tc.type Function 40 * @tc.require AR000H5HVI 41 */ 42 it('pasteboard_promise_test1', 0, async function (done) { 43 const systemPasteboard = pasteboard.getSystemPasteboard(); 44 await systemPasteboard.clearData(); 45 const textData1 = 'Hello World!'; 46 const pasteData = pasteboard.createPlainTextData(textData1); 47 await systemPasteboard.setPasteData(pasteData); 48 const res = await systemPasteboard.hasPasteData(); 49 expect(res).assertEqual(true); 50 const types = pasteData.getMimeTypes(); 51 expect('text/plain').assertEqual(types[0]); 52 systemPasteboard.getPasteData().then((data) => { 53 const pasteData1 = data; 54 expect(pasteData1.getRecordCount()).assertEqual(1); 55 const primaryText = pasteData1.getPrimaryText(); 56 expect(primaryText).assertEqual(textData1); 57 expect(pasteboard.MAX_RECORD_NUM).assertEqual(512); 58 expect(pasteData1.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 59 done(); 60 }); 61 }); 62 63 /** 64 * @tc.name pasteboard_promise_test2 65 * @tc.desc Adds PlainTextData = '' 66 * @tc.type Function 67 * @tc.require AR000H5HVI 68 */ 69 it('pasteboard_promise_test2', 0, async function (done) { 70 const systemPasteboard = pasteboard.getSystemPasteboard(); 71 await systemPasteboard.clearData(); 72 const textData2 = ''; 73 const pasteData = pasteboard.createPlainTextData(textData2); 74 await systemPasteboard.setPasteData(pasteData); 75 const res2 = await systemPasteboard.hasPasteData(); 76 expect(res2).assertEqual(true); 77 systemPasteboard.getPasteData().then((data) => { 78 const recordCount2 = data.getRecordCount(); 79 expect(recordCount2).assertEqual(1); 80 done(); 81 }); 82 }); 83 84 /** 85 * @tc.name pasteboard_promise_test3 86 * @tc.desc Adds PlainTextData = 'Hello 中国!@#$%^&*()_+{}\?.' 87 * @tc.type Function 88 * @tc.require AR000H5HVI 89 */ 90 it('pasteboard_promise_test3', 0, async function (done) { 91 const systemPasteboard = pasteboard.getSystemPasteboard(); 92 await systemPasteboard.clearData(); 93 const textData3 = 'Hello 中国!@#$%^&*()_+{}?.'; 94 const pasteData = pasteboard.createPlainTextData(textData3); 95 await systemPasteboard.setPasteData(pasteData); 96 const res3 = await systemPasteboard.hasPasteData(); 97 expect(res3).assertEqual(true); 98 systemPasteboard.getPasteData().then((data) => { 99 const pasteData3 = data; 100 expect(pasteData3.getRecordCount()).assertEqual(1); 101 const primaryText = pasteData3.getPrimaryText(); 102 expect(primaryText).assertEqual(textData3); 103 expect(pasteData3.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 104 done(); 105 }); 106 }); 107 108 /** 109 * @tc.name pasteboard_promise_test4 110 * @tc.desc Adds 300K PlainTextData 111 * @tc.type Function 112 * @tc.require AR000H5HVI 113 */ 114 it('pasteboard_promise_test4', 0, async function (done) { 115 const systemPasteboard = pasteboard.getSystemPasteboard(); 116 await systemPasteboard.clearData(); 117 let textData4 = ''; 118 for (let i = 0; i < 300; i++) { 119 textData4 = textData4 + 'A'; 120 } 121 const pasteData = pasteboard.createPlainTextData(textData4); 122 await systemPasteboard.setPasteData(pasteData); 123 const res4 = await systemPasteboard.hasPasteData(); 124 expect(res4).assertEqual(true); 125 systemPasteboard.getPasteData().then((data) => { 126 const pasteData4 = data; 127 expect(pasteData4.getRecordCount()).assertEqual(1); 128 const primaryText = pasteData4.getPrimaryText(); 129 expect(primaryText).assertEqual(textData4); 130 expect(pasteData4.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 131 expect(pasteData4.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 132 done(); 133 }); 134 }); 135 136 /** 137 * @tc.name pasteboard_promise_test5 138 * @tc.desc Adds htmlText 139 * @tc.type Function 140 * @tc.require AR000H5HVI 141 */ 142 it('pasteboard_promise_test5', 0, async function (done) { 143 const systemPasteboard = pasteboard.getSystemPasteboard(); 144 await systemPasteboard.clearData(); 145 const htmlText5 = '<html><head></head><body>Hello World!</body></html>'; 146 const pasteData = pasteboard.createHtmlData(htmlText5); 147 await systemPasteboard.setPasteData(pasteData); 148 const res5 = await systemPasteboard.hasPasteData(); 149 expect(res5).assertEqual(true); 150 systemPasteboard.getPasteData().then((data) => { 151 const pasteData5 = data; 152 expect(pasteData5.getRecordCount()).assertEqual(1); 153 const primaryHtml6 = pasteData5.getPrimaryHtml(); 154 expect(primaryHtml6).assertEqual(htmlText5); 155 expect(pasteData5.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 156 expect(pasteData5.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 157 done(); 158 }); 159 }); 160 161 /** 162 * @tc.name pasteboard_promise_test6 163 * @tc.desc Adds htmlText = '' 164 * @tc.type Function 165 * @tc.require AR000H5HVI 166 */ 167 it('pasteboard_promise_test6', 0, async function (done) { 168 const systemPasteboard = pasteboard.getSystemPasteboard(); 169 await systemPasteboard.clearData(); 170 const htmlText6 = ''; 171 const pasteData = pasteboard.createHtmlData(htmlText6); 172 await systemPasteboard.setPasteData(pasteData); 173 const res6 = await systemPasteboard.hasPasteData(); 174 expect(res6).assertEqual(true); 175 systemPasteboard.getPasteData().then((data) => { 176 expect(data.getRecordCount()).assertEqual(1); 177 const primaryHtml6 = data.getPrimaryHtml(); 178 expect(primaryHtml6).assertEqual(htmlText6); 179 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 180 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 181 done(); 182 }); 183 }); 184 185 /** 186 * @tc.name pasteboard_promise_test7 187 * @tc.desc Adds htmlText = 'Hello 中国!@#$%^&*()_+{}\?.' 188 * @tc.type Function 189 * @tc.require AR000H5HVI 190 */ 191 it('pasteboard_promise_test7', 0, async function (done) { 192 const systemPasteboard = pasteboard.getSystemPasteboard(); 193 await systemPasteboard.clearData(); 194 const htmlText = 'Hello 中国!@#$%^&*()_+{}?.'; 195 const pasteData = pasteboard.createHtmlData(htmlText); 196 await systemPasteboard.setPasteData(pasteData); 197 const res = await systemPasteboard.hasPasteData(); 198 expect(res).assertEqual(true); 199 systemPasteboard.getPasteData().then((data) => { 200 expect(data.getRecordCount()).assertEqual(1); 201 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 202 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 203 expect(data.getPrimaryHtml()).assertEqual(htmlText); 204 done(); 205 }); 206 }); 207 208 /** 209 * @tc.name pasteboard_promise_test8 210 * @tc.desc Adds uriText 211 * @tc.type Function 212 * @tc.require AR000H5HVI 213 */ 214 it('pasteboard_promise_test8', 0, async function (done) { 215 const systemPasteboard = pasteboard.getSystemPasteboard(); 216 await systemPasteboard.clearData(); 217 const uriText8 = 'https://www.baidu.com/'; 218 const pasteData = pasteboard.createUriData(uriText8); 219 await systemPasteboard.setPasteData(pasteData); 220 const res8 = await systemPasteboard.hasPasteData(); 221 expect(res8).assertEqual(true); 222 systemPasteboard.getPasteData().then((data) => { 223 expect(data.getRecordCount()).assertEqual(1); 224 const primaryUri8 = data.getPrimaryUri(); 225 expect(primaryUri8).assertEqual(uriText8); 226 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 227 done(); 228 }); 229 }); 230 231 /** 232 * @tc.name pasteboard_promise_test9 233 * @tc.desc Adds uriText = '' 234 * @tc.type Function 235 * @tc.require AR000H5HVI 236 */ 237 it('pasteboard_promise_test9', 0, async function (done) { 238 const systemPasteboard = pasteboard.getSystemPasteboard(); 239 await systemPasteboard.clearData(); 240 const uriText9 = ''; 241 const pasteData = pasteboard.createUriData(uriText9); 242 await systemPasteboard.setPasteData(pasteData); 243 const res9 = await systemPasteboard.hasPasteData(); 244 expect(res9).assertEqual(true); 245 systemPasteboard.getPasteData().then((data) => { 246 expect(data.getRecordCount()).assertEqual(1); 247 expect(data.getPrimaryUri()).assertEqual(uriText9); 248 done(); 249 }); 250 }); 251 252 /** 253 * @tc.name pasteboard_promise_test10 254 * @tc.desc Set uriText = 'Hello //' 255 * @tc.type Function 256 * @tc.require AR000H5HVI 257 */ 258 it('pasteboard_promise_test10', 0, async function (done) { 259 const systemPasteboard = pasteboard.getSystemPasteboard(); 260 await systemPasteboard.clearData(); 261 const uriText10 = 'Hello//'; 262 const pasteData = pasteboard.createUriData(uriText10); 263 await systemPasteboard.setPasteData(pasteData); 264 const res10 = await systemPasteboard.hasPasteData(); 265 expect(res10).assertEqual(true); 266 systemPasteboard.getPasteData().then((data) => { 267 expect(data.getRecordCount()).assertEqual(1); 268 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 269 expect(data.getPrimaryUri()).assertEqual(uriText10); 270 done(); 271 }); 272 }); 273 274 /** 275 * @tc.name pasteboard_promise_test11 276 * @tc.desc Adds want 277 * @tc.type Function 278 * @tc.require AR000H5HVI 279 */ 280 it('pasteboard_promise_test11', 0, async function (done) { 281 const systemPasteboard = pasteboard.getSystemPasteboard(); 282 await systemPasteboard.clearData(); 283 const want11 = { 284 bundleName: 'com.example.myapplication8', 285 abilityName: 'com.example.myapplication8.MainAbility', 286 }; 287 const pasteData = pasteboard.createWantData(want11); 288 await systemPasteboard.setPasteData(pasteData); 289 const res11 = await systemPasteboard.hasPasteData(); 290 expect(res11).assertEqual(true); 291 systemPasteboard.getPasteData().then((data) => { 292 expect(data.getRecordCount()).assertEqual(1); 293 const primaryWant = data.getPrimaryWant(); 294 expect(want11.bundleName).assertEqual(primaryWant.bundleName); 295 expect(want11.abilityName).assertEqual(primaryWant.abilityName); 296 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true); 297 done(); 298 }); 299 }); 300 301 /** 302 * @tc.name pasteboard_promise_test12 303 * @tc.desc Adds one record(s) 304 * @tc.type Function 305 * @tc.require AR000H5HVI 306 */ 307 it('pasteboard_promise_test12', 0, async function (done) { 308 const systemPasteboard = pasteboard.getSystemPasteboard(); 309 await systemPasteboard.clearData(); 310 const textData12 = 'Hello World!'; 311 const pasteData = pasteboard.createPlainTextData(textData12); 312 await systemPasteboard.setPasteData(pasteData); 313 const res12 = await systemPasteboard.hasPasteData(); 314 expect(res12).assertEqual(true); 315 systemPasteboard.getPasteData().then((data) => { 316 expect(data.getRecordCount()).assertEqual(1); 317 let recordText12 = data.getRecordAt(0).plainText; 318 expect(recordText12).assertEqual(textData12); 319 done(); 320 }); 321 }); 322 323 /** 324 * @tc.name pasteboard_promise_test13 325 * @tc.desc Adds 2 record(s) 326 * @tc.type Function 327 * @tc.require AR000H5HVI 328 */ 329 it('pasteboard_promise_test13', 0, async function (done) { 330 const systemPasteboard = pasteboard.getSystemPasteboard(); 331 await systemPasteboard.clearData(); 332 const textData130 = 'Hello World!'; 333 const pasteData = pasteboard.createPlainTextData(textData130); 334 const textData131 = 'Hello World1'; 335 pasteData.addTextRecord(textData131); 336 await systemPasteboard.setPasteData(pasteData); 337 const res13 = await systemPasteboard.hasPasteData(); 338 expect(res13).assertEqual(true); 339 systemPasteboard.getPasteData().then((data) => { 340 expect(data.getRecordCount()).assertEqual(2); 341 const dataRecord130 = data.getRecordAt(0); 342 const dataRecord131 = data.getRecordAt(1); 343 expect(dataRecord130.plainText).assertEqual(textData131); 344 expect(dataRecord131.plainText).assertEqual(textData130); 345 done(); 346 }); 347 }); 348 349 /** 350 * @tc.name pasteboard_promise_test14 351 * @tc.desc Adds 15 record(s) 352 * @tc.type Function 353 * @tc.require AR000H5HVI 354 */ 355 it('pasteboard_promise_test14', 0, async function (done) { 356 const systemPasteboard = pasteboard.getSystemPasteboard(); 357 await systemPasteboard.clearData(); 358 const textData140 = 'Hello World!'; 359 const pasteData = pasteboard.createPlainTextData(textData140); 360 let textData14 = ''; 361 for (let i = 1; i < 15; i++) { 362 textData14 = 'Hello World'; 363 textData14 = textData14 + i; 364 pasteData.addTextRecord(textData14); 365 } 366 await systemPasteboard.setPasteData(pasteData); 367 const res14 = await systemPasteboard.hasPasteData(); 368 expect(res14).assertEqual(true); 369 systemPasteboard.getPasteData().then((data) => { 370 expect(data.getRecordCount()).assertEqual(15); 371 const dataRecord14 = data.getRecordAt(14); 372 expect(dataRecord14.plainText).assertEqual(textData140); 373 done(); 374 }); 375 }); 376 377 /** 378 * @tc.name pasteboard_promise_test15 379 * @tc.desc Adds 30 record(s) 380 * @tc.type Function 381 * @tc.require AR000H5HVI 382 */ 383 it('pasteboard_promise_test15', 0, async function (done) { 384 const systemPasteboard = pasteboard.getSystemPasteboard(); 385 await systemPasteboard.clearData(); 386 const textData150 = 'Hello World!'; 387 const pasteData = pasteboard.createPlainTextData(textData150); 388 let textData15 = ''; 389 for (let i = 1; i < 30; i++) { 390 textData15 = 'Hello World'; 391 textData15 = textData15 + i; 392 pasteData.addTextRecord(textData15); 393 } 394 await systemPasteboard.setPasteData(pasteData); 395 const res15 = await systemPasteboard.hasPasteData(); 396 expect(res15).assertEqual(true); 397 systemPasteboard.getPasteData().then((data) => { 398 expect(data.getRecordCount()).assertEqual(30); 399 const dataRecord15 = data.getRecordAt(0); 400 expect(dataRecord15.plainText).assertEqual('Hello World29'); 401 done(); 402 }); 403 }); 404 405 /** 406 * @tc.name pasteboard_promise_test16 407 * @tc.desc Adds 31 record(s) 408 * @tc.type Function 409 * @tc.require AR000H5HVI 410 */ 411 it('pasteboard_promise_test16', 0, async function (done) { 412 const systemPasteboard = pasteboard.getSystemPasteboard(); 413 await systemPasteboard.clearData(); 414 const textData160 = 'Hello World!'; 415 const pasteData = pasteboard.createPlainTextData(textData160); 416 let textData16 = ''; 417 for (let i = 1; i < 31; i++) { 418 textData16 = 'Hello World'; 419 textData16 = textData16 + i; 420 pasteData.addTextRecord(textData16); 421 } 422 await systemPasteboard.setPasteData(pasteData); 423 const res16 = await systemPasteboard.hasPasteData(); 424 expect(res16).assertEqual(true); 425 systemPasteboard.getPasteData().then((data) => { 426 const recordCount16 = data.getRecordCount(); 427 expect(recordCount16).assertEqual(31); 428 const dataRecord16 = data.getRecordAt(0); 429 expect(dataRecord16.plainText).assertEqual('Hello World30'); 430 done(); 431 }); 432 }); 433 434 /** 435 * @tc.name pasteboard_promise_test17 436 * @tc.desc Adds PlainText,HtmlText,UriText 437 * @tc.type Function 438 * @tc.require AR000H5HVI 439 */ 440 it('pasteboard_promise_test17', 0, async function (done) { 441 const systemPasteboard = pasteboard.getSystemPasteboard(); 442 await systemPasteboard.clearData(); 443 const textData17 = 'Hello World!'; 444 const pasteData = pasteboard.createPlainTextData(textData17); 445 const htmlText17 = '<html><head></head><body>Hello World!</body></html>'; 446 pasteData.addHtmlRecord(htmlText17); 447 const uriText17 = 'https://www.baidu.com/'; 448 pasteData.addUriRecord(uriText17); 449 const want17 = { 450 bundleName: 'com.example.myapplication8', 451 abilityName: 'com.example.myapplication8.MainAbility', 452 }; 453 pasteData.addWantRecord(want17); 454 await systemPasteboard.setPasteData(pasteData); 455 const res17 = await systemPasteboard.hasPasteData(); 456 expect(res17).assertEqual(true); 457 systemPasteboard.getPasteData().then((data) => { 458 expect(data.getRecordCount()).assertEqual(4); 459 const wantRecord17 = data.getPrimaryWant(); 460 expect(wantRecord17.bundleName).assertEqual(want17.bundleName); 461 expect(wantRecord17.abilityName).assertEqual(want17.abilityName); 462 done(); 463 }); 464 }); 465 466 /** 467 * @tc.name pasteboard_promise_test18 468 * @tc.desc Delete one PlainTextData 469 * @tc.type Function 470 * @tc.require AR000H5HVI 471 */ 472 it('pasteboard_promise_test18', 0, async function (done) { 473 const systemPasteboard = pasteboard.getSystemPasteboard(); 474 await systemPasteboard.clearData(); 475 const textData18 = 'Hello World!'; 476 const pasteData = pasteboard.createPlainTextData(textData18); 477 await systemPasteboard.setPasteData(pasteData); 478 const res18 = await systemPasteboard.hasPasteData(); 479 expect(res18).assertEqual(true); 480 const pasteData18 = await systemPasteboard.getPasteData(); 481 expect(pasteData18.getRecordCount()).assertEqual(1); 482 expect(pasteData18.removeRecordAt(0)).assertEqual(true); 483 await systemPasteboard.setPasteData(pasteData18); 484 systemPasteboard.getPasteData().then((data) => { 485 const recordCount18 = data.getRecordCount(); 486 expect(recordCount18).assertEqual(0); 487 done(); 488 }); 489 }); 490 491 /** 492 * @tc.name pasteboard_promise_test19 493 * @tc.desc Delete one htmlText 494 * @tc.type Function 495 * @tc.require AR000H5HVI 496 */ 497 it('pasteboard_promise_test19', 0, async function (done) { 498 const systemPasteboard = pasteboard.getSystemPasteboard(); 499 await systemPasteboard.clearData(); 500 const htmlText19 = '<html><head></head><body>Hello World!</body></html>'; 501 const pasteData = pasteboard.createHtmlData(htmlText19); 502 await systemPasteboard.setPasteData(pasteData); 503 const res19 = await systemPasteboard.hasPasteData(); 504 expect(res19).assertEqual(true); 505 const pasteData19 = await systemPasteboard.getPasteData(); 506 expect(pasteData19.getRecordCount()).assertEqual(1); 507 expect(pasteData19.removeRecordAt(0)).assertEqual(true); 508 await systemPasteboard.setPasteData(pasteData19); 509 systemPasteboard.getPasteData().then((data) => { 510 const recordCount19 = data.getRecordCount(); 511 expect(recordCount19).assertEqual(0); 512 done(); 513 }); 514 }); 515 516 /** 517 * @tc.name pasteboard_promise_test20 518 * @tc.desc Delete one uriText 519 * @tc.type Function 520 * @tc.require AR000H5HVI 521 */ 522 it('pasteboard_promise_test20', 0, async function (done) { 523 const systemPasteboard = pasteboard.getSystemPasteboard(); 524 await systemPasteboard.clearData(); 525 const uriText20 = 'https://www.baidu.com/'; 526 const pasteData = pasteboard.createUriData(uriText20); 527 await systemPasteboard.setPasteData(pasteData); 528 const res20 = await systemPasteboard.hasPasteData(); 529 expect(res20).assertEqual(true); 530 const pasteData20 = await systemPasteboard.getPasteData(); 531 expect(pasteData20.getRecordCount()).assertEqual(1); 532 expect(pasteData20.removeRecordAt(0)).assertEqual(true); 533 await systemPasteboard.setPasteData(pasteData20); 534 systemPasteboard.getPasteData().then((data) => { 535 const recordCount20 = data.getRecordCount(); 536 expect(recordCount20).assertEqual(0); 537 done(); 538 }); 539 }); 540 541 /** 542 * @tc.name pasteboard_promise_test21 543 * @tc.desc Delete one want 544 * @tc.type Function 545 * @tc.require AR000H5I1D 546 */ 547 it('pasteboard_promise_test21', 0, async function (done) { 548 const systemPasteboard = pasteboard.getSystemPasteboard(); 549 await systemPasteboard.clearData(); 550 const want21 = { 551 bundleName: 'com.example.myapplication8', 552 abilityName: 'com.example.myapplication8.MainAbility', 553 }; 554 const pasteData = pasteboard.createWantData(want21); 555 await systemPasteboard.setPasteData(pasteData); 556 const res21 = await systemPasteboard.hasPasteData(); 557 expect(res21).assertEqual(true); 558 const pasteData21 = await systemPasteboard.getPasteData(); 559 expect(pasteData21.getRecordCount()).assertEqual(1); 560 expect(pasteData21.removeRecordAt(0)).assertEqual(true); 561 await systemPasteboard.setPasteData(pasteData21); 562 systemPasteboard.getPasteData().then((data) => { 563 const recordCount21 = data.getRecordCount(); 564 expect(recordCount21).assertEqual(0); 565 done(); 566 }); 567 }); 568 569 /** 570 * @tc.name pasteboard_promise_test22 571 * @tc.desc Deletes 300K PlainTextData 572 * @tc.type Function 573 * @tc.require AR000H5I1D 574 */ 575 it('pasteboard_promise_test22', 0, async function (done) { 576 const systemPasteboard = pasteboard.getSystemPasteboard(); 577 await systemPasteboard.clearData(); 578 let textData22 = ''; 579 for (let i = 0; i < 300; i++) { 580 textData22 = textData22 + 'A'; 581 } 582 const pasteData = pasteboard.createPlainTextData(textData22); 583 await systemPasteboard.setPasteData(pasteData); 584 const res22 = await systemPasteboard.hasPasteData(); 585 expect(res22).assertEqual(true); 586 const pasteData22 = await systemPasteboard.getPasteData(); 587 expect(pasteData22.getRecordCount()).assertEqual(1); 588 expect(pasteData22.removeRecordAt(0)).assertEqual(true); 589 await systemPasteboard.setPasteData(pasteData22); 590 systemPasteboard.getPasteData().then((data) => { 591 const recordCount22 = data.getRecordCount(); 592 expect(recordCount22).assertEqual(0); 593 done(); 594 }); 595 }); 596 597 /** 598 * @tc.name pasteboard_promise_test23 599 * @tc.desc Deletes 30 record(s) 600 * @tc.type Function 601 * @tc.require AR000H5I1D 602 */ 603 it('pasteboard_promise_test23', 0, async function (done) { 604 const systemPasteboard = pasteboard.getSystemPasteboard(); 605 await systemPasteboard.clearData(); 606 const textData230 = 'Hello World'; 607 const pasteData = pasteboard.createPlainTextData(textData230); 608 let textData23 = ''; 609 for (let i = 1; i < 30; i++) { 610 textData23 = 'Hello World'; 611 textData23 = textData23 + i; 612 pasteData.addTextRecord(textData23); 613 } 614 await systemPasteboard.setPasteData(pasteData); 615 const res23 = await systemPasteboard.hasPasteData(); 616 expect(res23).assertEqual(true); 617 const pasteData23 = await systemPasteboard.getPasteData(); 618 expect(pasteData23.getRecordCount()).assertEqual(30); 619 for (let i = 0; i < 30; i++) { 620 expect(pasteData23.removeRecordAt(0)).assertEqual(true); 621 } 622 expect(pasteData23.getRecordCount()).assertEqual(0); 623 systemPasteboard.setPasteData(pasteData23).then(() => { 624 systemPasteboard.getPasteData().then((data) => { 625 let recordCount23 = data.getRecordCount(); 626 expect(recordCount23).assertEqual(0); 627 done(); 628 }); 629 }); 630 }); 631 632 /** 633 * @tc.name pasteboard_promise_test24 634 * @tc.desc Deletes replaced record 635 * @tc.type Function 636 * @tc.require AR000H5I1D 637 */ 638 it('pasteboard_promise_test24', 0, async function (done) { 639 const systemPasteboard = pasteboard.getSystemPasteboard(); 640 await systemPasteboard.clearData(); 641 const textData24 = 'Hello World!'; 642 const pasteData = pasteboard.createPlainTextData(textData24); 643 await systemPasteboard.setPasteData(pasteData); 644 const res24 = await systemPasteboard.hasPasteData(); 645 expect(res24).assertEqual(true); 646 const pasteData24 = await systemPasteboard.getPasteData(); 647 expect(pasteData24.getRecordCount()).assertEqual(1); 648 const textData241 = 'Hello World1'; 649 const pasteDataRecord = pasteboard.createPlainTextRecord(textData241); 650 const replace = pasteData24.replaceRecordAt(0, pasteDataRecord); 651 expect(replace).assertEqual(true); 652 const primaryText = pasteData24.getPrimaryText(); 653 expect(primaryText).assertEqual(textData241); 654 expect(pasteData24.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 655 const dataRecord = pasteData24.getRecordAt(0); 656 expect(dataRecord.plainText).assertEqual(textData241); 657 expect(pasteData24.removeRecordAt(0)).assertEqual(true); 658 systemPasteboard.setPasteData(pasteData24).then(() => { 659 systemPasteboard.getPasteData().then((data) => { 660 const recordCount24 = data.getRecordCount(); 661 expect(recordCount24).assertEqual(0); 662 done(); 663 }); 664 }); 665 }); 666 667 /** 668 * @tc.name pasteboard_promise_test25 669 * @tc.desc Deletes 文本、uri、html 670 * @tc.type Function 671 * @tc.require AR000H5I1D 672 */ 673 it('pasteboard_promise_test25', 0, async function (done) { 674 const systemPasteboard = pasteboard.getSystemPasteboard(); 675 await systemPasteboard.clearData(); 676 const textData25 = 'Hello World!'; 677 const pasteData = pasteboard.createPlainTextData(textData25); 678 const htmlText25 = '<html><head></head><body>Hello World!</body></html>'; 679 pasteData.addHtmlRecord(htmlText25); 680 const uriText25 = 'https://www.baidu.com/'; 681 pasteData.addUriRecord(uriText25); 682 await systemPasteboard.setPasteData(pasteData); 683 const res25 = await systemPasteboard.hasPasteData(); 684 expect(res25).assertEqual(true); 685 const pasteData25 = await systemPasteboard.getPasteData(); 686 expect(pasteData25.getRecordCount()).assertEqual(3); 687 expect(pasteData25.removeRecordAt(0)).assertEqual(true); 688 expect(pasteData25.removeRecordAt(0)).assertEqual(true); 689 expect(pasteData25.removeRecordAt(0)).assertEqual(true); 690 systemPasteboard.setPasteData(pasteData25).then(() => { 691 systemPasteboard.getPasteData().then((data) => { 692 const recordCount25 = data.getRecordCount(); 693 expect(recordCount25).assertEqual(0); 694 done(); 695 }); 696 }); 697 }); 698 699 /** 700 * @tc.name pasteboard_promise_test26 701 * @tc.desc Replaces 文本 record 702 * @tc.type Function 703 * @tc.require AR000H5I1D 704 */ 705 it('pasteboard_promise_test26', 0, async function (done) { 706 const systemPasteboard = pasteboard.getSystemPasteboard(); 707 await systemPasteboard.clearData(); 708 const textData26 = 'Hello World!'; 709 const pasteData = pasteboard.createPlainTextData(textData26); 710 await systemPasteboard.setPasteData(pasteData); 711 const res26 = await systemPasteboard.hasPasteData(); 712 expect(res26).assertEqual(true); 713 systemPasteboard.getPasteData().then((data) => { 714 const pasteData26 = data; 715 expect(pasteData26.getRecordCount()).assertEqual(1); 716 const textData261 = 'Hello World1'; 717 const pasteDataRecord = pasteboard.createPlainTextRecord(textData261); 718 const replace26 = pasteData26.replaceRecordAt(0, pasteDataRecord); 719 expect(replace26).assertEqual(true); 720 const primaryText26 = pasteData26.getPrimaryText(); 721 expect(primaryText26).assertEqual(textData261); 722 done(); 723 }); 724 }); 725 726 /** 727 * @tc.name pasteboard_promise_test27 728 * @tc.desc Replaces htmlText record 729 * @tc.type Function 730 * @tc.require AR000H5I1D 731 */ 732 it('pasteboard_promise_test27', 0, async function (done) { 733 const systemPasteboard = pasteboard.getSystemPasteboard(); 734 await systemPasteboard.clearData(); 735 const htmlText27 = '<html><head></head><body>Hello World!</body></html>'; 736 const pasteData = pasteboard.createHtmlData(htmlText27); 737 await systemPasteboard.setPasteData(pasteData); 738 const res27 = await systemPasteboard.hasPasteData(); 739 expect(res27).assertEqual(true); 740 systemPasteboard.getPasteData().then((data) => { 741 const pasteData27 = data; 742 expect(pasteData27.getRecordCount()).assertEqual(1); 743 const htmlText27 = '<html><head></head><body>Hello World 1</body></html>'; 744 const pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText27); 745 const replace27 = pasteData27.replaceRecordAt(0, pasteDataRecord); 746 expect(replace27).assertEqual(true); 747 const primaryHtml271 = pasteData27.getPrimaryHtml(); 748 expect(primaryHtml271).assertEqual(htmlText27); 749 expect(pasteData27.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 750 const primaryHtml272 = pasteData27.getPrimaryHtml(); 751 expect(primaryHtml272).assertEqual(htmlText27); 752 done(); 753 }); 754 }); 755 756 /** 757 * @tc.name pasteboard_promise_test28 758 * @tc.desc Replaces uri record 759 * @tc.type Function 760 * @tc.require AR000H5I1D 761 */ 762 it('pasteboard_promise_test28', 0, async function (done) { 763 const systemPasteboard = pasteboard.getSystemPasteboard(); 764 await systemPasteboard.clearData(); 765 const uriText28 = 'https://www.baidu.com/'; 766 const pasteData = pasteboard.createUriData(uriText28); 767 await systemPasteboard.setPasteData(pasteData); 768 const res28 = await systemPasteboard.hasPasteData(); 769 expect(res28).assertEqual(true); 770 systemPasteboard.getPasteData().then((data) => { 771 const pasteData28 = data; 772 expect(pasteData28.getRecordCount()).assertEqual(1); 773 const uriText281 = 'https://www.baidu.com/1'; 774 const pasteDataRecord = pasteboard.createUriRecord(uriText281); 775 const replace28 = pasteData28.replaceRecordAt(0, pasteDataRecord); 776 expect(replace28).assertEqual(true); 777 const primaryUri1 = pasteData28.getPrimaryUri(); 778 expect(primaryUri1).assertEqual(uriText281); 779 expect(pasteData28.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 780 const primaryUri2 = pasteData28.getPrimaryUri(); 781 expect(primaryUri2).assertEqual(uriText281); 782 done(); 783 }); 784 }); 785 786 /** 787 * @tc.name pasteboard_promise_test29 788 * @tc.desc Replaces want record 789 * @tc.type Function 790 * @tc.require AR000H5I1D 791 */ 792 it('pasteboard_promise_test29', 0, async function (done) { 793 const systemPasteboard = pasteboard.getSystemPasteboard(); 794 await systemPasteboard.clearData(); 795 const wantText29 = { 796 bundleName: 'com.example.myapplication3', 797 abilityName: 'com.example.myapplication3.MainAbility', 798 }; 799 const pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText29); 800 await systemPasteboard.setPasteData(pasteData); 801 const res29 = await systemPasteboard.hasPasteData(); 802 expect(res29).assertEqual(true); 803 systemPasteboard.getPasteData().then((data) => { 804 const pasteData29 = data; 805 expect(pasteData29.getRecordCount()).assertEqual(1); 806 const wantText291 = { 807 bundleName: 'com.example.myapplication30', 808 abilityName: 'com.example.myapplication30.MainAbility', 809 }; 810 const pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText291); 811 const replace29 = pasteData29.replaceRecordAt(0, pasteDataRecord); 812 expect(replace29).assertEqual(true); 813 const primaryWant29 = pasteData29.getPrimaryWant(); 814 expect(primaryWant29.bundleName).assertEqual(wantText291.bundleName); 815 expect(primaryWant29.abilityName).assertEqual(wantText291.abilityName); 816 done(); 817 }); 818 }); 819 820 /** 821 * @tc.name pasteboard_promise_test30 822 * @tc.desc Replaces 300k文本 record 823 * @tc.type Function 824 * @tc.require AR000H5I1D 825 */ 826 it('pasteboard_promise_test30', 0, async function (done) { 827 const systemPasteboard = pasteboard.getSystemPasteboard(); 828 await systemPasteboard.clearData(); 829 let textData30 = ''; 830 for (let i = 0; i < 300; i++) { 831 textData30 = textData30 + 'A'; 832 } 833 const pasteData = pasteboard.createPlainTextData(textData30); 834 await systemPasteboard.setPasteData(pasteData); 835 const res30 = await systemPasteboard.hasPasteData(); 836 expect(res30).assertEqual(true); 837 systemPasteboard.getPasteData().then((data) => { 838 const pasteData30 = data; 839 expect(pasteData30.getRecordCount()).assertEqual(1); 840 const textData301 = 'Hello World1'; 841 const pasteDataRecord = pasteboard.createPlainTextRecord(textData301); 842 const replace = pasteData30.replaceRecordAt(0, pasteDataRecord); 843 expect(replace).assertEqual(true); 844 const primaryText = pasteData30.getPrimaryText(); 845 expect(primaryText).assertEqual(textData301); 846 done(); 847 }); 848 }); 849 850 /** 851 * @tc.name pasteboard_promise_test31 852 * @tc.desc Clears pasteBoard, gets record count 853 * @tc.type Function 854 * @tc.require AR000H5I1D 855 */ 856 it('pasteboard_promise_test31', 0, async function (done) { 857 const systemPasteboard = pasteboard.getSystemPasteboard(); 858 await systemPasteboard.clearData(); 859 const textData31 = 'Hello World!'; 860 const pasteData = pasteboard.createPlainTextData(textData31); 861 await systemPasteboard.setPasteData(pasteData); 862 const res31 = await systemPasteboard.hasPasteData(); 863 expect(res31).assertEqual(true); 864 const pasteData31 = await systemPasteboard.getPasteData(); 865 expect(pasteData31.getRecordCount()).assertEqual(1); 866 await systemPasteboard.clearData(); 867 systemPasteboard.getPasteData().then((data) => { 868 const pasteData2 = data; 869 const recordCount = pasteData2.getRecordCount(); 870 expect(recordCount).assertEqual(0); 871 done(); 872 }); 873 }); 874 875 /** 876 * @tc.name pasteboard_promise_test32 877 * @tc.desc Adds Property 878 * @tc.type Function 879 * @tc.require AR000H5I1D 880 */ 881 it('pasteboard_promise_test32', 0, async function (done) { 882 const systemPasteboard = pasteboard.getSystemPasteboard(); 883 await systemPasteboard.clearData(); 884 const textData32 = 'Hello World!'; 885 const pasteData = pasteboard.createPlainTextData(textData32); 886 await systemPasteboard.setPasteData(pasteData); 887 const res32 = await systemPasteboard.hasPasteData(); 888 expect(res32).assertEqual(true); 889 const pasteData32 = await systemPasteboard.getPasteData(); 890 expect(pasteData32.getRecordCount()).assertEqual(1); 891 const pasteDataProperty = pasteData32.getProperty(); 892 expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice); 893 pasteDataProperty.shareOption = pasteboard.ShareOption.InApp; 894 pasteData32.setProperty(pasteDataProperty); 895 expect(pasteData32.getProperty().shareOption).assertEqual(pasteboard.ShareOption.InApp); 896 done(); 897 }); 898 899 /** 900 * @tc.name pasteboard_promise_test33 901 * @tc.desc Clears pasteBoard and check property 902 * @tc.type Function 903 * @tc.require AR000H5I1D 904 */ 905 it('pasteboard_promise_test33', 0, async function (done) { 906 const systemPasteboard = pasteboard.getSystemPasteboard(); 907 await systemPasteboard.clearData(); 908 const textData33 = 'Hello World!'; 909 const pasteData = pasteboard.createPlainTextData(textData33); 910 await systemPasteboard.setPasteData(pasteData); 911 const res33 = await systemPasteboard.hasPasteData(); 912 expect(res33).assertEqual(true); 913 systemPasteboard.getPasteData().then(async (data) => { 914 expect(data.getRecordCount()).assertEqual(1); 915 await systemPasteboard.clearData(); 916 const newPasteData = await systemPasteboard.getPasteData(); 917 expect(newPasteData.getProperty().shareOption).assertEqual(pasteboard.ShareOption.CrossDevice); 918 done(); 919 }); 920 }); 921 922 /** 923 * @tc.name pasteboard_promise_test34 924 * @tc.desc 打开内容变化通知功能 925 * @tc.type Function 926 * @tc.require AR000H5I1D 927 */ 928 it('pasteboard_promise_test34', 0, async function (done) { 929 const systemPasteboard = pasteboard.getSystemPasteboard(); 930 await systemPasteboard.clearData(); 931 systemPasteboard.on('update', contentChanges); 932 const textData34 = 'Hello World!'; 933 const pasteData = pasteboard.createPlainTextData(textData34); 934 await systemPasteboard.setPasteData(pasteData); 935 const res34 = await systemPasteboard.hasPasteData(); 936 expect(res34).assertEqual(true); 937 systemPasteboard.getPasteData().then((data) => { 938 expect(data.getRecordCount()).assertEqual(1); 939 expect(data.removeRecordAt(0)).assertEqual(true); 940 expect(data.getRecordCount()).assertEqual(0); 941 done(); 942 }); 943 }); 944 945 /** 946 * @tc.name pasteboard_promise_test35 947 * @tc.desc 清除剪切板内的文本数据项 948 * @tc.type Function 949 * @tc.require AR000H5I1D 950 */ 951 it('pasteboard_promise_test35', 0, async function (done) { 952 const systemPasteboard = pasteboard.getSystemPasteboard(); 953 await systemPasteboard.clearData(); 954 const textData35 = 'Hello World!'; 955 const pasteData = pasteboard.createPlainTextData(textData35); 956 await systemPasteboard.setPasteData(pasteData); 957 const res35 = await systemPasteboard.hasPasteData(); 958 expect(res35).assertEqual(true); 959 const pasteData35 = await systemPasteboard.getPasteData(); 960 expect(pasteData35.getRecordCount()).assertEqual(1); 961 await systemPasteboard.clearData(); 962 systemPasteboard.getPasteData().then((data) => { 963 const recordCount35 = data.getRecordCount(); 964 expect(recordCount35).assertEqual(0); 965 done(); 966 }); 967 }); 968 969 /** 970 * @tc.name pasteboard_promise_test36 971 * @tc.desc 清除剪切板内的uri数据项 972 * @tc.type Function 973 * @tc.require AR000H5I1D 974 */ 975 it('pasteboard_promise_test36', 0, async function (done) { 976 const systemPasteboard = pasteboard.getSystemPasteboard(); 977 await systemPasteboard.clearData(); 978 const uriText36 = 'https://www.baidu.com/'; 979 const pasteData = pasteboard.createUriData(uriText36); 980 await systemPasteboard.setPasteData(pasteData); 981 const res36 = await systemPasteboard.hasPasteData(); 982 expect(res36).assertEqual(true); 983 const pasteData36 = await systemPasteboard.getPasteData(); 984 expect(pasteData36.getRecordCount()).assertEqual(1); 985 await systemPasteboard.clearData(); 986 systemPasteboard.getPasteData().then((data) => { 987 const recordCount36 = data.getRecordCount(); 988 expect(recordCount36).assertEqual(0); 989 done(); 990 }); 991 }); 992 993 /** 994 * @tc.name pasteboard_promise_test37 995 * @tc.desc 清除剪切板内的html数据项 996 * @tc.type Function 997 * @tc.require AR000H5I1D 998 */ 999 it('pasteboard_promise_test37', 0, async function (done) { 1000 const systemPasteboard = pasteboard.getSystemPasteboard(); 1001 await systemPasteboard.clearData(); 1002 const htmlText37 = '<html><head></head><body>Hello World!</body></html>'; 1003 const pasteData = pasteboard.createHtmlData(htmlText37); 1004 await systemPasteboard.setPasteData(pasteData); 1005 const res37 = await systemPasteboard.hasPasteData(); 1006 expect(res37).assertEqual(true); 1007 const pasteData37 = await systemPasteboard.getPasteData(); 1008 expect(pasteData37.getRecordCount()).assertEqual(1); 1009 await systemPasteboard.clearData(); 1010 systemPasteboard.getPasteData().then((data) => { 1011 const recordCount37 = data.getRecordCount(); 1012 expect(recordCount37).assertEqual(0); 1013 done(); 1014 }); 1015 }); 1016 1017 /** 1018 * @tc.name pasteboard_promise_test38 1019 * @tc.desc 清除剪切板内的want数据项 1020 * @tc.type Function 1021 * @tc.require AR000H5I1D 1022 */ 1023 it('pasteboard_promise_test38', 0, async function (done) { 1024 const systemPasteboard = pasteboard.getSystemPasteboard(); 1025 await systemPasteboard.clearData(); 1026 const myWant38 = { 1027 bundleName: 'com.example.myapplication55', 1028 abilityName: 'com.example.myapplication55.MainAbility', 1029 }; 1030 const pasteData381 = pasteboard.createWantData(myWant38); 1031 await systemPasteboard.setPasteData(pasteData381); 1032 const res38 = await systemPasteboard.hasPasteData(); 1033 expect(res38).assertEqual(true); 1034 const pasteData38 = await systemPasteboard.getPasteData(); 1035 expect(pasteData38.getRecordCount()).assertEqual(1); 1036 await systemPasteboard.clearData(); 1037 systemPasteboard.getPasteData().then((data) => { 1038 const recordCount38 = data.getRecordCount(); 1039 expect(recordCount38).assertEqual(0); 1040 done(); 1041 }); 1042 }); 1043 1044 /** 1045 * @tc.name pasteboard_promise_test39 1046 * @tc.desc 向剪切板内增加30条数据项,然后清除 1047 * @tc.type Function 1048 * @tc.require AR000H5I1D 1049 */ 1050 it('pasteboard_promise_test39', 0, async function (done) { 1051 const systemPasteboard = pasteboard.getSystemPasteboard(); 1052 await systemPasteboard.clearData(); 1053 const textData390 = 'Hello World!'; 1054 const pasteData = pasteboard.createPlainTextData(textData390); 1055 let textData39 = ''; 1056 for (let i = 1; i < 30; i++) { 1057 textData39 = 'Hello World'; 1058 textData39 = textData39 + i; 1059 pasteData.addTextRecord(textData39); 1060 } 1061 await systemPasteboard.setPasteData(pasteData); 1062 const res39 = await systemPasteboard.hasPasteData(); 1063 expect(res39).assertEqual(true); 1064 const pasteData39 = await systemPasteboard.getPasteData(); 1065 expect(pasteData39.getRecordCount()).assertEqual(30); 1066 await systemPasteboard.clearData(); 1067 systemPasteboard.getPasteData().then((data) => { 1068 const recordCount39 = data.getRecordCount(); 1069 expect(recordCount39).assertEqual(0); 1070 done(); 1071 }); 1072 }); 1073 1074 /** 1075 * @tc.name pasteboard_promise_test40 1076 * @tc.desc 向剪贴板数据各增加5条文本、uri、html数据,然后清除 1077 * @tc.type Function 1078 * @tc.require AR000H5I1D 1079 */ 1080 it('pasteboard_promise_test40', 0, async function (done) { 1081 const systemPasteboard = pasteboard.getSystemPasteboard(); 1082 await systemPasteboard.clearData(); 1083 const textData400 = 'Hello World0'; 1084 const pasteData = pasteboard.createPlainTextData(textData400); 1085 let textData40 = ''; 1086 for (let i = 1; i < 5; i++) { 1087 textData40 = 'Hello World'; 1088 textData40 = textData40 + i; 1089 pasteData.addTextRecord(textData40); 1090 } 1091 let htmlText40 = ''; 1092 for (let i = 0; i < 5; i++) { 1093 htmlText40 = '<html><head></head><body>Hello World!</body></html>'; 1094 htmlText40 = htmlText40 + i; 1095 pasteData.addHtmlRecord(htmlText40); 1096 } 1097 let uriText40 = ''; 1098 for (let i = 0; i < 5; i++) { 1099 uriText40 = 'https://www.baidu.com/'; 1100 uriText40 = uriText40 + i; 1101 pasteData.addUriRecord(uriText40); 1102 } 1103 await systemPasteboard.setPasteData(pasteData); 1104 const res40 = await systemPasteboard.hasPasteData(); 1105 expect(res40).assertEqual(true); 1106 const data40 = await systemPasteboard.getPasteData(); 1107 expect(data40.getRecordCount()).assertEqual(15); 1108 await systemPasteboard.clearData(); 1109 systemPasteboard.getPasteData().then((data) => { 1110 const recordCount40 = data.getRecordCount(); 1111 expect(recordCount40).assertEqual(0); 1112 done(); 1113 }); 1114 }); 1115 1116 /** 1117 * @tc.name pasteboard_promise_test41 1118 * @tc.desc 更新剪贴板数据,查询剪贴板存在剪贴板数据 1119 * @tc.type Function 1120 * @tc.require AR000HEECD 1121 */ 1122 it('pasteboard_promise_test41', 0, async function (done) { 1123 const systemPasteboard = pasteboard.getSystemPasteboard(); 1124 await systemPasteboard.clearData(); 1125 const textData41 = 'Hello World!'; 1126 const pasteData = pasteboard.createPlainTextData(textData41); 1127 await systemPasteboard.setPasteData(pasteData); 1128 const res41 = await systemPasteboard.hasPasteData(); 1129 expect(res41).assertEqual(true); 1130 const pasteData41 = await systemPasteboard.getPasteData(); 1131 expect(pasteData41.getRecordCount()).assertEqual(1); 1132 const textData411 = 'Hello World1'; 1133 const pasteDataRecord = pasteboard.createPlainTextRecord(textData411); 1134 const replace41 = pasteData41.replaceRecordAt(0, pasteDataRecord); 1135 expect(replace41).assertEqual(true); 1136 await systemPasteboard.setPasteData(pasteData41); 1137 systemPasteboard.hasPasteData().then(async (data) => { 1138 expect(data).assertEqual(true); 1139 const newData41 = await systemPasteboard.getPasteData(); 1140 expect(newData41.getPrimaryText()).assertEqual(textData411); 1141 const newPasteDataRecord = newData41.getRecordAt(0); 1142 expect(newPasteDataRecord.plainText).assertEqual(textData411); 1143 done(); 1144 }); 1145 }); 1146 1147 /** 1148 * @tc.name pasteboard_promise_test42 1149 * @tc.desc 删除所有的剪贴板数据,查询剪贴板不存在剪贴板数据 1150 * @tc.type Function 1151 * @tc.require AR000HEECD 1152 */ 1153 it('pasteboard_promise_test42', 0, async function (done) { 1154 const systemPasteboard = pasteboard.getSystemPasteboard(); 1155 await systemPasteboard.clearData(); 1156 const textData42 = 'Hello World!'; 1157 const data42 = pasteboard.createPlainTextData(textData42); 1158 await systemPasteboard.setPasteData(data42); 1159 const res42 = await systemPasteboard.hasPasteData(); 1160 expect(res42).assertEqual(true); 1161 const pasteData42 = await systemPasteboard.getPasteData(); 1162 const recordCount = pasteData42.getRecordCount(); 1163 expect(recordCount).assertEqual(1); 1164 expect(pasteData42.removeRecordAt(0)).assertEqual(true); 1165 expect(pasteData42.getRecordCount()).assertEqual(0); 1166 const newData42 = await systemPasteboard.getPasteData(); 1167 expect(newData42.getRecordCount()).assertEqual(1); 1168 done(); 1169 }); 1170 1171 /** 1172 * @tc.name pasteboard_promise_test43 1173 * @tc.desc 将文本数据强制转换为文本 1174 * @tc.type Function 1175 * @tc.require AR000HEECD 1176 */ 1177 it('pasteboard_promise_test43', 0, async function (done) { 1178 const systemPasteboard = pasteboard.getSystemPasteboard(); 1179 await systemPasteboard.clearData(); 1180 const textData43 = 'Hello World!'; 1181 const pasteData = pasteboard.createPlainTextData(textData43); 1182 await systemPasteboard.setPasteData(pasteData); 1183 const res43 = await systemPasteboard.hasPasteData(); 1184 expect(res43).assertEqual(true); 1185 systemPasteboard.getPasteData().then(async (data) => { 1186 const pasteData143 = data; 1187 expect(pasteData143.getRecordCount()).assertEqual(1); 1188 const pasteDataRecord = pasteData143.getRecordAt(0); 1189 const text43 = await pasteDataRecord.convertToText(); 1190 expect(text43).assertEqual(textData43); 1191 done(); 1192 }); 1193 }); 1194 1195 /** 1196 * @tc.name pasteboard_promise_test44 1197 * @tc.desc 将一条含有特殊字符、中英混杂的文本数据强制转换为文本 1198 * @tc.type Function 1199 * @tc.require AR000HEECD 1200 */ 1201 it('pasteboard_promise_test44', 0, async function (done) { 1202 const systemPasteboard = pasteboard.getSystemPasteboard(); 1203 await systemPasteboard.clearData(); 1204 const textData44 = 'Hello 中国!@#$%^&*()_+{}?.'; 1205 const pasteData = pasteboard.createPlainTextData(textData44); 1206 await systemPasteboard.setPasteData(pasteData); 1207 const res44 = await systemPasteboard.hasPasteData(); 1208 expect(res44).assertEqual(true); 1209 const pasteData44 = await systemPasteboard.getPasteData(); 1210 expect(pasteData44.getRecordCount()).assertEqual(1); 1211 const pasteDataRecord = pasteData44.getRecordAt(0); 1212 pasteDataRecord.convertToText((err, text) => { 1213 if (err) { 1214 console.info('f_test44 pasteDataRecord.convertToText error: ' + error); 1215 } else { 1216 expect(textData44).assertEqual(text); 1217 done(); 1218 } 1219 }); 1220 }); 1221 1222 /** 1223 * @tc.name pasteboard_promise_test45 1224 * @tc.desc 将一条超长文本数据 (大小为301K)强制转换为文本 1225 * @tc.type Function 1226 * @tc.require AR000HEECD 1227 */ 1228 it('pasteboard_promise_test45', 0, async function (done) { 1229 const systemPasteboard = pasteboard.getSystemPasteboard(); 1230 await systemPasteboard.clearData(); 1231 let textData45 = ''; 1232 for (let i = 0; i < 301; i++) { 1233 textData45 = textData45 + 'A'; 1234 } 1235 const pasteData = pasteboard.createPlainTextData(textData45); 1236 await systemPasteboard.setPasteData(pasteData); 1237 const res45 = await systemPasteboard.hasPasteData(); 1238 expect(res45).assertEqual(true); 1239 const pasteData45 = await systemPasteboard.getPasteData(); 1240 expect(pasteData45.getRecordCount()).assertEqual(1); 1241 const pasteDataRecord = pasteData45.getRecordAt(0); 1242 pasteDataRecord.convertToText((err, text) => { 1243 if (err) { 1244 console.info('f_test45 pasteDataRecord.convertToText error: ' + error); 1245 } else { 1246 expect(textData45).assertEqual(text); 1247 done(); 1248 } 1249 }); 1250 }); 1251 1252 /** 1253 * @tc.name pasteboard_promise_test46 1254 * @tc.desc 将uri数据强制转换为文本 1255 * @tc.type Function 1256 * @tc.require AR000HEECD 1257 */ 1258 it('pasteboard_promise_test46', 0, async function (done) { 1259 const systemPasteboard = pasteboard.getSystemPasteboard(); 1260 await systemPasteboard.clearData(); 1261 const uriText46 = 'https://www.baidu.com/'; 1262 const pasteData = pasteboard.createUriData(uriText46); 1263 await systemPasteboard.setPasteData(pasteData); 1264 const res46 = await systemPasteboard.hasPasteData(); 1265 expect(res46).assertEqual(true); 1266 let pasteData46 = await systemPasteboard.getPasteData(); 1267 expect(pasteData46.getRecordCount()).assertEqual(1); 1268 let pasteDataRecord = pasteData46.getRecordAt(0); 1269 pasteDataRecord 1270 .convertToText() 1271 .then((text) => { 1272 expect(uriText46).assertEqual(text); 1273 done(); 1274 }) 1275 .catch((error) => { 1276 console.info('f_test46 pasteDataRecord.convertToText error: ' + error); 1277 }); 1278 }); 1279 1280 /** 1281 * @tc.name pasteboard_promise_test47 1282 * @tc.desc 复制文本、uri格式 1283 * @tc.type Function 1284 * @tc.require AR000HEECD 1285 */ 1286 it('pasteboard_promise_test47', 0, async function (done) { 1287 const systemPasteboard = pasteboard.getSystemPasteboard(); 1288 await systemPasteboard.clearData(); 1289 const textData470 = 'Hello World0'; 1290 const pasteData = pasteboard.createPlainTextData(textData470); 1291 const uriText47 = pasteboard.createUriRecord('https://www.baidu.com/'); 1292 pasteData.addRecord(uriText47); 1293 await systemPasteboard.setPasteData(pasteData); 1294 const res47 = await systemPasteboard.hasPasteData(); 1295 expect(res47).assertEqual(true); 1296 systemPasteboard.getPasteData().then((data) => { 1297 const recordCount47 = data.getRecordCount(); 1298 expect(recordCount47).assertEqual(2); 1299 const pasteDataRecord1 = data.getRecordAt(0); 1300 const pasteDataRecord2 = data.getRecordAt(1); 1301 expect(pasteDataRecord1.uri).assertEqual(uriText47.uri); 1302 expect(pasteDataRecord2.plainText).assertEqual(textData470); 1303 done(); 1304 }); 1305 }); 1306 1307 /** 1308 * @tc.name pasteboard_promise_test48 1309 * @tc.desc 关闭内容变化通知功能:向剪贴板数据增加、删除等html数据项 1310 * @tc.type Function 1311 * @tc.require AR000HEECD 1312 */ 1313 it('pasteboard_promise_test48', 0, async function (done) { 1314 const systemPasteboard = pasteboard.getSystemPasteboard(); 1315 await systemPasteboard.clearData(); 1316 systemPasteboard.off('update', contentChanges); 1317 const htmlText48 = '<html><head></head><body>Hello World!</body></html>'; 1318 const pasteData = pasteboard.createHtmlData(htmlText48); 1319 await systemPasteboard.setPasteData(pasteData); 1320 const res48 = await systemPasteboard.hasPasteData(); 1321 expect(res48).assertEqual(true); 1322 systemPasteboard.getPasteData().then((data) => { 1323 expect(data.getRecordCount()).assertEqual(1); 1324 expect(data.removeRecordAt(0)).assertEqual(true); 1325 expect(data.getRecordCount()).assertEqual(0); 1326 done(); 1327 }); 1328 }); 1329 1330 /** 1331 * @tc.name pasteboard_promise_test49 1332 * @tc.desc 创建pixelMap 1333 * @tc.type Function 1334 * @tc.require AR000HEECD 1335 */ 1336 it('pasteboard_promise_test49', 0, async function (done) { 1337 const systemPasteboard = pasteboard.getSystemPasteboard(); 1338 await systemPasteboard.clearData(); 1339 const buffer49 = new ArrayBuffer(128); 1340 const opt49 = { 1341 size: { height: 5, width: 5 }, 1342 pixelFormat: 3, 1343 editable: true, 1344 alphaType: 1, 1345 scaleMode: 1, 1346 }; 1347 const pixelMap = await image.createPixelMap(buffer49, opt49); 1348 expect(pixelMap.getPixelBytesNumber()).assertEqual(100); 1349 const pasteData49 = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 1350 await systemPasteboard.setPasteData(pasteData49); 1351 const res49 = await systemPasteboard.hasPasteData(); 1352 expect(res49).assertEqual(true); 1353 systemPasteboard.getPasteData().then(async (newPasteData) => { 1354 const recordCount49 = newPasteData.getRecordCount(); 1355 expect(recordCount49).assertEqual(1); 1356 const newPixelMap49 = newPasteData.getPrimaryPixelMap(); 1357 const PixelMapBytesNumber = newPixelMap49.getPixelBytesNumber(); 1358 expect(PixelMapBytesNumber).assertEqual(100); 1359 const imageInfo = await newPixelMap49.getImageInfo(); 1360 expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true); 1361 done(); 1362 }); 1363 }); 1364 1365 /** 1366 * @tc.name pasteboard_promise_test50 1367 * @tc.desc 创建kv Record 1368 * @tc.type Function 1369 * @tc.require AR000HEECD 1370 */ 1371 it('pasteboard_promise_test50', 0, async function (done) { 1372 const systemPasteboard = pasteboard.getSystemPasteboard(); 1373 await systemPasteboard.clearData(); 1374 const dataXml50 = new ArrayBuffer(512); 1375 let int32view50 = new Int32Array(dataXml50); 1376 for (let i = 0; i < int32view50.length; i++) { 1377 int32view50[i] = 65535 + i; 1378 } 1379 const pasteDataRecord = pasteboard.createRecord('app/xml', dataXml50); 1380 const dataJpg50 = new ArrayBuffer(256); 1381 pasteDataRecord.data['image/ipg'] = dataJpg50; 1382 const pasteData50 = pasteboard.createHtmlData('application/xml'); 1383 const replace = pasteData50.replaceRecordAt(0, pasteDataRecord); 1384 expect(replace).assertEqual(true); 1385 await systemPasteboard.setPasteData(pasteData50); 1386 const res50 = await systemPasteboard.hasPasteData(); 1387 expect(res50).assertEqual(true); 1388 systemPasteboard.getPasteData().then((newPasteData) => { 1389 const recordCount50 = newPasteData.getRecordCount(); 1390 expect(recordCount50).assertEqual(1); 1391 let newPasteDataRecord = newPasteData.getRecordAt(0); 1392 let newAppXml50 = newPasteDataRecord.data['app/xml']; 1393 let newImageIpg50 = newPasteDataRecord.data['image/ipg']; 1394 expect(newAppXml50.byteLength === 512 && newImageIpg50.byteLength === 256).assertEqual(true); 1395 let newAppXmlView50 = new Int32Array(newAppXml50); 1396 let newImageIpgView50 = new Int32Array(newImageIpg50); 1397 for (let i = 0; i < newAppXmlView50.length; i++) { 1398 console.info('newAppXml[' + i + '] = ' + newAppXmlView50[i]); 1399 } 1400 for (let i = 0; i < newImageIpgView50.length; i++) { 1401 console.info('newImageIpg[' + i + '] = ' + newImageIpg50[i]); 1402 } 1403 done(); 1404 }); 1405 }); 1406 1407 /** 1408 * @tc.name pasteboard_promise_test51 1409 * @tc.desc 测试addPixelMapRecord 1410 * @tc.type Function 1411 * @tc.require AR000HEECD 1412 */ 1413 it('pasteboard_promise_test51', 0, async function (done) { 1414 const systemPasteboard = pasteboard.getSystemPasteboard(); 1415 await systemPasteboard.clearData(); 1416 const buffer51 = new ArrayBuffer(128); 1417 const opt51 = { 1418 size: { height: 5, width: 5 }, 1419 pixelFormat: 3, 1420 editable: true, 1421 alphaType: 1, 1422 scaleMode: 1, 1423 }; 1424 const pasteData51 = pasteboard.createHtmlData('application/xml'); 1425 const pixelMap = await image.createPixelMap(buffer51, opt51); 1426 expect(pixelMap.getPixelBytesNumber() === 100).assertEqual(true); 1427 pasteData51.addRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 1428 await systemPasteboard.setPasteData(pasteData51); 1429 const res51 = await systemPasteboard.hasPasteData(); 1430 expect(res51).assertEqual(true); 1431 systemPasteboard.getPasteData().then(async (newPasteData) => { 1432 const recordCount51 = newPasteData.getRecordCount(); 1433 expect(recordCount51).assertEqual(2); 1434 const newPixelMap51 = newPasteData.getPrimaryPixelMap(); 1435 const PixelMapBytesNumber51 = newPixelMap51.getPixelBytesNumber(); 1436 expect(PixelMapBytesNumber51).assertEqual(100); 1437 const newHtmlData51 = newPasteData.getRecordAt(1); 1438 expect(newHtmlData51.htmlText).assertEqual('application/xml'); 1439 const imageInfo51 = await newPixelMap51.getImageInfo(); 1440 expect(imageInfo51.size.height === 5 && imageInfo51.size.width === 5).assertEqual(true); 1441 done(); 1442 }); 1443 }); 1444 1445 /** 1446 * @tc.name pasteboard_promise_test52 1447 * @tc.desc 支持512个record 1448 * @tc.type Function 1449 * @tc.require AR000HEECB 1450 */ 1451 it('pasteboard_promise_test52', 0, async function (done) { 1452 const systemPasteboard = pasteboard.getSystemPasteboard(); 1453 await systemPasteboard.clearData(); 1454 const dataHtml52 = new ArrayBuffer(256); 1455 const htmlText52 = '<html><head></head><body>Hello!</body></html>'; 1456 const uriText52 = 'https://www.baidu.com/'; 1457 const wantText52 = { 1458 bundleName: 'com.example.myapplication3', 1459 abilityName: 'com.example.myapplication3.MainAbility', 1460 }; 1461 const plainText52 = ''; 1462 const pasteData52 = pasteboard.createData('x'.repeat(1024), dataHtml52); 1463 const record52 = pasteData52.getRecordAt(0); 1464 record52.htmlText = htmlText52; 1465 record52.plainText = plainText52; 1466 record52.uri = uriText52; 1467 record52.want = wantText52; 1468 const buffer52 = new ArrayBuffer(128); 1469 const opt52 = { 1470 size: { height: 5, width: 5 }, 1471 pixelFormat: 3, 1472 editable: true, 1473 alphaType: 1, 1474 scaleMode: 1, 1475 }; 1476 const pixelMap = await image.createPixelMap(buffer52, opt52); 1477 record52.pixelMap = pixelMap; 1478 pasteData52.replaceRecordAt(0, record52); 1479 for (let i = 0; i < 511; i++) { 1480 pasteData52.addRecord(record52); 1481 } 1482 await systemPasteboard.setPasteData(pasteData52); 1483 const res52 = await systemPasteboard.hasPasteData(); 1484 expect(res52).assertTrue(); 1485 systemPasteboard.getPasteData().then((data) => { 1486 expect(data.getRecordCount()).assertEqual(512); 1487 expect(data.getRecordAt(0).mimeType).assertEqual('x'.repeat(1024)); 1488 expect(data.getPrimaryWant().bundleName).assertEqual(wantText52.bundleName); 1489 expect(data.getRecordAt(253).htmlText).assertEqual(htmlText52); 1490 expect(data.getRecordAt(511).plainText).assertEqual(plainText52); 1491 done(); 1492 }); 1493 }); 1494 1495 /** 1496 * @tc.name pasteboard_promise_test53 1497 * @tc.desc html 1498 * @tc.type Function 1499 * @tc.require AR000H5HVI 1500 */ 1501 it('pasteboard_promise_test53', 0, async function (done) { 1502 const systemPasteboard = pasteboard.getSystemPasteboard(); 1503 await systemPasteboard.clearData(); 1504 const textData = "<!DOCTYPE html><html><head><title>" + 1505 "的厚爱hi哦</title></head><body><h2>恶风无关痛痒和</h2>" + 1506 "<p>Greg任何人https://exampsaole.com问我的<a href=\"https://exaeqdwerfmple.com\">" + 1507 "如果qwiuyhw@huedqw.dsh站</a>。</p></body></html>"; 1508 const pasteData = pasteboard.createHtmlData(textData); 1509 await systemPasteboard.setPasteData(pasteData); 1510 const res = await systemPasteboard.hasPasteData(); 1511 expect(res).assertEqual(true); 1512 const patterns = [pasteboard.Pattern.EMAIL_ADDRESS, pasteboard.Pattern.NUMBER]; 1513 systemPasteboard.detectPatterns(patterns).then((data) => { 1514 const patternsRight = [pasteboard.Pattern.EMAIL_ADDRESS]; 1515 expect(data.sort().join('')).assertEqual(patternsRight.sort().join('')); 1516 done(); 1517 }).catch((error)=>{ 1518 console.error('promise_test53: systemPasteboard.detectPatterns promise error:' + error.message); 1519 return; 1520 }); 1521 }); 1522 1523 /** 1524 * @tc.name pasteboard_promise_test54 1525 * @tc.desc plaintext 1526 * @tc.type Function 1527 * @tc.require AR000H5HVI 1528 */ 1529 it('pasteboard_promise_test54', 0, async function (done) { 1530 const systemPasteboard = pasteboard.getSystemPasteboard(); 1531 await systemPasteboard.clearData(); 1532 const textData = "部分人的十点半:\n" + 1533 "「而飞过海」\n" + 1534 "方法:\n" + 1535 "https://pr5yyye-drseyive.u54yk.cwerfe/s/42e1ewed77f3dab4" + 1536 "网gest加尔文iqru发的我ui哦计划任务i文化人:\n" + 1537 "~b0043fg3423tddj~"; 1538 const pasteData = pasteboard.createPlainTextData(textData); 1539 await systemPasteboard.setPasteData(pasteData); 1540 const res = await systemPasteboard.hasPasteData(); 1541 expect(res).assertEqual(true); 1542 const patterns = [pasteboard.Pattern.EMAIL_ADDRESS, 1543 pasteboard.Pattern.URL, pasteboard.Pattern.NUMBER]; 1544 systemPasteboard.detectPatterns(patterns).then((data) => { 1545 const patternsRight = [pasteboard.Pattern.NUMBER, pasteboard.Pattern.URL]; 1546 expect(data.sort().join('')).assertEqual(patternsRight.sort().join('')); 1547 done(); 1548 }).catch((error)=>{ 1549 console.error('promise_test54: systemPasteboard.detectPatterns promise error:' + error.message); 1550 return; 1551 }); 1552 }); 1553 1554 /** 1555 * @tc.name pasteboard_promise_test55 1556 * @tc.desc Add html with local uri 1557 * @tc.type Function 1558 * @tc.require AR000H5HVI 1559 */ 1560 it('pasteboard_promise_test55', 0, async function (done) { 1561 const systemPasteboard = pasteboard.getSystemPasteboard(); 1562 await systemPasteboard.clearData(); 1563 const htmlText5 = "<html><head></head><body><div class='item'><img " + 1564 "src='file:///com.example.webview/data/storage/el1/base/test.png'></div></body></html>"; 1565 const pasteData = pasteboard.createHtmlData(htmlText5); 1566 await systemPasteboard.setPasteData(pasteData); 1567 const res5 = await systemPasteboard.hasPasteData(); 1568 expect(res5).assertEqual(true); 1569 systemPasteboard.getPasteData().then((data) => { 1570 const pasteData5 = data; 1571 expect(pasteData5.getRecordCount()).assertEqual(1); 1572 const primaryHtml6 = pasteData5.getPrimaryHtml(); 1573 expect(primaryHtml6).assertEqual(htmlText5); 1574 expect(pasteData5.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 1575 expect(pasteData5.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 1576 done(); 1577 }); 1578 }); 1579 1580 /** 1581 * @tc.name pasteboard_promise_test56 1582 * @tc.desc Add html with distributed uri 1583 * @tc.type Function 1584 * @tc.require AR000H5HVI 1585 */ 1586 it('pasteboard_promise_test56', 0, async function (done) { 1587 const systemPasteboard = pasteboard.getSystemPasteboard(); 1588 await systemPasteboard.clearData(); 1589 const htmlText5 = "<html><head></head><body><div class='item'><img src='file://com.byy.testdpb/data/storage/el2/" + 1590 "distributedfiles/.remote_share/data/storage/el2/base/haps/entry/cache/t1.jpg'></div></body></html>"; 1591 const pasteData = pasteboard.createHtmlData(htmlText5); 1592 await systemPasteboard.setPasteData(pasteData); 1593 const res5 = await systemPasteboard.hasPasteData(); 1594 expect(res5).assertEqual(true); 1595 systemPasteboard.getPasteData().then((data) => { 1596 const pasteData5 = data; 1597 expect(pasteData5.getRecordCount()).assertEqual(1); 1598 const primaryHtml6 = pasteData5.getPrimaryHtml(); 1599 expect(primaryHtml6).assertEqual(htmlText5); 1600 expect(pasteData5.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 1601 expect(pasteData5.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 1602 done(); 1603 }); 1604 }); 1605 1606 /** 1607 * @tc.name pasteboard_promise_test57 1608 * @tc.desc Add html with uris 1609 * @tc.type Function 1610 * @tc.require AR000H5HVI 1611 */ 1612 it('pasteboard_promise_test57', 0, async function (done) { 1613 const systemPasteboard = pasteboard.getSystemPasteboard(); 1614 await systemPasteboard.clearData(); 1615 const htmlText5 = "<html><head></head><body><div class='item'><img src='file://com.byy.testdpb/data/storage/el2/" + 1616 "distributedfiles/.remote_share/data/storage/el2/base/haps/entry/cache/t1.jpg'></div>" + 1617 "<div class='item'><img src='file:///com.example.webview/data/storage/el1/base/test.png'></div></body></html>"; 1618 const pasteData = pasteboard.createHtmlData(htmlText5); 1619 await systemPasteboard.setPasteData(pasteData); 1620 const res5 = await systemPasteboard.hasPasteData(); 1621 expect(res5).assertEqual(true); 1622 systemPasteboard.getPasteData().then((data) => { 1623 const pasteData5 = data; 1624 expect(pasteData5.getRecordCount()).assertEqual(1); 1625 const primaryHtml6 = pasteData5.getPrimaryHtml(); 1626 expect(primaryHtml6).assertEqual(htmlText5); 1627 expect(pasteData5.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 1628 expect(pasteData5.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 1629 done(); 1630 }); 1631 }); 1632 1633 /** 1634 * @tc.name pasteboard_promise_test58 1635 * @tc.desc test addEntry and getData 1636 * @tc.type Function 1637 * @tc.require AR000HEECD 1638 */ 1639 it('pasteboard_promise_test58', 0, async function (done) { 1640 const htmlText = "<html><head></head><body>Hello World!</body></html>"; 1641 const plainData = "Hello World!"; 1642 const uriText = "https://www.AACCSVDSVSDV.com/"; 1643 const buffer58 = new ArrayBuffer(128); 1644 const opt58 = { 1645 size: { height: 5, width: 5 }, 1646 pixelFormat: 3, 1647 editable: true, 1648 alphaType: 1, 1649 scaleMode: 1, 1650 }; 1651 const pixelMap = await image.createPixelMap(buffer58, opt58); 1652 const pasteRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText); 1653 pasteRecord.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, plainData); 1654 pasteRecord.addEntry(pasteboard.MIMETYPE_TEXT_URI, uriText); 1655 pasteRecord.addEntry(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 1656 1657 const html = await pasteRecord.getData(pasteboard.MIMETYPE_TEXT_HTML); 1658 expect(html.toString()).assertEqual(htmlText.toString()); 1659 const plain = await pasteRecord.getData(pasteboard.MIMETYPE_TEXT_PLAIN); 1660 expect(plain.toString()).assertEqual(plainData.toString()); 1661 const uri = await pasteRecord.getData(pasteboard.MIMETYPE_TEXT_URI); 1662 expect(uri.toString()).assertEqual(uriText.toString()); 1663 const pixel = await pasteRecord.getData(pasteboard.MIMETYPE_PIXELMAP); 1664 const PixelMapBytesNumber = pixel.getPixelBytesNumber(); 1665 expect(PixelMapBytesNumber).assertEqual(100); 1666 const imageInfo = await pixel.getImageInfo(); 1667 expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true); 1668 1669 done(); 1670 }); 1671 1672 1673 /** 1674 * @tc.name pasteboard_promise_test59 1675 * @tc.desc Single style with createData(Record) function. 1676 * @tc.type Function 1677 * @tc.require API 14 1678 */ 1679 it('pasteboard_promise_test59', 0, async function (done) { 1680 const systemPasteboard = pasteboard.getSystemPasteboard(); 1681 await systemPasteboard.clearData(); 1682 1683 let inputData = 'Hello world.'; 1684 let outputData = await copyPasteWithRecord(pasteboard.MIMETYPE_TEXT_PLAIN, inputData, systemPasteboard); 1685 expect(outputData).assertEqual(inputData); 1686 1687 inputData = '<p>Hello world.</p>'; 1688 outputData = await copyPasteWithRecord(pasteboard.MIMETYPE_TEXT_HTML, inputData, systemPasteboard); 1689 expect(outputData).assertEqual(inputData); 1690 1691 inputData = 'file://abc/def.png'; 1692 outputData = await copyPasteWithRecord(pasteboard.MIMETYPE_TEXT_URI, inputData, systemPasteboard); 1693 expect(outputData).assertEqual(inputData); 1694 1695 let inputWant = { 1696 deviceId: '', 1697 bundleName: 'test.bundle.name', 1698 abilityName: 'test.ability,name', 1699 moduleName: 'test.module.name', 1700 }; 1701 outputData = await copyPasteWithRecord(pasteboard.MIMETYPE_TEXT_WANT, inputWant, systemPasteboard); 1702 expect(outputData.bundleName).assertEqual(inputWant.bundleName); 1703 1704 let inputPixelMap = await buildPixelMap(); 1705 outputData = await copyPasteWithRecord(pasteboard.MIMETYPE_PIXELMAP, inputPixelMap, systemPasteboard); 1706 expect(outputData.getImageInfoSync().size.width).assertEqual(inputPixelMap.getImageInfoSync().size.width); 1707 expect(outputData.getImageInfoSync().size.height).assertEqual(inputPixelMap.getImageInfoSync().size.height); 1708 1709 let inputArrayBuffer = string2ArrayBuffer('Hello world.'); 1710 outputData = await copyPasteWithRecord('my-mime-type', inputArrayBuffer, systemPasteboard); 1711 expect(outputData.toString()).assertEqual(inputArrayBuffer.toString()); 1712 1713 await systemPasteboard.clearData(); 1714 done(); 1715 }); 1716 1717 /** 1718 * @tc.name pasteboard_promise_test60 1719 * @tc.desc Multi style with createData(Record) function. 1720 * @tc.type Function 1721 * @tc.require API 14 1722 */ 1723 it('pasteboard_promise_test60', 0, async function (done) { 1724 const systemPasteboard = pasteboard.getSystemPasteboard(); 1725 await systemPasteboard.clearData(); 1726 1727 let record = await initRecordData(); 1728 await systemPasteboard.setData(pasteboard.createData(record)); 1729 1730 systemPasteboard.getData().then(async (outputData) => { 1731 const recordCount = outputData.getRecordCount(); 1732 console.log('actual recordCount: ' + recordCount); 1733 expect(recordCount).assertEqual(1); 1734 1735 const outRecord = outputData.getRecord(0); 1736 const outTypes = outRecord.getValidTypes(allTypes); 1737 console.log('outTypes: ' + outTypes.toString()); 1738 1739 for (const type of outTypes) { 1740 console.log('check type: ' + type); 1741 const outValue = await outRecord.getData(type); 1742 expect(outValue != null).assertTrue(); 1743 const inValue = record[type]; 1744 if (type === pasteboard.MIMETYPE_TEXT_WANT) { 1745 console.log('actual bundleName: ' + outValue.bundleName); 1746 expect(outValue.bundleName.length > 0).assertTrue(); 1747 } else if (type === pasteboard.MIMETYPE_PIXELMAP) { 1748 expect(outValue !== null && outValue !== undefined).assertTrue(); 1749 } else { 1750 console.log('type: ' + type + ', actual strValue: ' + outValue.toString() + ', expect strValue: ' + inValue.toString()); 1751 expect(outValue.toString()).assertEqual(inValue.toString()); 1752 } 1753 } 1754 1755 await systemPasteboard.clearData(); 1756 done(); 1757 }); 1758 }); 1759 1760 /** 1761 * @tc.name pasteboard_promise_test61 1762 * @tc.desc Multi style with addEntry function. 1763 * @tc.type Function 1764 * @tc.require API 14 1765 */ 1766 it('pasteboard_promise_test61', 0, async function (done) { 1767 const systemPasteboard = pasteboard.getSystemPasteboard(); 1768 await systemPasteboard.clearData(); 1769 1770 let record = await initRecordData(); 1771 let recordTmp = await initRecordData('temp'); 1772 1773 let inData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, 'temp value'); 1774 1775 for (const item of Object.entries(record)) { 1776 if (item[0] === pasteboard.MIMETYPE_TEXT_PLAIN) { 1777 continue; 1778 } 1779 let inRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_PLAIN, recordTmp[pasteboard.MIMETYPE_TEXT_PLAIN]); 1780 inRecord.addEntry(pasteboard.MIMETYPE_TEXT_PLAIN, record[pasteboard.MIMETYPE_TEXT_PLAIN]); 1781 inRecord.addEntry(item[0], recordTmp[item[0]]); 1782 inRecord.addEntry(item[0], item[1]); 1783 inData.replaceRecord(0, inRecord); 1784 await systemPasteboard.setData(inData); 1785 1786 console.log('copy success'); 1787 const outputData = await systemPasteboard.getData(); 1788 1789 console.log('actual recordCount: ' + outputData.getRecordCount()); 1790 expect(outputData.getRecordCount()).assertEqual(1); 1791 const outRecord = outputData.getRecord(0); 1792 1793 const inTypes = [pasteboard.MIMETYPE_TEXT_PLAIN, item[0]]; 1794 console.log('actual validTypes: ' + outRecord.getValidTypes(inTypes).toString()); 1795 expect(outRecord.getValidTypes(inTypes).toString()).assertEqual(inTypes.toString()); 1796 console.log('actual mimeType: ' + outRecord.mimeType); 1797 expect(outRecord.mimeType).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 1798 console.log('actual plainText: ' + outRecord.plainText); 1799 expect(outRecord.plainText).assertEqual(record[pasteboard.MIMETYPE_TEXT_PLAIN]); 1800 1801 const outValue = await outRecord.getData(item[0]); 1802 if (item[0] === pasteboard.MIMETYPE_TEXT_WANT) { 1803 console.log('actual bundleName: ' + outValue.bundleName); 1804 expect(outValue.bundleName).assertEqual(item[1].bundleName); 1805 } else if (item[0] === pasteboard.MIMETYPE_PIXELMAP) { 1806 console.log('actual width: ' + outValue.getImageInfoSync().size.width); 1807 expect(outValue.getImageInfoSync().size.width).assertEqual(item[1].getImageInfoSync().size.width); 1808 expect(outValue.getImageInfoSync().size.height).assertEqual(item[1].getImageInfoSync().size.height); 1809 } else { 1810 console.log('type: ' + item[0] + ', actual strValue: ' + outValue.toString()); 1811 expect(outValue.toString()).assertEqual(item[1].toString()); 1812 } 1813 } 1814 1815 await systemPasteboard.clearData(); 1816 done(); 1817 }); 1818 1819 /** 1820 * @tc.name pasteboard_promise_test62 1821 * @tc.desc Paste record's getValidType function. 1822 * @tc.type Function 1823 * @tc.require API 14 1824 */ 1825 it('pasteboard_promise_test62', 0, async function (done) { 1826 const systemPasteboard = pasteboard.getSystemPasteboard(); 1827 await systemPasteboard.clearData(); 1828 1829 let record = await initRecordData(); 1830 await systemPasteboard.setData(pasteboard.createData(record)); 1831 1832 const outputData = await systemPasteboard.getData(); 1833 const recordCount = outputData.getRecordCount(); 1834 console.log('actual recordCount: ' + recordCount); 1835 expect(recordCount).assertEqual(1); 1836 1837 const outRecord = outputData.getRecord(0); 1838 let outTypes = outRecord.getValidTypes(allTypes); 1839 console.log('actual outTypes1: ' + outTypes.toString()); 1840 expect(outTypes.toString()).assertEqual(allTypes.toString()); 1841 1842 const partilyTypes = [pasteboard.MIMETYPE_TEXT_HTML, myType]; 1843 outTypes = outRecord.getValidTypes(partilyTypes); 1844 console.log('actual outTypes2: ' + outTypes.toString()); 1845 expect(outTypes.toString()).assertEqual(partilyTypes.toString()); 1846 1847 outTypes = outRecord.getValidTypes([]); 1848 console.log('actual outTypes3: ' + outTypes.toString()); 1849 expect(outTypes.length).assertEqual(0); 1850 1851 await systemPasteboard.setData(pasteboard.createData({ 1852 'text/plain' : 'hello world', 1853 'text/uri' : 'file://abc.def.png', 1854 })); 1855 const outRecord1 = (await systemPasteboard.getData()).getRecord(0); 1856 outTypes = outRecord1.getValidTypes(allTypes); 1857 console.log('actual outTypes4: ' + outTypes.toString()); 1858 expect(outTypes.toString()).assertEqual([pasteboard.MIMETYPE_TEXT_PLAIN, pasteboard.MIMETYPE_TEXT_URI].toString()); 1859 1860 await systemPasteboard.clearData(); 1861 done(); 1862 }); 1863 1864 async function copyPasteWithRecord(mimeType, value, systemPasteboard) { 1865 let record = {}; 1866 record[mimeType] = value; 1867 let data = pasteboard.createData(record); 1868 await systemPasteboard.setData(data); 1869 1870 let outData = await systemPasteboard.getData(); 1871 if (outData.getRecordCount() !== 1) { 1872 return ''; 1873 } 1874 let pasteRecord = outData.getRecord(0); 1875 let valieMimeType = pasteRecord.getValidTypes([mimeType]); 1876 return await pasteRecord.getData(valieMimeType.pop()); 1877 } 1878 1879 async function buildPixelMap() { 1880 let buffer = new ArrayBuffer(500); 1881 let realSize = {height: 5, width: 100}; 1882 let opt = { 1883 size: realSize, 1884 pixelFormat: 3, 1885 editable: true, 1886 alphaType: 1, 1887 scaleMode: 1, 1888 }; 1889 return await image.createPixelMap(buffer, opt); 1890 } 1891 1892 function string2ArrayBuffer(input) { 1893 let arr = []; 1894 for (let index = 0; index < input.length; index++) { 1895 arr.push(input.charCodeAt(index)); 1896 } 1897 let arrayBuffer = new Uint8Array(arr).buffer; 1898 return arrayBuffer; 1899 } 1900 1901 async function initRecordData(temp) { 1902 const inputPlainText = 'Hello world.' + (temp ? temp : ''); 1903 const inputHtml = '<p>Hello world.' + (temp ? temp : '') + '</p>'; 1904 const inputUri = 'file://abc/def' + (temp ? temp : '') + '.png'; 1905 const inputWant = { 1906 deviceId: '', 1907 bundleName: 'test.bundle.name' + (temp ? temp : ''), 1908 abilityName: 'test.ability,name' + (temp ? temp : ''), 1909 moduleName: 'test.module.name' + (temp ? temp : ''), 1910 }; 1911 const inputPixelMap = await buildPixelMap(); 1912 const inputArrayBuffer = string2ArrayBuffer('Hello world.' + (temp ? temp : '')); 1913 1914 let record = {}; 1915 record[pasteboard.MIMETYPE_TEXT_PLAIN] = inputPlainText; 1916 record[pasteboard.MIMETYPE_TEXT_HTML] = inputHtml; 1917 record[pasteboard.MIMETYPE_TEXT_URI] = inputUri; 1918 record[pasteboard.MIMETYPE_TEXT_WANT] = inputWant; 1919 record[pasteboard.MIMETYPE_PIXELMAP] = inputPixelMap; 1920 record[myType] = inputArrayBuffer; 1921 1922 return record; 1923 } 1924 1925 /** 1926 * @tc.name pasteboard_promise_test63 1927 * @tc.desc html 1928 * @tc.type Function 1929 * @tc.require AR20241012964265 1930 */ 1931 it('pasteboard_promise_test63', 0, async function (done) { 1932 const systemPasteboard = pasteboard.getSystemPasteboard(); 1933 await systemPasteboard.clearData(); 1934 const textData = "<!DOCTYPE html><html><head><title>" + 1935 "的厚爱hi哦</title></head><body><h2>恶风无关痛痒和</h2>" + 1936 "<p>Greg任何人https://exampsaole.com问我的<a href=\"https://exaeqdwerfmple.com\">" + 1937 "如果qwiuyhw@huedqw.dsh站</a>。</p></body></html>"; 1938 const pasteData = pasteboard.createHtmlData(textData); 1939 await systemPasteboard.setPasteData(pasteData); 1940 const res = await systemPasteboard.hasPasteData(); 1941 expect(res).assertEqual(true); 1942 systemPasteboard.getMimeTypes().then((data) => { 1943 expect(data.length).assertEqual(1); 1944 expect(data[0]).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 1945 done(); 1946 }); 1947 }); 1948 1949 /** 1950 * @tc.name pasteboard_promise_test47 1951 * @tc.desc 复制文本、uri格式 1952 * @tc.type Function 1953 * @tc.require AR20241012964265 1954 */ 1955 it('pasteboard_promise_test64', 0, async function (done) { 1956 const systemPasteboard = pasteboard.getSystemPasteboard(); 1957 await systemPasteboard.clearData(); 1958 const textData64 = 'Hello World0'; 1959 const pasteData = pasteboard.createPlainTextData(textData64); 1960 const uriText64 = pasteboard.createUriRecord('https://www.baidu.com/'); 1961 pasteData.addRecord(uriText64); 1962 const htmlText64 = '<html><head></head><body>Hello World 1</body></html>'; 1963 const pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText64); 1964 pasteData.addRecord(pasteDataRecord); 1965 await systemPasteboard.setPasteData(pasteData); 1966 1967 systemPasteboard.getMimeTypes().then((data) => { 1968 expect(data.length).assertEqual(3); 1969 const expectedMimeTypes = new Set([pasteboard.MIMETYPE_TEXT_PLAIN, pasteboard.MIMETYPE_TEXT_HTML, pasteboard.MIMETYPE_TEXT_URI]); 1970 expect(Array.from(data).every(type => expectedMimeTypes.has(type))).assertEqual(true); 1971 done(); 1972 }); 1973 }); 1974 1975 /** 1976 * The callback function is used for pasteboard content changes 1977 */ 1978 function contentChanges() { 1979 console.info('#EVENT: The content is changed in the pasteboard'); 1980 } 1981});