1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the 'License'); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an 'AS IS' BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15// @ts-nocheck 16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; 17import pasteboard from '@ohos.pasteboard'; 18import image from '@ohos.multimedia.image'; 19 20describe('PasteBoardJSTest', function () { 21 beforeAll(async function () { 22 console.info('beforeAll'); 23 }); 24 25 afterAll(async function () { 26 console.info('afterAll'); 27 }); 28 29 /** 30 * @tc.name pasteboard_function_test1 31 * @tc.desc createPlainTextData test 32 * @tc.type Function 33 * @tc.require AR000HEECD 34 */ 35 it('pasteboard_function_test1', 0, async function (done) { 36 var systemPasteboard = pasteboard.getSystemPasteboard(); 37 systemPasteboard.clear((err, data) => { 38 if (err) { 39 console.error('f_test1: systemPasteboard.clear callback error:' + err); 40 } else { 41 var textData = 'Hello World!'; 42 var pasteData = pasteboard.createPlainTextData(textData); 43 systemPasteboard.setPasteData(pasteData, (err, data) => { 44 if (err) { 45 console.error('f_test1: systemPasteboard.setPasteData callback error:' + err); 46 } else { 47 systemPasteboard.hasPasteData((err, data) => { 48 if (err) { 49 console.error('f_test1: systemPasteboard.hasPasteData callback error:' + err); 50 } else { 51 expect(data).assertEqual(true); 52 systemPasteboard.getPasteData((err, data) => { 53 if (err) { 54 console.error('f_test1: systemPasteboard.getPasteData callback error:' + err); 55 } else { 56 expect(data.getRecordCount()).assertEqual(1); 57 var primaryText = data.getPrimaryText(); 58 expect(primaryText).assertEqual(textData); 59 expect(pasteboard.MAX_RECORD_NUM).assertEqual(512); 60 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 61 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 62 done(); 63 } 64 }); 65 } 66 }); 67 } 68 }); 69 } 70 }); 71 }); 72 73 /** 74 * @tc.name pasteboard_function_test2 75 * @tc.desc createHtmlData test 76 * @tc.type Function 77 * @tc.require AR000HEECD 78 */ 79 it('pasteboard_function_test2', 0, async function (done) { 80 var systemPasteboard = pasteboard.getSystemPasteboard(); 81 systemPasteboard.clear((err, data) => { 82 if (err) { 83 console.error('f_test2: systemPasteboard.clear callback error:' + err); 84 } else { 85 var htmlText = '<html><head></head><body>Hello World!</body></html>'; 86 var pasteData = pasteboard.createHtmlData(htmlText); 87 systemPasteboard.setPasteData(pasteData, (err, data) => { 88 if (err) { 89 console.error('f_test2: systemPasteboard.setPasteData callback error:' + err); 90 } else { 91 systemPasteboard.hasPasteData((err, data) => { 92 if (err) { 93 console.error('f_test2: systemPasteboard.hasPasteData callback error:' + err); 94 } else { 95 expect(data).assertEqual(true); 96 systemPasteboard.getPasteData((err, data) => { 97 if (err) { 98 console.error('f_test2: systemPasteboard.getPasteData callback error:' + err); 99 } else { 100 expect(data.getRecordCount()).assertEqual(1); 101 var PrimaryHtml = data.getPrimaryHtml(); 102 console.info('f_test2: PrimaryHtml = ' + PrimaryHtml); 103 expect(PrimaryHtml).assertEqual(htmlText); 104 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 105 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 106 done(); 107 } 108 }); 109 } 110 }); 111 } 112 }); 113 } 114 }); 115 }); 116 117 /** 118 * @tc.name pasteboard_function_test3 119 * @tc.desc 测试异步callback调用+createHtmlData,htmlText = ''. 120 * @tc.type Function 121 * @tc.require AR000HEECD 122 */ 123 it('pasteboard_function_test3', 0, async function (done) { 124 var systemPasteboard = pasteboard.getSystemPasteboard(); 125 systemPasteboard.clear((err, data) => { 126 if (err) { 127 console.error('f_test3: systemPasteboard.clear callback error:' + err); 128 } else { 129 var htmlText = ''; 130 var pasteData = pasteboard.createHtmlData(htmlText); 131 systemPasteboard.setPasteData(pasteData, (err, data) => { 132 if (err) { 133 console.error('f_test3: systemPasteboard.setPasteData callback error:' + err); 134 } else { 135 systemPasteboard.hasPasteData((err, data) => { 136 if (err) { 137 console.error('f_test3: systemPasteboard.hasPasteData callback error:' + err); 138 } else { 139 expect(data).assertEqual(true); 140 systemPasteboard.getPasteData((err, data) => { 141 if (err) { 142 console.error('f_test3: systemPasteboard.getPasteData callback error:' + err); 143 } else { 144 expect(data.getRecordCount()).assertEqual(1); 145 var PrimaryHtml = data.getPrimaryHtml(); 146 console.info('f_test3: PrimaryHtml = ' + PrimaryHtml); 147 expect(PrimaryHtml).assertEqual(htmlText); 148 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_HTML)).assertEqual(true); 149 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 150 done(); 151 } 152 }); 153 } 154 }); 155 } 156 }); 157 } 158 }); 159 }); 160 161 /** 162 * @tc.name pasteboard_function_test4 163 * @tc.desc createUriData test 164 * @tc.type Function 165 * @tc.require AR000HEECD 166 */ 167 it('pasteboard_function_test4', 0, async function (done) { 168 var systemPasteboard = pasteboard.getSystemPasteboard(); 169 systemPasteboard.clear((err, data) => { 170 if (err) { 171 console.error('f_test4: systemPasteboard.clear callback error:' + err); 172 } else { 173 var uriText = ''; 174 var pasteData = pasteboard.createUriData(uriText); 175 systemPasteboard.setPasteData(pasteData, (err, data) => { 176 if (err) { 177 console.error('f_test4: systemPasteboard.setPasteData callback error:' + err); 178 } else { 179 systemPasteboard.hasPasteData((err, data) => { 180 if (err) { 181 console.error('f_test4: systemPasteboard.hasPasteData callback error:' + err); 182 } else { 183 expect(data).assertEqual(true); 184 systemPasteboard.getPasteData((err, data) => { 185 if (err) { 186 console.error('f_test4: systemPasteboard.getPasteData callback error:' + err); 187 } else { 188 expect(data.getRecordCount()).assertEqual(1); 189 var PrimaryUri = data.getPrimaryUri(); 190 console.info('f_test4: PrimaryUri = ' + PrimaryUri); 191 expect(PrimaryUri).assertEqual(uriText); 192 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_URI)).assertEqual(true); 193 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_URI); 194 done(); 195 } 196 }); 197 } 198 }); 199 } 200 }); 201 } 202 }); 203 }); 204 205 /** 206 * @tc.name pasteboard_function_test5 207 * @tc.desc createWantData test 208 * @tc.type Function 209 * @tc.require AR000HEECD 210 */ 211 it('pasteboard_function_test5', 0, async function (done) { 212 var systemPasteboard = pasteboard.getSystemPasteboard(); 213 systemPasteboard.clear((err, data) => { 214 if (err) { 215 console.error('f_test5: systemPasteboard.clear callback error:' + err); 216 } else { 217 var want = { 218 bundleName: 'com.example.myapplication8', 219 abilityName: 'com.example.myapplication8.MainAbility', 220 }; 221 var pasteData = pasteboard.createWantData(want); 222 systemPasteboard.setPasteData(pasteData, (err, data) => { 223 if (err) { 224 console.error('f_test5: systemPasteboard.setPasteData callback error:' + err); 225 } else { 226 systemPasteboard.hasPasteData((err, data) => { 227 if (err) { 228 console.error('f_test5: systemPasteboard.hasPasteData callback error:' + err); 229 } else { 230 expect(data).assertEqual(true); 231 systemPasteboard.getPasteData((err, data) => { 232 if (err) { 233 console.error('f_test5: systemPasteboard.getPasteData callback error:' + err); 234 } else { 235 expect(data.getRecordCount()).assertEqual(1); 236 var PrimaryWant = data.getPrimaryWant(); 237 expect(PrimaryWant.bundleName).assertEqual(want.bundleName); 238 expect(PrimaryWant.abilityName).assertEqual(want.abilityName); 239 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true); 240 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_WANT); 241 done(); 242 } 243 }); 244 } 245 }); 246 } 247 }); 248 } 249 }); 250 }); 251 252 /** 253 * @tc.name pasteboard_function_test6 254 * @tc.desc addTextRecord test 255 * @tc.type Function 256 * @tc.require AR000HEECD 257 */ 258 it('pasteboard_function_test6', 0, async function (done) { 259 var systemPasteboard = pasteboard.getSystemPasteboard(); 260 systemPasteboard.clear((err, data) => { 261 if (err) { 262 console.error('f_test6: systemPasteboard.clear callback error:' + err); 263 } else { 264 var textData0 = 'Hello World!'; 265 var pasteData = pasteboard.createPlainTextData(textData0); 266 var textData1 = 'Hello World1'; 267 pasteData.addTextRecord(textData1); 268 systemPasteboard.setPasteData(pasteData, (err, data) => { 269 if (err) { 270 console.error('f_test6: systemPasteboard.setPasteData callback error:' + err); 271 } else { 272 systemPasteboard.hasPasteData((err, data) => { 273 if (err) { 274 console.error('f_test6: systemPasteboard.hasPasteData callback error:' + err); 275 } else { 276 expect(data).assertEqual(true); 277 systemPasteboard.getPasteData((err, data) => { 278 if (err) { 279 console.error('f_test6: systemPasteboard.getPasteData callback error:' + err); 280 } else { 281 expect(data.getRecordCount()).assertEqual(2); 282 var PrimaryText = data.getPrimaryText(); 283 expect(PrimaryText).assertEqual(textData1); 284 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 285 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 286 done(); 287 } 288 }); 289 } 290 }); 291 } 292 }); 293 } 294 }); 295 }); 296 297 /** 298 * @tc.name pasteboard_function_test7 299 * @tc.desc addTextRecord test 300 * @tc.type Function 301 * @tc.require AR000HEECD 302 */ 303 it('pasteboard_function_test7', 0, async function (done) { 304 var systemPasteboard = pasteboard.getSystemPasteboard(); 305 systemPasteboard.clear((err, data) => { 306 if (err) { 307 console.error('f_test7: systemPasteboard.clear callback error:' + err); 308 } else { 309 var textData0 = 'Hello World!'; 310 var pasteData = pasteboard.createPlainTextData(textData0); 311 var textData = ''; 312 for (var i = 1; i < 15; i++) { 313 textData = 'Hello World'; 314 textData = textData + i; 315 pasteData.addTextRecord(textData); 316 } 317 systemPasteboard.setPasteData(pasteData, (err, data) => { 318 if (err) { 319 console.error('f_test7: systemPasteboard.setPasteData callback error:' + err); 320 } else { 321 systemPasteboard.hasPasteData((err, data) => { 322 if (err) { 323 console.error('f_test7: systemPasteboard.hasPasteData callback error:' + err); 324 } else { 325 expect(data).assertEqual(true); 326 systemPasteboard.getPasteData((err, data) => { 327 if (err) { 328 console.error('f_test7: systemPasteboard.getPasteData callback error:' + err); 329 } else { 330 expect(data.getRecordCount()).assertEqual(15); 331 var PrimaryText = data.getPrimaryText(); 332 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN)).assertEqual(true); 333 expect(data.getPrimaryMimeType()).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 334 expect(PrimaryText).assertEqual('Hello World14'); 335 done(); 336 } 337 }); 338 } 339 }); 340 } 341 }); 342 } 343 }); 344 }); 345 346 /** 347 * @tc.name pasteboard_function_test8 348 * @tc.desc addHtmlRecord+addUriRecord+addWantRecord 349 * @tc.type Function 350 * @tc.require AR000HEECD 351 */ 352 it('pasteboard_function_test8', 0, async function (done) { 353 var systemPasteboard = pasteboard.getSystemPasteboard(); 354 systemPasteboard.clear((err, data) => { 355 if (err) { 356 console.error('f_test8: systemPasteboard.clear callback error:' + err); 357 } else { 358 var textData = 'Hello World!'; 359 var pasteData = pasteboard.createPlainTextData(textData); 360 var htmlText = '<html><head></head><body>Hello World!</body></html>'; 361 pasteData.addHtmlRecord(htmlText); 362 var uriText = ''; 363 pasteData.addUriRecord(uriText); 364 var want = { 365 bundleName: 'com.example.myapplication8', 366 abilityName: 'com.example.myapplication8.MainAbility', 367 }; 368 pasteData.addWantRecord(want); 369 systemPasteboard.setPasteData(pasteData, (err, data) => { 370 if (err) { 371 console.error('f_test8: systemPasteboard.setPasteData callback error:' + err); 372 } else { 373 systemPasteboard.hasPasteData((err, data) => { 374 if (err) { 375 console.error('f_test8: systemPasteboard.hasPasteData callback error:' + err); 376 } else { 377 expect(data).assertEqual(true); 378 systemPasteboard.getPasteData((err, data) => { 379 if (err) { 380 console.error('f_test8: systemPasteboard.getPasteData callback error:' + err); 381 } else { 382 expect(data.getRecordCount()).assertEqual(4); 383 var MimeTypes = data.getMimeTypes(); 384 expect(MimeTypes[0]).assertEqual(pasteboard.MIMETYPE_TEXT_WANT); 385 expect(MimeTypes[1]).assertEqual(pasteboard.MIMETYPE_TEXT_URI); 386 expect(MimeTypes[2]).assertEqual(pasteboard.MIMETYPE_TEXT_HTML); 387 expect(MimeTypes[3]).assertEqual(pasteboard.MIMETYPE_TEXT_PLAIN); 388 done(); 389 } 390 }); 391 } 392 }); 393 } 394 }); 395 } 396 }); 397 }); 398 399 /** 400 * @tc.name pasteboard_function_test9 401 * @tc.desc addHtmlRecord+addUriRecord+removeRecordAt 402 * @tc.type Function 403 * @tc.require AR000HEECD 404 */ 405 it('pasteboard_function_test9', 0, async function (done) { 406 var systemPasteboard = pasteboard.getSystemPasteboard(); 407 systemPasteboard.clear((err, data) => { 408 if (err) { 409 console.error('f_test9: systemPasteboard.clear callback error:' + err); 410 } else { 411 var textData = 'Hello World!'; 412 var pasteData = pasteboard.createPlainTextData(textData); 413 var htmlText = '<html><head></head><body>Hello World!</body></html>'; 414 pasteData.addHtmlRecord(htmlText); 415 var uriText = ''; 416 pasteData.addUriRecord(uriText); 417 systemPasteboard.setPasteData(pasteData, (err, data) => { 418 if (err) { 419 console.error('f_test9: systemPasteboard.setPasteData callback error:' + err); 420 } else { 421 systemPasteboard.hasPasteData((err, data) => { 422 if (err) { 423 console.error('f_test9: systemPasteboard.hasPasteData callback error:' + err); 424 } else { 425 expect(data).assertEqual(true); 426 systemPasteboard.getPasteData((err, data) => { 427 if (err) { 428 console.error('f_test9: systemPasteboard.getPasteData callback error:' + err); 429 } else { 430 expect(data.getRecordCount()).assertEqual(3); 431 expect(data.removeRecordAt(0)).assertEqual(true); 432 expect(data.getRecordCount()).assertEqual(2); 433 systemPasteboard.setPasteData(data, (err, newdata) => { 434 if (err) { 435 console.error('f_test9: systemPasteboard.setPasteData callback error:' + err); 436 } else { 437 systemPasteboard.getPasteData((err, data) => { 438 if (err) { 439 console.error('f_test9: systemPasteboard.getPasteData callback error:' + err); 440 } else { 441 expect(data.getRecordCount()).assertEqual(2); 442 done(); 443 } 444 }); 445 } 446 }); 447 } 448 }); 449 } 450 }); 451 } 452 }); 453 } 454 }); 455 }); 456 457 /** 458 * @tc.name pasteboard_function_test10 459 * @tc.desc Add 30 TextRecords 460 * @tc.type Function 461 * @tc.require AR000H5GKU 462 */ 463 it('pasteboard_function_test10', 0, async function (done) { 464 var systemPasteboard = pasteboard.getSystemPasteboard(); 465 systemPasteboard.clear((err, data) => { 466 if (err) { 467 console.error('f_test10: systemPasteboard.clear callback error:' + err); 468 } else { 469 var textData0 = 'Hello World!'; 470 var pasteData = pasteboard.createPlainTextData(textData0); 471 var textData = ''; 472 for (var i = 1; i < 30; i++) { 473 textData = 'Hello World'; 474 textData = textData + i; 475 pasteData.addTextRecord(textData); 476 } 477 systemPasteboard.setPasteData(pasteData, (err, data) => { 478 if (err) { 479 console.error('f_test10: systemPasteboard.setPasteData callback error:' + err); 480 } else { 481 systemPasteboard.hasPasteData((err, data) => { 482 if (err) { 483 console.error('f_test10: systemPasteboard.hasPasteData callback error:' + err); 484 } else { 485 expect(data).assertEqual(true); 486 systemPasteboard.getPasteData((err, data) => { 487 if (err) { 488 console.error('f_test10: systemPasteboard.getPasteData callback error:' + err); 489 } else { 490 expect(data.getRecordCount()).assertEqual(30); 491 for (var i = 0; i < 30; i++) { 492 expect(data.removeRecordAt(0)).assertEqual(true); 493 } 494 expect(data.getRecordCount()).assertEqual(0); 495 systemPasteboard.setPasteData(data, (err, newdata) => { 496 if (err) { 497 console.error('f_test10: systemPasteboard.setPasteData callback error:' + err); 498 } else { 499 systemPasteboard.getPasteData((err, data) => { 500 if (err) { 501 console.error('f_test10: systemPasteboard.getPasteData callback error:' + err); 502 } else { 503 expect(data.getRecordCount()).assertEqual(0); 504 done(); 505 } 506 }); 507 } 508 }); 509 } 510 }); 511 } 512 }); 513 } 514 }); 515 } 516 }); 517 }); 518 519 /** 520 * @tc.name pasteboard_function_test11 521 * @tc.desc Replcae textRecord 522 * @tc.type Function 523 * @tc.require AR000H5GKU 524 */ 525 it('pasteboard_function_test11', 0, async function (done) { 526 var systemPasteboard = pasteboard.getSystemPasteboard(); 527 systemPasteboard.clear((err, data) => { 528 if (err) { 529 console.error('f_test11: systemPasteboard.clear callback error:' + err); 530 } else { 531 var textData = 'Hello World!'; 532 var pasteData = pasteboard.createPlainTextData(textData); 533 systemPasteboard.setPasteData(pasteData, (err, data) => { 534 if (err) { 535 console.error('f_test11: systemPasteboard.setPasteData callback error:' + err); 536 } else { 537 systemPasteboard.hasPasteData((err, data) => { 538 if (err) { 539 console.error('f_test11: systemPasteboard.hasPasteData callback error:' + err); 540 } else { 541 expect(data).assertEqual(true); 542 systemPasteboard.getPasteData((err, data) => { 543 if (err) { 544 console.error('f_test11: systemPasteboard.getPasteData callback error:' + err); 545 } else { 546 expect(data.getRecordCount()).assertEqual(1); 547 var textData1 = 'Hello World1'; 548 var pasteDataRecord = pasteboard.createPlainTextRecord(textData1); 549 var replace = data.replaceRecordAt(0, pasteDataRecord); 550 expect(replace).assertEqual(true); 551 var primaryText = data.getPrimaryText(); 552 expect(primaryText).assertEqual(textData1); 553 done(); 554 } 555 }); 556 } 557 }); 558 } 559 }); 560 } 561 }); 562 }); 563 564 /** 565 * @tc.name pasteboard_function_test12 566 * @tc.desc Replcae htmlRecord 567 * @tc.type Function 568 * @tc.require AR000H5GKU 569 */ 570 it('pasteboard_function_test12', 0, async function (done) { 571 var systemPasteboard = pasteboard.getSystemPasteboard(); 572 systemPasteboard.clear((err, data) => { 573 if (err) { 574 console.error('f_test12: systemPasteboard.clear callback error:' + err); 575 } else { 576 var htmlText = '<html><head></head><body>Hello World!</body></html>'; 577 var pasteData = pasteboard.createHtmlData(htmlText); 578 systemPasteboard.setPasteData(pasteData, (err, data) => { 579 if (err) { 580 console.error('f_test12: systemPasteboard.setPasteData callback error:' + err); 581 } else { 582 systemPasteboard.hasPasteData((err, data) => { 583 if (err) { 584 console.error('f_test12: systemPasteboard.hasPasteData callback error:' + err); 585 } else { 586 expect(data).assertEqual(true); 587 systemPasteboard.getPasteData((err, data) => { 588 if (err) { 589 console.error('f_test12: systemPasteboard.getPasteData callback error:' + err); 590 } else { 591 expect(data.getRecordCount()).assertEqual(1); 592 var htmlText1 = '<html><head></head><body>Hello World 1</body></html>'; 593 var pasteDataRecord = pasteboard.createHtmlTextRecord(htmlText1); 594 var replace = data.replaceRecordAt(0, pasteDataRecord); 595 expect(replace).assertEqual(true); 596 expect(data.getRecordCount()).assertEqual(1); 597 var primaryHtml = data.getPrimaryHtml(); 598 expect(primaryHtml).assertEqual(htmlText1); 599 done(); 600 } 601 }); 602 } 603 }); 604 } 605 }); 606 } 607 }); 608 }); 609 610 /** 611 * @tc.name pasteboard_function_test13 612 * @tc.desc Replcae wantRecord 613 * @tc.type Function 614 * @tc.require AR000H5GKU 615 */ 616 it('pasteboard_function_test13', 0, async function (done) { 617 var systemPasteboard = pasteboard.getSystemPasteboard(); 618 systemPasteboard.clear((err, data) => { 619 if (err) { 620 console.error('f_test13: systemPasteboard.clear callback error:' + err); 621 } else { 622 var wantText0 = { 623 bundleName: 'com.example.myapplication3', 624 abilityName: 'com.example.myapplication3.MainAbility', 625 }; 626 var pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText0); 627 systemPasteboard.setPasteData(pasteData, (err, data) => { 628 if (err) { 629 console.error('f_test13: systemPasteboard.setPasteData callback error:' + err); 630 } else { 631 systemPasteboard.hasPasteData((err, data) => { 632 if (err) { 633 console.error('f_test13: systemPasteboard.hasPasteData callback error:' + err); 634 } else { 635 expect(data).assertEqual(true); 636 systemPasteboard.getPasteData((err, data) => { 637 if (err) { 638 console.error('f_test13: systemPasteboard.getPasteData callback error:' + err); 639 } else { 640 expect(data.getRecordCount()).assertEqual(1); 641 var wantText1 = { 642 bundleName: 'com.example.myapplication30', 643 abilityName: 'com.example.myapplication30.MainAbility', 644 }; 645 var pasteDataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_WANT, wantText1); 646 var replace = data.replaceRecordAt(0, pasteDataRecord); 647 expect(replace).assertEqual(true); 648 var primaryWant = data.getPrimaryWant(); 649 expect(data.hasMimeType(pasteboard.MIMETYPE_TEXT_WANT)).assertEqual(true); 650 expect(primaryWant.bundleName).assertEqual(wantText1.bundleName); 651 expect(primaryWant.abilityName).assertEqual(wantText1.abilityName); 652 done(); 653 } 654 }); 655 } 656 }); 657 } 658 }); 659 } 660 }); 661 }); 662 663 /** 664 * @tc.name pasteboard_function_test14 665 * @tc.desc get pasteData after clear wantData 666 * @tc.type Function 667 * @tc.require AR000H5GKU 668 */ 669 it('pasteboard_function_test14', 0, async function (done) { 670 var systemPasteboard = pasteboard.getSystemPasteboard(); 671 systemPasteboard.clear((err, data) => { 672 if (err) { 673 console.error('f_test14: systemPasteboard.clear callback error:' + err); 674 } else { 675 var wantText0 = { 676 bundleName: 'com.example.myapplication3', 677 abilityName: 'com.example.myapplication3.MainAbility', 678 }; 679 var pasteData = pasteboard.createWantData(wantText0); 680 systemPasteboard.setPasteData(pasteData, (err, data) => { 681 if (err) { 682 console.error('f_test14: systemPasteboard.setPasteData callback error:' + err); 683 } else { 684 systemPasteboard.hasPasteData((err, data) => { 685 if (err) { 686 console.error('f_test14: systemPasteboard.hasPasteData callback error:' + err); 687 } else { 688 expect(data).assertEqual(true); 689 systemPasteboard.getPasteData((err, data) => { 690 if (err) { 691 console.error('f_test14: systemPasteboard.getPasteData callback error:' + err); 692 } else { 693 expect(data.getRecordCount()).assertEqual(1); 694 systemPasteboard.clear((err, data) => { 695 if (err) { 696 console.error('f_test14: systemPasteboard.clear callback error:' + err); 697 } else { 698 systemPasteboard.getPasteData((err, data) => { 699 if (err) { 700 console.error('f_test14: systemPasteboard.getPasteData callback error:' + err); 701 } else { 702 expect(data.getRecordCount()).assertEqual(0); 703 done(); 704 } 705 }); 706 } 707 }); 708 } 709 }); 710 } 711 }); 712 } 713 }); 714 } 715 }); 716 }); 717 718 /** 719 * @tc.name pasteboard_function_test15 720 * @tc.desc getProperty and setProperty test 721 * @tc.require AR000H5GKU 722 */ 723 it('pasteboard_function_test15', 0, async function (done) { 724 var systemPasteboard = pasteboard.getSystemPasteboard(); 725 systemPasteboard.clear((err, data) => { 726 if (err) { 727 console.error('f_test15: systemPasteboard.clear callback error:' + err); 728 } else { 729 var textData = 'Hello World!'; 730 var pasteData = pasteboard.createPlainTextData(textData); 731 systemPasteboard.setPasteData(pasteData, (err, data) => { 732 if (err) { 733 console.error('f_test15: systemPasteboard.setPasteData callback error:' + err); 734 } else { 735 systemPasteboard.hasPasteData((err, data) => { 736 if (err) { 737 console.error('f_test15: systemPasteboard.hasPasteData callback error:' + err); 738 } else { 739 expect(data).assertEqual(true); 740 systemPasteboard.getPasteData((err, data) => { 741 if (err) { 742 console.error('f_test15: systemPasteboard.getPasteData callback error:' + err); 743 } else { 744 expect(data.getRecordCount()).assertEqual(1); 745 var pasteDataProperty = data.getProperty(); 746 expect(pasteDataProperty.shareOption).assertEqual(pasteboard.ShareOption.CrossDevice); 747 pasteDataProperty.shareOption = pasteboard.ShareOption.InApp; 748 data.setProperty(pasteDataProperty); 749 var pasteDataProperty1 = data.getProperty(); 750 expect(pasteDataProperty1.shareOption).assertEqual(pasteboard.ShareOption.InApp); 751 done(); 752 } 753 }); 754 } 755 }); 756 } 757 }); 758 } 759 }); 760 }); 761 762 /** 763 * @tc.name pasteboard_function_test16 764 * @tc.desc on test 765 * @tc.type Function 766 * @tc.require AR000H5GKU 767 */ 768 it('pasteboard_function_test16', 0, async function (done) { 769 var systemPasteboard = pasteboard.getSystemPasteboard(); 770 systemPasteboard.clear((err, data) => { 771 if (err) { 772 console.error('f_test16: systemPasteboard.clear callback error:' + err); 773 } else { 774 systemPasteboard.on('update', contentChanges); 775 var textData = 'Hello World!'; 776 var pasteData = pasteboard.createPlainTextData(textData); 777 systemPasteboard.setPasteData(pasteData, (err, data) => { 778 if (err) { 779 console.error('f_test16: systemPasteboard.setPasteData callback error:' + err); 780 } else { 781 systemPasteboard.hasPasteData((err, data) => { 782 if (err) { 783 console.error('f_test16: systemPasteboard.hasPasteData callback error:' + err); 784 } else { 785 expect(data === true).assertEqual(true); 786 systemPasteboard.getPasteData((err, data) => { 787 if (err) { 788 console.error('f_test16: systemPasteboard.getPasteData callback error:' + err); 789 } else { 790 expect(data.getRecordCount()).assertEqual(1); 791 expect(data.removeRecordAt(0)).assertEqual(true); 792 expect(data.getRecordCount()).assertEqual(0); 793 done(); 794 } 795 }); 796 } 797 }); 798 } 799 }); 800 } 801 }); 802 }); 803 804 /** 805 * @tc.name pasteboard_function_test17 806 * @tc.desc off test 807 * @tc.type Function 808 * @tc.require AR000H5GKU 809 */ 810 it('pasteboard_function_test17', 0, async function (done) { 811 var systemPasteboard = pasteboard.getSystemPasteboard(); 812 systemPasteboard.clear((err, data) => { 813 if (err) { 814 console.error('f_test17: systemPasteboard.clear callback error:' + err); 815 } else { 816 systemPasteboard.off('update', contentChanges); 817 var textData = 'Hello World!'; 818 var pasteData = pasteboard.createPlainTextData(textData); 819 systemPasteboard.setPasteData(pasteData, (err, data) => { 820 if (err) { 821 console.error('f_test17: systemPasteboard.setPasteData callback error:' + err); 822 } else { 823 systemPasteboard.hasPasteData((err, data) => { 824 if (err) { 825 console.error('f_test17: systemPasteboard.hasPasteData callback error:' + err); 826 } else { 827 expect(data).assertEqual(true); 828 systemPasteboard.getPasteData((err, data) => { 829 if (err) { 830 console.error('f_test17: systemPasteboard.getPasteData callback error:' + err); 831 } else { 832 expect(data.getRecordCount()).assertEqual(1); 833 expect(data.removeRecordAt(0)).assertEqual(true); 834 expect(data.getRecordCount()).assertEqual(0); 835 done(); 836 } 837 }); 838 } 839 }); 840 } 841 }); 842 } 843 }); 844 }); 845 846 /** 847 * @tc.name pasteboard_function_test18 848 * @tc.desc createRecord test 849 * @tc.type Function 850 * @tc.require AR000H5GKU 851 */ 852 it('pasteboard_function_test18', 0, async function (done) { 853 var systemPasteboard = pasteboard.getSystemPasteboard(); 854 systemPasteboard.clear().then(() => { 855 var buffer = new ArrayBuffer(128); 856 var opt = { 857 size: { height: 5, width: 5 }, 858 pixelFormat: 3, 859 editable: true, 860 alphaType: 1, 861 scaleMode: 1, 862 }; 863 var pasteData = pasteboard.createHtmlData('application/xml'); 864 image.createPixelMap(buffer, opt).then((pixelMap) => { 865 expect(pixelMap.getPixelBytesNumber()).assertEqual(100); 866 var pixelMapRecord = pasteboard.createRecord(pasteboard.MIMETYPE_PIXELMAP, pixelMap); 867 pasteData.addRecord(pixelMapRecord); 868 systemPasteboard.setPasteData(pasteData).then(() => { 869 systemPasteboard.hasPasteData().then((data) => { 870 expect(data).assertEqual(true); 871 systemPasteboard.getPasteData().then((newPasteData) => { 872 var recordCount = newPasteData.getRecordCount(); 873 expect(recordCount).assertEqual(2); 874 var newPixelMap = newPasteData.getPrimaryPixelMap(); 875 var PixelMapBytesNumber = newPixelMap.getPixelBytesNumber(); 876 expect(PixelMapBytesNumber).assertEqual(100); 877 var newHtmlData = newPasteData.getRecordAt(1); 878 expect(newHtmlData.htmlText).assertEqual('application/xml'); 879 newPixelMap.getImageInfo().then((imageInfo) => { 880 expect(imageInfo.size.height === 5 && imageInfo.size.width === 5).assertEqual(true); 881 done(); 882 }); 883 }); 884 }); 885 }); 886 }); 887 }); 888 }); 889 890 /** 891 * @tc.name pasteboard_function_test19 892 * @tc.desc Add plainText、htmlText、uriText record 893 * @tc.type Function 894 * @tc.require AR000H5GKU 895 */ 896 it('pasteboard_function_test19', 0, async function (done) { 897 var systemPasteboard = pasteboard.getSystemPasteboard(); 898 systemPasteboard.clear((err, data) => { 899 if (err) { 900 console.error('f_test19: systemPasteboard.clear callback error:' + err); 901 } else { 902 var textData0 = 'Hello World0'; 903 var pasteData = pasteboard.createPlainTextData(textData0); 904 var textData = ''; 905 for (var i = 1; i < 5; i++) { 906 textData = 'Hello World'; 907 textData = textData + i; 908 pasteData.addTextRecord(textData); 909 } 910 var htmlText = ''; 911 for (var i = 0; i < 5; i++) { 912 htmlText = '<html><head></head><body>Hello World!</body></html>'; 913 htmlText = htmlText + i; 914 pasteData.addHtmlRecord(htmlText); 915 } 916 var uriText = ''; 917 for (var i = 0; i < 5; i++) { 918 uriText = 'https://www.baidu.com/'; 919 uriText = uriText + i; 920 pasteData.addUriRecord(uriText); 921 } 922 systemPasteboard.setPasteData(pasteData, (err, data) => { 923 if (err) { 924 console.error('f_test19: systemPasteboard.setPasteData callback error:' + err); 925 } else { 926 systemPasteboard.hasPasteData((err, data) => { 927 if (err) { 928 console.error('f_test19: systemPasteboard.hasPasteData callback error:' + err); 929 } else { 930 expect(data).assertEqual(true); 931 systemPasteboard.getPasteData(async (err, data) => { 932 if (err) { 933 console.error('f_test19: systemPasteboard.getPasteData callback error:' + err); 934 } else { 935 expect(data.getRecordCount()).assertEqual(15); 936 await systemPasteboard.clear(); 937 var newData = await systemPasteboard.getPasteData(); 938 expect(newData.getRecordCount()).assertEqual(0); 939 done(); 940 } 941 }); 942 } 943 }); 944 } 945 }); 946 } 947 }); 948 }); 949 950 /** 951 * @tc.name pasteboard_function_test20 952 * @tc.desc convertToText test 953 * @tc.type Function 954 * @tc.require AR000H5GKU 955 */ 956 it('pasteboard_function_test20', 0, async function (done) { 957 var systemPasteboard = pasteboard.getSystemPasteboard(); 958 systemPasteboard.clear((err, data) => { 959 if (err) { 960 console.error('f_test20: systemPasteboard.clear callback error:' + err); 961 } else { 962 var textData = 'Hello World!'; 963 var pasteData = pasteboard.createPlainTextData(textData); 964 systemPasteboard.setPasteData(pasteData, (err, data) => { 965 if (err) { 966 console.error('f_test20: systemPasteboard.setPasteData callback error:' + err); 967 } else { 968 systemPasteboard.hasPasteData((err, data) => { 969 if (err) { 970 console.error('f_test20: systemPasteboard.hasPasteData callback error:' + err); 971 } else { 972 expect(data).assertEqual(true); 973 systemPasteboard.getPasteData(async (err, data) => { 974 if (err) { 975 console.error('f_test20: systemPasteboard.getPasteData callback error:' + err); 976 } else { 977 expect(data.getRecordCount()).assertEqual(1); 978 var dataRecord = data.getRecordAt(0); 979 var text = await dataRecord.convertToText(); 980 expect(text).assertEqual(textData); 981 done(); 982 } 983 }); 984 } 985 }); 986 } 987 }); 988 } 989 }); 990 }); 991 992 /** 993 * @tc.name pasteboard_function_test21 994 * @tc.desc convertToText test 995 * @tc.type Function 996 * @tc.require AR000H5GKU 997 */ 998 it('pasteboard_function_test21', 0, async function (done) { 999 var systemPasteboard = pasteboard.getSystemPasteboard(); 1000 systemPasteboard.clear((err, data) => { 1001 if (err) { 1002 console.error('f_test21: systemPasteboard.clear callback error:' + err); 1003 } else { 1004 var textData = 'Hello World!'; 1005 var pasteData = pasteboard.createPlainTextData(textData); 1006 systemPasteboard.setPasteData(pasteData, (err, data) => { 1007 if (err) { 1008 console.error('f_test21: systemPasteboard.setPasteData callback error:' + err); 1009 } else { 1010 systemPasteboard.hasPasteData((err, data) => { 1011 if (err) { 1012 console.error('f_test21: systemPasteboard.hasPasteData callback error:' + err); 1013 } else { 1014 expect(data).assertEqual(true); 1015 systemPasteboard.getPasteData((err, data) => { 1016 if (err) { 1017 console.error('f_test21: systemPasteboard.getPasteData callback error:' + err); 1018 } else { 1019 expect(data.getRecordCount()).assertEqual(1); 1020 var dataRecord = data.getRecordAt(0); 1021 dataRecord.convertToText((err, data) => { 1022 if (err) { 1023 console.error('f_test21: PasteDataRecord.convertToText callback error:' + err); 1024 } else { 1025 expect(data).assertEqual(textData); 1026 done(); 1027 } 1028 }); 1029 } 1030 }); 1031 } 1032 }); 1033 } 1034 }); 1035 } 1036 }); 1037 }); 1038 1039 /** 1040 * @tc.name pasteboard_function_test22 1041 * @tc.desc convertToText test 1042 * @tc.type Function 1043 * @tc.require AR000H5GKU 1044 */ 1045 it('pasteboard_function_test22', 0, async function (done) { 1046 var systemPasteboard = pasteboard.getSystemPasteboard(); 1047 systemPasteboard.clear((err, data) => { 1048 if (err) { 1049 console.error('f_test22: systemPasteboard.clear callback error:' + err); 1050 } else { 1051 var textData = 'Hello 中国!@#$%^&*()_+{}\\?.'; 1052 var pasteData = pasteboard.createPlainTextData(textData); 1053 systemPasteboard.setPasteData(pasteData, (err, data) => { 1054 if (err) { 1055 console.error('f_test22: systemPasteboard.setPasteData callback error:' + err); 1056 } else { 1057 systemPasteboard.hasPasteData((err, data) => { 1058 if (err) { 1059 console.error('f_test22: systemPasteboard.hasPasteData callback error:' + err); 1060 } else { 1061 expect(data).assertEqual(true); 1062 systemPasteboard.getPasteData(async (err, data) => { 1063 if (err) { 1064 console.error('f_test22: systemPasteboard.getPasteData callback error:' + err); 1065 } else { 1066 expect(data.getRecordCount()).assertEqual(1); 1067 var dataRecord = data.getRecordAt(0); 1068 var text = await dataRecord.convertToText(); 1069 expect(text).assertEqual(textData); 1070 done(); 1071 } 1072 }); 1073 } 1074 }); 1075 } 1076 }); 1077 } 1078 }); 1079 }); 1080 1081 /** 1082 * @tc.name pasteboard_function_test23 1083 * @tc.desc convertToText test 1084 * @tc.type Function 1085 * @tc.require AR000H5GKU 1086 */ 1087 it('pasteboard_function_test23', 0, async function (done) { 1088 var systemPasteboard = pasteboard.getSystemPasteboard(); 1089 systemPasteboard.clear((err, data) => { 1090 if (err) { 1091 console.error('f_test23: systemPasteboard.clear callback error:' + err); 1092 } else { 1093 var uriText = 'https://www.baidu.com/'; 1094 var pasteData = pasteboard.createUriData(uriText); 1095 systemPasteboard.setPasteData(pasteData, (err, data) => { 1096 if (err) { 1097 console.error('f_test23: systemPasteboard.setPasteData callback error:' + err); 1098 } else { 1099 systemPasteboard.hasPasteData((err, data) => { 1100 if (err) { 1101 console.error('f_test23: systemPasteboard.hasPasteData callback error:' + err); 1102 } else { 1103 expect(data).assertEqual(true); 1104 systemPasteboard.getPasteData(async (err, data) => { 1105 if (err) { 1106 console.error('f_test23: systemPasteboard.getPasteData callback error:' + err); 1107 } else { 1108 expect(data.getRecordCount()).assertEqual(1); 1109 var dataRecord = data.getRecordAt(0); 1110 var text = await dataRecord.convertToText(); 1111 expect(text).assertEqual(uriText); 1112 done(); 1113 } 1114 }); 1115 } 1116 }); 1117 } 1118 }); 1119 } 1120 }); 1121 }); 1122 1123 /** 1124 * The callback function is used for pasteboard content changes 1125 */ 1126 function contentChanges() { 1127 console.info('#EVENT: The content is changed in the pasteboard'); 1128 } 1129}); 1130