1/* 2 * Copyright (c) 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 16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; 17import UDC from '@ohos.data.unifiedDataChannel'; 18import UTD from '@ohos.data.uniformTypeDescriptor'; 19import image from '@ohos.multimedia.image'; 20 21const TEST_BUNDLE_NAME = 'MyBundleName'; 22const KEY_TEST_ELEMENT = 'TestKey'; 23const VALUE_TEST_ELEMENT = 'TestValue'; 24const TEST_ID = 123456; 25const TEST_ABILITY_NAME = 'MyAbilityName'; 26const TEST_MODULE = 'MyModule'; 27const NUM_2M = 2 * 1024 * 1024; 28const NUM_4M = 4 * 1024 * 1024; 29const LONG_TEST2M = 'a'.repeat(NUM_2M); 30const LONG_TESTOVER2M = 'a'.repeat((NUM_2M + 1)); 31 32let U8_ARRAY = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 33const ERROR_PARAMETER = '401'; 34const NO_PERMISSION = '201'; 35 36describe('UdmfJSTest', function () { 37 38 const optionsValid = { intention: 'DataHub', }; 39 40 /** 41 * @tc.name UdmfTextTest 42 * @tc.desc Test Js Api Text testcase 43 * @tc.type: FUNC 44 * @tc.require: issueNumber 45 */ 46 it('UdmfTextTest', 0, function () { 47 console.info('UdmfTextTest start'); 48 let text = new UDC.Text(); 49 text.details = { 50 Key: 'text' + KEY_TEST_ELEMENT, 51 Value: 'text' + VALUE_TEST_ELEMENT, 52 }; 53 let unifiedData = new UDC.UnifiedData(text); 54 let records = unifiedData.getRecords(); 55 expect(records.length).assertEqual(1); 56 expect(records[0].details.Key).assertEqual('text' + KEY_TEST_ELEMENT); 57 expect(records[0].details.Value).assertEqual('text' + VALUE_TEST_ELEMENT); 58 console.info('UdmfTextTest end'); 59 }); 60 61 /** 62 * @tc.name UdmfPlainTextTest 63 * @tc.desc Test Js Api PlainText testcase 64 * @tc.type: FUNC 65 * @tc.require: issueNumber 66 */ 67 it('UdmfPlainTextTest', 0, function () { 68 console.info('UdmfPlainTextTest start'); 69 let plainText = new UDC.PlainText(); 70 plainText.details = { 71 Key: 'text' + KEY_TEST_ELEMENT, 72 Value: 'text' + VALUE_TEST_ELEMENT, 73 }; 74 plainText.textContent = 'textContent'; 75 plainText.abstract = 'abstract'; 76 let unifiedData = new UDC.UnifiedData(plainText); 77 let records = unifiedData.getRecords(); 78 expect(records.length).assertEqual(1); 79 expect(records[0].details.Key).assertEqual('text' + KEY_TEST_ELEMENT); 80 expect(records[0].details.Value).assertEqual('text' + VALUE_TEST_ELEMENT); 81 expect(records[0].textContent).assertEqual('textContent'); 82 expect(records[0].abstract).assertEqual('abstract'); 83 console.info('UdmfPlainTextTest end'); 84 }); 85 86 /** 87 * @tc.name UdmfHyperlinkTest 88 * @tc.desc Test Js Api Hyperlink testcase 89 * @tc.type: FUNC 90 * @tc.require: issueNumber 91 */ 92 it('UdmfHyperlinkTest', 0, function () { 93 console.info('UdmfHyperlinkTest start'); 94 let link = new UDC.Hyperlink(); 95 link.details = { 96 Key: 'link' + KEY_TEST_ELEMENT, 97 Value: 'link' + VALUE_TEST_ELEMENT, 98 }; 99 link.url = 'url'; 100 link.description = 'description'; 101 let unifiedData = new UDC.UnifiedData(link); 102 let records = unifiedData.getRecords(); 103 expect(records.length).assertEqual(1); 104 expect(records[0].details.Key).assertEqual('link' + KEY_TEST_ELEMENT); 105 expect(records[0].details.Value).assertEqual('link' + VALUE_TEST_ELEMENT); 106 expect(records[0].url).assertEqual('url'); 107 expect(records[0].description).assertEqual('description'); 108 console.info('UdmfHyperlinkTest end'); 109 }); 110 111 /** 112 * @tc.name UdmfHtmlTest 113 * @tc.desc Test Js Api HTML testcase 114 * @tc.type: FUNC 115 * @tc.require: issueNumber 116 */ 117 it('UdmfHtmlTest', 0, function () { 118 console.info('UdmfHtmlTest start'); 119 let html = new UDC.HTML(); 120 html.details = { 121 Key: 'html' + KEY_TEST_ELEMENT, 122 Value: 'html' + VALUE_TEST_ELEMENT, 123 }; 124 html.htmlContent = 'htmlContent'; 125 html.plainContent = 'plainContent'; 126 let unifiedData = new UDC.UnifiedData(html); 127 let records = unifiedData.getRecords(); 128 expect(records.length).assertEqual(1); 129 expect(records[0].details.Key).assertEqual('html' + KEY_TEST_ELEMENT); 130 expect(records[0].details.Value).assertEqual('html' + VALUE_TEST_ELEMENT); 131 expect(records[0].htmlContent).assertEqual('htmlContent'); 132 expect(records[0].plainContent).assertEqual('plainContent'); 133 console.info('UdmfHtmlTest end'); 134 }); 135 136 /** 137 * @tc.name UdmfFileTest 138 * @tc.desc Test Js Api File testcase 139 * @tc.type: FUNC 140 * @tc.require: issueNumber 141 */ 142 it('UdmfFileTest', 0, function () { 143 console.info('UdmfFileTest start'); 144 let file = new UDC.File(); 145 file.details = { 146 Key: 'file' + KEY_TEST_ELEMENT, 147 Value: 'file' + VALUE_TEST_ELEMENT, 148 }; 149 file.uri = 'uri'; 150 let unifiedData = new UDC.UnifiedData(file); 151 let records = unifiedData.getRecords(); 152 expect(records.length).assertEqual(1); 153 expect(records[0].details.Key).assertEqual('file' + KEY_TEST_ELEMENT); 154 expect(records[0].details.Value).assertEqual('file' + VALUE_TEST_ELEMENT); 155 expect(records[0].uri).assertEqual('uri'); 156 console.info('UdmfFileTest end'); 157 }); 158 159 /** 160 * @tc.name UdmfFolderTest 161 * @tc.desc Test Js Api Folder testcase 162 * @tc.type: FUNC 163 * @tc.require: issueNumber 164 */ 165 it('UdmfFolderTest', 0, function () { 166 console.info('UdmfFolderTest start'); 167 let folder = new UDC.Folder(); 168 folder.details = { 169 Key: 'folder' + KEY_TEST_ELEMENT, 170 Value: 'folder' + VALUE_TEST_ELEMENT, 171 }; 172 folder.uri = 'folderUri'; 173 let unifiedData = new UDC.UnifiedData(folder); 174 let records = unifiedData.getRecords(); 175 expect(records.length).assertEqual(1); 176 expect(records[0].details.Key).assertEqual('folder' + KEY_TEST_ELEMENT); 177 expect(records[0].details.Value).assertEqual('folder' + VALUE_TEST_ELEMENT); 178 expect(records[0].uri).assertEqual('folderUri'); 179 console.info('UdmfFolderTest end'); 180 }); 181 182 /** 183 * @tc.name UdmfImageTest 184 * @tc.desc Test Js Api Image testcase 185 * @tc.type: FUNC 186 * @tc.require: issueNumber 187 */ 188 it('UdmfImageTest', 0, function () { 189 console.info('UdmfImageTest start'); 190 let image = new UDC.Image(); 191 image.details = { 192 Key: 'image' + KEY_TEST_ELEMENT, 193 Value: 'image' + VALUE_TEST_ELEMENT, 194 }; 195 image.imageUri = 'imageUri'; 196 let unifiedData = new UDC.UnifiedData(image); 197 let records = unifiedData.getRecords(); 198 expect(records.length).assertEqual(1); 199 expect(records[0].details.Key).assertEqual('image' + KEY_TEST_ELEMENT); 200 expect(records[0].details.Value).assertEqual('image' + VALUE_TEST_ELEMENT); 201 expect(records[0].imageUri).assertEqual('imageUri'); 202 console.info('UdmfImageTest end'); 203 }); 204 205 /** 206 * @tc.name UdmfVideoTest 207 * @tc.desc Test Js Api Video testcase 208 * @tc.type: FUNC 209 * @tc.require: issueNumber 210 */ 211 it('UdmfVideoTest', 0, function () { 212 console.info('UdmfVideoTest start'); 213 let video = new UDC.Video(); 214 video.details = { 215 Key: 'video' + KEY_TEST_ELEMENT, 216 Value: 'video' + VALUE_TEST_ELEMENT, 217 }; 218 video.videoUri = 'videoUri'; 219 let unifiedData = new UDC.UnifiedData(video); 220 let records = unifiedData.getRecords(); 221 expect(records.length).assertEqual(1); 222 expect(records[0].details.Key).assertEqual('video' + KEY_TEST_ELEMENT); 223 expect(records[0].details.Value).assertEqual('video' + VALUE_TEST_ELEMENT); 224 expect(records[0].videoUri).assertEqual('videoUri'); 225 console.info('UdmfVideoTest end'); 226 }); 227 228 /** 229 * @tc.name UdmfSystemDefinedRecordTest 230 * @tc.desc Test Js Api SystemDefinedRecord testcase 231 * @tc.type: FUNC 232 * @tc.require: issueNumber 233 */ 234 it('UdmfSystemDefinedRecordTest', 0, function () { 235 console.info('UdmfSystemDefinedRecordTest start'); 236 let systemDefinedRecord = new UDC.SystemDefinedRecord(); 237 systemDefinedRecord.details = { 238 recordKey1: 'systemDefinedRecord' + KEY_TEST_ELEMENT, 239 recordKey2: 1, 240 recordKey3: U8_ARRAY, 241 }; 242 let unifiedData = new UDC.UnifiedData(systemDefinedRecord); 243 let records = unifiedData.getRecords(); 244 expect(records.length).assertEqual(1); 245 expect(records[0].details.recordKey1).assertEqual('systemDefinedRecord' + KEY_TEST_ELEMENT); 246 expect(records[0].details.recordKey2).assertEqual(1); 247 for (let i = 0; i < U8_ARRAY.length; i++) { 248 expect(records[0].details.recordKey3[i]).assertEqual(U8_ARRAY[i]); 249 } 250 console.info('UdmfSystemDefinedRecordTest end'); 251 }); 252 253 /** 254 * @tc.name UdmfSystemDefinedPixelMapTest 255 * @tc.desc Test Js Api SystemDefinedPixelMap testcase 256 * @tc.type: FUNC 257 * @tc.require: issueNumber 258 */ 259 it('UdmfSystemDefinedPixelMapTest', 0, function () { 260 console.info('UdmfSystemDefinedPixelMapTest start'); 261 let systemDefinedPixelMap = new UDC.SystemDefinedPixelMap(); 262 systemDefinedPixelMap.details = { 263 recordKey1: 'systemDefinedPixelMap' + KEY_TEST_ELEMENT, 264 recordKey2: 1, 265 recordKey3: U8_ARRAY, 266 }; 267 systemDefinedPixelMap.rawData = U8_ARRAY; 268 let unifiedData = new UDC.UnifiedData(systemDefinedPixelMap); 269 let records = unifiedData.getRecords(); 270 expect(records.length).assertEqual(1); 271 expect(records[0].details.recordKey1).assertEqual('systemDefinedPixelMap' + KEY_TEST_ELEMENT); 272 expect(records[0].details.recordKey2).assertEqual(1); 273 for (let i = 0; i < U8_ARRAY.length; i++) { 274 expect(records[0].details.recordKey3[i]).assertEqual(U8_ARRAY[i]); 275 } 276 for (let i = 0; i < U8_ARRAY.length; i++) { 277 expect(records[0].rawData[i]).assertEqual(U8_ARRAY[i]); 278 } 279 console.info('UdmfSystemDefinedPixelMapTest end'); 280 }); 281 282 /** 283 * @tc.name UdmfSystemDefinedFormTest 284 * @tc.desc Test Js Api SystemDefinedForm testcase 285 * @tc.type: FUNC 286 * @tc.require: issueNumber 287 */ 288 it('UdmfSystemDefinedFormTest', 0, function () { 289 console.info('UdmfSystemDefinedFormTest start'); 290 let form = new UDC.SystemDefinedForm(); 291 form.formId = TEST_ID; 292 form.formName = 'MyFormName'; 293 form.bundleName = TEST_BUNDLE_NAME; 294 form.abilityName = TEST_ABILITY_NAME; 295 form.module = TEST_MODULE; 296 form.details = { 297 formKey1: 1, 298 formKey2: 'form' + VALUE_TEST_ELEMENT, 299 formKey3: U8_ARRAY, 300 }; 301 let unifiedData = new UDC.UnifiedData(form); 302 let records = unifiedData.getRecords(); 303 expect(records.length).assertEqual(1); 304 expect(records[0].details.formKey1).assertEqual(1); 305 expect(records[0].details.formKey2).assertEqual('form' + VALUE_TEST_ELEMENT); 306 for (let i = 0; i < U8_ARRAY.length; i++) { 307 expect(records[0].details.formKey3[i]).assertEqual(U8_ARRAY[i]); 308 } 309 expect(records[0].formId).assertEqual(TEST_ID); 310 expect(records[0].formName).assertEqual('MyFormName'); 311 expect(records[0].bundleName).assertEqual(TEST_BUNDLE_NAME); 312 expect(records[0].abilityName).assertEqual(TEST_ABILITY_NAME); 313 expect(records[0].module).assertEqual(TEST_MODULE); 314 console.info('UdmfSystemDefinedFormTest end'); 315 }); 316 317 /** 318 * @tc.name UdmfSystemDefinedAppItemTest 319 * @tc.desc Test Js Api SystemDefinedAppItem testcase 320 * @tc.type: FUNC 321 * @tc.require: issueNumber 322 */ 323 it('UdmfSystemDefinedAppItemTest', 0, function () { 324 console.info('UdmfSystemDefinedAppItemTest start'); 325 let appItem = new UDC.SystemDefinedAppItem(); 326 appItem.appId = 'MyAppId'; 327 appItem.appName = 'MyAppName'; 328 appItem.abilityName = TEST_ABILITY_NAME; 329 appItem.bundleName = TEST_BUNDLE_NAME; 330 appItem.appIconId = 'MyAppIconId'; 331 appItem.appLabelId = 'MyAppLabelId'; 332 appItem.details = { 333 appItemKey1: 1, 334 appItemKey2: 'appItem' + VALUE_TEST_ELEMENT, 335 appItemKey3: U8_ARRAY, 336 }; 337 let unifiedData = new UDC.UnifiedData(appItem); 338 let records = unifiedData.getRecords(); 339 expect(records.length).assertEqual(1); 340 expect(records[0].details.appItemKey1).assertEqual(1); 341 expect(records[0].details.appItemKey2).assertEqual('appItem' + VALUE_TEST_ELEMENT); 342 for (let i = 0; i < U8_ARRAY.length; i++) { 343 expect(records[0].details.appItemKey3[i]).assertEqual(U8_ARRAY[i]); 344 } 345 expect(records[0].appId).assertEqual('MyAppId'); 346 expect(records[0].appName).assertEqual('MyAppName'); 347 expect(records[0].abilityName).assertEqual(TEST_ABILITY_NAME); 348 expect(records[0].bundleName).assertEqual(TEST_BUNDLE_NAME); 349 expect(records[0].appIconId).assertEqual('MyAppIconId'); 350 expect(records[0].appLabelId).assertEqual('MyAppLabelId'); 351 console.info('UdmfSystemDefinedAppItemTest end'); 352 }); 353 354 /** 355 * @tc.name UdmfSystemDefinedFormTest 356 * @tc.desc Test Js Api ApplicationDefinedRecord testcase 357 * @tc.type: FUNC 358 * @tc.require: issueNumber 359 */ 360 it('UdmfApplicationDefinedRecord', 0, function () { 361 console.info('UdmfApplicationDefinedRecord start'); 362 let applicationDefinedRecord = new UDC.ApplicationDefinedRecord(); 363 applicationDefinedRecord.applicationDefinedType = 'applicationDefinedType'; 364 applicationDefinedRecord.rawData = U8_ARRAY; 365 let unifiedData = new UDC.UnifiedData(applicationDefinedRecord); 366 let records = unifiedData.getRecords(); 367 expect(records.length).assertEqual(1); 368 expect(records[0].applicationDefinedType).assertEqual('applicationDefinedType'); 369 for (let i = 0; i < U8_ARRAY.length; i++) { 370 expect(records[0].rawData[i]).assertEqual(U8_ARRAY[i]); 371 } 372 console.info('UdmfApplicationDefinedRecord end'); 373 }); 374 375 /** 376 * @tc.name UdmfAllRecordsTest 377 * @tc.desc Test Js AllRecords testcase 378 * @tc.type: FUNC 379 * @tc.require: issueNumber 380 */ 381 it('UdmfAllRecordsTest', 0, function () { 382 console.info('UdmfAllRecordsTest start'); 383 let text = new UDC.Text(); 384 let unifiedDatas = new UDC.UnifiedData(text); 385 let plainText = new UDC.PlainText(); 386 unifiedDatas.addRecord(plainText); 387 let link = new UDC.Hyperlink(); 388 unifiedDatas.addRecord(link); 389 let html = new UDC.HTML(); 390 unifiedDatas.addRecord(html); 391 let file = new UDC.File(); 392 unifiedDatas.addRecord(file); 393 let folder = new UDC.Folder(); 394 unifiedDatas.addRecord(folder); 395 let image = new UDC.Image(); 396 unifiedDatas.addRecord(image); 397 let video = new UDC.Video(); 398 unifiedDatas.addRecord(video); 399 let systemDefinedRecord = new UDC.SystemDefinedRecord(); 400 unifiedDatas.addRecord(systemDefinedRecord); 401 let systemDefinedPixelMap = new UDC.SystemDefinedPixelMap(); 402 unifiedDatas.addRecord(systemDefinedPixelMap); 403 let form = new UDC.SystemDefinedForm(); 404 unifiedDatas.addRecord(form); 405 let appItem = new UDC.SystemDefinedAppItem(); 406 unifiedDatas.addRecord(appItem); 407 let applicationDefinedRecord = new UDC.ApplicationDefinedRecord(); 408 unifiedDatas.addRecord(applicationDefinedRecord); 409 let records = unifiedDatas.getRecords(); 410 expect(records.length).assertEqual(13); 411 expect(records[0].getType()).assertEqual(UTD.UniformDataType.TEXT); 412 expect(records[1].getType()).assertEqual(UTD.UniformDataType.PLAIN_TEXT); 413 expect(records[2].getType()).assertEqual(UTD.UniformDataType.HYPERLINK); 414 expect(records[3].getType()).assertEqual(UTD.UniformDataType.HTML); 415 expect(records[4].getType()).assertEqual(UTD.UniformDataType.FILE); 416 expect(records[5].getType()).assertEqual(UTD.UniformDataType.FOLDER); 417 expect(records[6].getType()).assertEqual(UTD.UniformDataType.IMAGE); 418 expect(records[7].getType()).assertEqual(UTD.UniformDataType.VIDEO); 419 expect(records[9].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_PIXEL_MAP); 420 expect(records[10].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_FORM); 421 expect(records[11].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_APP_ITEM); 422 console.info('UdmfAllRecordsTest end'); 423 }); 424 425 /** 426 * @tc.name UdmfText2MPlainText 427 * @tc.desc PlainText 2MB 428 * @tc.type: FUNC 429 * @tc.require: issueNumber 430 */ 431 it('UdmfText2MPlainText', 0, async function (done) { 432 const TAG = 'UdmfText2MPlainText:'; 433 console.info(TAG, 'start'); 434 try { 435 let plainText = new UDC.PlainText(); 436 plainText.textContent = LONG_TEST2M; 437 let unifiedData = new UDC.UnifiedData(plainText); 438 UDC.insertData(optionsValid, unifiedData).then((data) => { 439 console.info(TAG, `insert success. The key: ${data}`); 440 let options = { key: data }; 441 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 442 UDC.queryData(options).then((data) => { 443 console.info(TAG, 'query success.'); 444 expect(data.length).assertEqual(1); 445 expect(data[0].getRecords()[0].textContent).assertEqual(LONG_TEST2M); 446 UDC.deleteData(options).then((data) => { 447 console.info(TAG, 'delete success.'); 448 expect(data.length).assertEqual(1); 449 done(); 450 }).catch(() => { 451 console.error(TAG, 'Unreachable code!'); 452 expect(null).assertFail(); 453 done(); 454 }); 455 }).catch(() => { 456 console.error(TAG, 'Unreachable code!'); 457 expect(null).assertFail(); 458 done(); 459 }); 460 }).catch(() => { 461 console.error(TAG, 'Unreachable code!'); 462 expect(null).assertFail(); 463 done(); 464 }); 465 } catch (e) { 466 console.error(TAG, 'Unreachable code!'); 467 expect(null).assertFail(); 468 done(); 469 } 470 console.info(TAG, 'end'); 471 }); 472 473 /** 474 * @tc.name UdmfTextOver2MTest 475 * @tc.desc Test Over 2MB 476 * @tc.type: FUNC 477 * @tc.require: issueNumber 478 */ 479 it('UdmfTextOver2MTest', 0, async function (done) { 480 const TAG = 'UdmfTextOver2MTest:'; 481 console.info(TAG, 'start'); 482 try { 483 let text = new UDC.Text(); 484 text.details = { 485 title: '', 486 content: LONG_TESTOVER2M, 487 }; 488 let unifiedData = new UDC.UnifiedData(text); 489 UDC.insertData(optionsValid, unifiedData).then((data) => { 490 console.info(TAG, `insert success. The key: ${data}`); 491 let options = { key: data }; 492 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 493 UDC.queryData(options).then((data) => { 494 console.info(TAG, 'query success.'); 495 expect(data.length).assertEqual(1); 496 expect(data[0].getRecords()[0].details.content).assertEqual(LONG_TESTOVER2M); 497 UDC.deleteData(options).then((data) => { 498 console.info(TAG, 'delete success.'); 499 expect(data.length).assertEqual(1); 500 done(); 501 }).catch(() => { 502 console.error(TAG, 'Unreachable code!'); 503 expect(null).assertFail(); 504 done(); 505 }); 506 }).catch(() => { 507 console.error(TAG, 'Unreachable code!'); 508 expect(null).assertFail(); 509 done(); 510 }); 511 }).catch(() => { 512 console.error(TAG, 'Unreachable code!'); 513 expect(null).assertFail(); 514 done(); 515 }); 516 } catch (e) { 517 console.error(TAG, 'Unreachable code!'); 518 expect(null).assertFail(); 519 done(); 520 } 521 console.info(TAG, 'end'); 522 }); 523 524 /** 525 * @tc.name UdmfTextOver2MPlainText 526 * @tc.desc PlainText Over 2MB 527 * @tc.type: FUNC 528 * @tc.require: issueNumber 529 */ 530 it('UdmfTextOver2MPlainText', 0, async function (done) { 531 const TAG = 'UdmfTextOver2MPlainText:'; 532 console.info(TAG, 'start'); 533 try { 534 let plainText = new UDC.PlainText(); 535 plainText.textContent = LONG_TESTOVER2M; 536 let unifiedData = new UDC.UnifiedData(plainText); 537 UDC.insertData(optionsValid, unifiedData).then((data) => { 538 console.info(TAG, `insert success. The key: ${data}`); 539 let options = { key: data }; 540 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 541 UDC.queryData(options).then((data) => { 542 console.info(TAG, 'query success.'); 543 expect(data.length).assertEqual(1); 544 expect(data[0].getRecords()[0].textContent).assertEqual(LONG_TESTOVER2M); 545 UDC.deleteData(options).then((data) => { 546 console.info(TAG, 'delete success.'); 547 expect(data.length).assertEqual(1); 548 done(); 549 }).catch(() => { 550 console.error(TAG, 'Unreachable code!'); 551 expect(null).assertFail(); 552 done(); 553 }); 554 }).catch(() => { 555 console.error(TAG, 'Unreachable code!'); 556 expect(null).assertFail(); 557 done(); 558 }); 559 }).catch(() => { 560 console.error(TAG, 'Unreachable code!'); 561 expect(null).assertFail(); 562 done(); 563 }); 564 } catch (e) { 565 console.error(TAG, 'Unreachable code!'); 566 expect(null).assertFail(); 567 done(); 568 } 569 console.info(TAG, 'end'); 570 }); 571 572 /** 573 * @tc.name UdmfTextOver2MHyperlink 574 * @tc.desc Hyperlink Over 2MB 575 * @tc.type: FUNC 576 * @tc.require: issueNumber 577 */ 578 it('UdmfTextOver2MHyperlink', 0, async function (done) { 579 const TAG = 'UdmfTextOver2MHyperlink:'; 580 console.info(TAG, 'start'); 581 try { 582 let link = new UDC.Hyperlink(); 583 link.url = LONG_TESTOVER2M; 584 let unifiedData = new UDC.UnifiedData(link); 585 UDC.insertData(optionsValid, unifiedData).then((data) => { 586 console.info(TAG, `insert success. The key: ${data}`); 587 let options = { key: data }; 588 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 589 UDC.queryData(options).then((data) => { 590 console.info(TAG, 'query success.'); 591 expect(data.length).assertEqual(1); 592 expect(data[0].getRecords()[0].url).assertEqual(LONG_TESTOVER2M); 593 UDC.deleteData(options).then((data) => { 594 console.info(TAG, 'delete success.'); 595 expect(data.length).assertEqual(1); 596 done(); 597 }).catch(() => { 598 console.error(TAG, 'Unreachable code!'); 599 expect(null).assertFail(); 600 done(); 601 }); 602 }).catch(() => { 603 console.error(TAG, 'Unreachable code!'); 604 expect(null).assertFail(); 605 done(); 606 }); 607 }).catch(() => { 608 console.error(TAG, 'Unreachable code!'); 609 expect(null).assertFail(); 610 done(); 611 }); 612 } catch (e) { 613 console.error(TAG, 'Unreachable code!'); 614 expect(null).assertFail(); 615 done(); 616 } 617 console.info(TAG, 'end'); 618 }); 619 620 /** 621 * @tc.name UdmfTextOver2MHTML 622 * @tc.desc HTML Over 2MB 623 * @tc.type: FUNC 624 * @tc.require: issueNumber 625 */ 626 it('UdmfTextOver2MHTML', 0, async function (done) { 627 const TAG = 'UdmfTextOver2MHTML:'; 628 console.info(TAG, 'start'); 629 try { 630 let html = new UDC.HTML(); 631 html.htmlContent = LONG_TESTOVER2M; 632 let unifiedData = new UDC.UnifiedData(html); 633 UDC.insertData(optionsValid, unifiedData).then((data) => { 634 console.info(TAG, `insert success. The key: ${data}`); 635 let options = { key: data }; 636 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 637 UDC.queryData(options).then((data) => { 638 console.info(TAG, 'query success.'); 639 expect(data.length).assertEqual(1); 640 expect(data[0].getRecords()[0].htmlContent).assertEqual(LONG_TESTOVER2M); 641 UDC.deleteData(options).then((data) => { 642 console.info(TAG, 'delete success.'); 643 expect(data.length).assertEqual(1); 644 done(); 645 }).catch(() => { 646 console.error(TAG, 'Unreachable code!'); 647 expect(null).assertFail(); 648 done(); 649 }); 650 }).catch(() => { 651 console.error(TAG, 'Unreachable code!'); 652 expect(null).assertFail(); 653 done(); 654 }); 655 }).catch(() => { 656 console.error(TAG, 'Unreachable code!'); 657 expect(null).assertFail(); 658 done(); 659 }); 660 } catch (e) { 661 console.error(TAG, 'Unreachable code!'); 662 expect(null).assertFail(); 663 done(); 664 } 665 console.info(TAG, 'end'); 666 }); 667 668 /** 669 * @tc.name UdmfTextOver2MSystemDefinedRecord 670 * @tc.desc SystemDefinedRecord Over 2MB 671 * @tc.type: FUNC 672 * @tc.require: issueNumber 673 */ 674 it('UdmfTextOver2MSystemDefinedRecord', 0, async function (done) { 675 const TAG = 'UdmfTextOver2MSystemDefinedRecord:'; 676 console.info(TAG, 'start'); 677 try { 678 let systemDefinedRecord = new UDC.SystemDefinedRecord(); 679 systemDefinedRecord.details = { 680 title: '', 681 content: LONG_TESTOVER2M 682 }; 683 let unifiedData = new UDC.UnifiedData(systemDefinedRecord); 684 UDC.insertData(optionsValid, unifiedData).then((data) => { 685 console.info(TAG, `insert success. The key: ${data}`); 686 let options = { key: data }; 687 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 688 UDC.queryData(options).then((data) => { 689 console.info(TAG, 'query success.'); 690 expect(data.length).assertEqual(1); 691 expect(data[0].getRecords()[0].details.content).assertEqual(LONG_TESTOVER2M); 692 UDC.deleteData(options).then((data) => { 693 console.info(TAG, 'delete success.'); 694 expect(data.length).assertEqual(1); 695 done(); 696 }).catch(() => { 697 console.error(TAG, 'Unreachable code!'); 698 expect(null).assertFail(); 699 done(); 700 }); 701 }).catch(() => { 702 console.error(TAG, 'Unreachable code!'); 703 expect(null).assertFail(); 704 done(); 705 }); 706 }).catch(() => { 707 console.error(TAG, 'Unreachable code!'); 708 expect(null).assertFail(); 709 done(); 710 }); 711 } catch (e) { 712 console.error(TAG, 'Unreachable code!'); 713 expect(null).assertFail(); 714 done(); 715 } 716 console.info(TAG, 'end'); 717 }); 718 719 /** 720 * @tc.name UdmfTextOver2MSystemDefinedForm 721 * @tc.desc SystemDefinedForm Over 2MB 722 * @tc.type: FUNC 723 * @tc.require: issueNumber 724 */ 725 it('UdmfTextOver2MSystemDefinedForm', 0, async function (done) { 726 const TAG = 'UdmfTextOver2MSystemDefinedForm:'; 727 console.info(TAG, 'start'); 728 try { 729 let systemDefinedForm = new UDC.SystemDefinedForm(); 730 systemDefinedForm.formId = 123; 731 systemDefinedForm.formName = '1'; 732 systemDefinedForm.bundleName = 'MyBundleName'; 733 systemDefinedForm.abilityName = 'abilityName'; 734 systemDefinedForm.module = LONG_TESTOVER2M; 735 let unifiedData = new UDC.UnifiedData(systemDefinedForm); 736 UDC.insertData(optionsValid, unifiedData).then((data) => { 737 console.info(TAG, `insert success. The key: ${data}`); 738 let options = { key: data }; 739 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 740 UDC.queryData(options).then((data) => { 741 console.info(TAG, 'query success.'); 742 expect(data.length).assertEqual(1); 743 console.info(TAG, 'formId= ' + data[0].getRecords()[0].formId); 744 console.info(TAG, 'formName= ' + data[0].getRecords()[0].formName); 745 console.info(TAG, 'bundleName= ' + data[0].getRecords()[0].bundleName); 746 console.info(TAG, 'abilityName= ' + data[0].getRecords()[0].abilityName); 747 expect(data[0].getRecords()[0].module).assertEqual(LONG_TESTOVER2M); 748 UDC.deleteData(options).then((data) => { 749 console.info(TAG, 'delete success.'); 750 expect(data.length).assertEqual(1); 751 done(); 752 }).catch(() => { 753 console.error(TAG, 'Unreachable code!'); 754 expect(null).assertFail(); 755 done(); 756 }); 757 }).catch(() => { 758 console.error(TAG, 'Unreachable code!'); 759 expect(null).assertFail(); 760 done(); 761 }); 762 }).catch(() => { 763 console.error(TAG, 'Unreachable code!'); 764 expect(null).assertFail(); 765 done(); 766 }); 767 } catch (e) { 768 console.error(TAG, 'Unreachable code!'); 769 expect(null).assertFail(); 770 done(); 771 } 772 console.info(TAG, 'end'); 773 }); 774 775 /** 776 * @tc.name UdmfTextOver2MSystemDefinedAppItem 777 * @tc.desc SystemDefinedAppItem Over 2MB 778 * @tc.type: FUNC 779 * @tc.require: issueNumber 780 */ 781 it('UdmfTextOver2MSystemDefinedAppItem', 0, async function (done) { 782 const TAG = 'UdmfTextOver2MSystemDefinedAppItem:'; 783 console.info(TAG, 'start'); 784 try { 785 let systemDefinedAppItem = new UDC.SystemDefinedAppItem(); 786 systemDefinedAppItem.appId = '1'; 787 systemDefinedAppItem.appName = '2'; 788 systemDefinedAppItem.appIconId = '3'; 789 systemDefinedAppItem.appLabelId = '4'; 790 systemDefinedAppItem.bundleName = '5'; 791 systemDefinedAppItem.abilityName = LONG_TESTOVER2M; 792 let unifiedData = new UDC.UnifiedData(systemDefinedAppItem); 793 UDC.insertData(optionsValid, unifiedData).then((data) => { 794 console.info(TAG, `insert success. The key: ${data}`); 795 let options = { key: data }; 796 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 797 UDC.queryData(options).then((data) => { 798 console.info(TAG, 'query success.'); 799 expect(data.length).assertEqual(1); 800 console.info(TAG, 'appId= ' + data[0].getRecords()[0].appId); 801 console.info(TAG, 'appName= ' + data[0].getRecords()[0].appName); 802 console.info(TAG, 'appIconId= ' + data[0].getRecords()[0].appIconId); 803 console.info(TAG, 'appLabelId= ' + data[0].getRecords()[0].appLabelId); 804 console.info(TAG, 'bundleName= ' + data[0].getRecords()[0].bundleName); 805 expect(data[0].getRecords()[0].abilityName).assertEqual(LONG_TESTOVER2M); 806 UDC.deleteData(options).then((data) => { 807 console.info(TAG, 'delete success.'); 808 expect(data.length).assertEqual(1); 809 done(); 810 }).catch(() => { 811 console.error(TAG, 'Unreachable code!'); 812 expect(null).assertFail(); 813 done(); 814 }); 815 }).catch(() => { 816 console.error(TAG, 'Unreachable code!'); 817 expect(null).assertFail(); 818 done(); 819 }); 820 }).catch(() => { 821 console.error(TAG, 'Unreachable code!'); 822 expect(null).assertFail(); 823 done(); 824 }); 825 } catch (e) { 826 console.error(TAG, 'Unreachable code!'); 827 expect(null).assertFail(); 828 done(); 829 } 830 console.info(TAG, 'end'); 831 }); 832 833 /** 834 * @tc.name UdmfTextOver2MSystemDefinedPixelMap 835 * @tc.desc SystemDefinedPixelMap Over 2MB 836 * @tc.type: FUNC 837 * @tc.require: issueNumber 838 */ 839 it('UdmfTextOver2MSystemDefinedPixelMap', 0, async function (done) { 840 const TAG = 'UdmfTextOver2MSystemDefinedPixelMap:'; 841 console.info(TAG, 'start'); 842 try { 843 let text = new UDC.SystemDefinedPixelMap(); 844 let longU8ArrayData = new Uint8Array(NUM_4M); 845 longU8ArrayData.fill(0); 846 text.rawData = longU8ArrayData; 847 text.details = { 848 recordKey1: 'systemDefinedPixelMap' + KEY_TEST_ELEMENT, 849 recordKey2: U8_ARRAY, 850 }; 851 let unifiedData = new UDC.UnifiedData(text); 852 UDC.insertData(optionsValid, unifiedData).then((data) => { 853 console.info(TAG, `insert success. The key: ${data}`); 854 let options = { key: data }; 855 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 856 UDC.queryData(options).then((data) => { 857 console.info(TAG, 'query success.'); 858 expect(data.length).assertEqual(1); 859 let records = data[0].getRecords(); 860 expect(records.length).assertEqual(1); 861 expect(records[0].details.recordKey1).assertEqual('systemDefinedPixelMap' + KEY_TEST_ELEMENT); 862 for (let i = 0; i < U8_ARRAY.length; i++) { 863 expect(records[0].details.recordKey2[i]).assertEqual(U8_ARRAY[i]); 864 } 865 expect(records[0].rawData.toString()).assertEqual(longU8ArrayData.toString()); 866 UDC.deleteData(options).then((data) => { 867 console.info(TAG, 'delete success.'); 868 expect(data.length).assertEqual(1); 869 done(); 870 }).catch(() => { 871 console.error(TAG, 'Unreachable code!'); 872 expect(null).assertFail(); 873 done(); 874 }); 875 }).catch(() => { 876 console.error(TAG, 'Unreachable code!'); 877 expect(null).assertFail(); 878 done(); 879 }); 880 }).catch(() => { 881 console.error(TAG, 'Unreachable code!'); 882 expect(null).assertFail(); 883 done(); 884 }); 885 } catch (e) { 886 console.error(TAG, 'Unreachable code!'); 887 expect(null).assertFail(); 888 done(); 889 } 890 console.info(TAG, 'end'); 891 }); 892 893 /** 894 * @tc.name UdmfTextOver2MApplicationDefinedRecord 895 * @tc.desc ApplicationDefinedRecord Over 2MB 896 * @tc.type: FUNC 897 * @tc.require: issueNumber 898 */ 899 it('UdmfTextOver2MApplicationDefinedRecord', 0, async function (done) { 900 const TAG = 'UdmfTextOver2MApplicationDefinedRecord:'; 901 console.info(TAG, 'start'); 902 try { 903 let text = new UDC.ApplicationDefinedRecord(); 904 text.applicationDefinedType = '1'; 905 text.rawData = new Uint8Array(NUM_4M); 906 let unifiedData = new UDC.UnifiedData(text); 907 UDC.insertData(optionsValid, unifiedData).then((data) => { 908 console.info(TAG, `insert success. The key: ${data}`); 909 let options = { key: data }; 910 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 911 UDC.queryData(options).then((data) => { 912 console.info(TAG, 'query success.'); 913 expect(data.length).assertEqual(1); 914 UDC.deleteData(options).then((data) => { 915 console.info(TAG, 'delete success.'); 916 expect(data.length).assertEqual(1); 917 done(); 918 }).catch(() => { 919 console.error(TAG, 'Unreachable code!'); 920 expect(null).assertFail(); 921 done(); 922 }); 923 }).catch(() => { 924 console.error(TAG, 'Unreachable code!'); 925 expect(null).assertFail(); 926 done(); 927 }); 928 }).catch(() => { 929 console.error(TAG, 'Unreachable code!'); 930 expect(null).assertFail(); 931 done(); 932 }); 933 } catch (e) { 934 console.error(TAG, 'Unreachable code!'); 935 expect(null).assertFail(); 936 done(); 937 } 938 console.info(TAG, 'end'); 939 }); 940 941 /** 942 * @tc.name UdmfText4M 943 * @tc.desc UdmfText4M 4MB 944 * @tc.type: FUNC 945 * @tc.require: issueNumber 946 */ 947 it('UdmfText4M', 0, async function (done) { 948 const TAG = 'UdmfText4M:'; 949 console.info(TAG, 'start'); 950 try { 951 let text = new UDC.PlainText(); 952 text.textContent = LONG_TEST2M; 953 let unifiedData = new UDC.UnifiedData(text); 954 let html = new UDC.HTML(); 955 html.htmlContent = LONG_TEST2M; 956 unifiedData.addRecord(html); 957 UDC.insertData(optionsValid, unifiedData).then((data) => { 958 console.info(TAG, `insert success. The key: ${data}`); 959 let options = { key: data }; 960 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 961 UDC.queryData(options).then((data) => { 962 console.info(TAG, 'query success.'); 963 expect(data.length).assertEqual(1); 964 let records = data[0].getRecords(); 965 console.info(TAG, `records.length = ${records.length}.`); 966 console.info(TAG, `records[0] = ${records[0].textContent === LONG_TEST2M}.`); 967 console.info(TAG, `records[1] = ${records[1].htmlContent === LONG_TEST2M}.`); 968 console.info(TAG, `records[0].getType() = ${records[0].getType()}.`); 969 console.info(TAG, `records[1].getType() = ${records[1].getType()}.`); 970 console.info(TAG, `records[0].getType() = ${records[0].getType() === UTD.UniformDataType.PLAIN_TEXT}.`); 971 console.info(TAG, `records[1].getType() = ${records[1].getType() === UTD.UniformDataType.HTML}.`); 972 expect(records[0].textContent).assertEqual(LONG_TEST2M); 973 expect(records[1].htmlContent).assertEqual(LONG_TEST2M); 974 UDC.deleteData(options).then((data) => { 975 console.info(TAG, 'delete success.'); 976 expect(data.length).assertEqual(1); 977 done(); 978 }).catch(() => { 979 console.error(TAG, 'Unreachable code!'); 980 expect(null).assertFail(); 981 done(); 982 }); 983 }).catch(() => { 984 console.error(TAG, 'Unreachable code!'); 985 expect(null).assertFail(); 986 done(); 987 }); 988 }).catch(() => { 989 console.error(TAG, 'Unreachable code!'); 990 expect(null).assertFail(); 991 done(); 992 }); 993 } catch (e) { 994 console.error(TAG, 'Unreachable code!'); 995 expect(null).assertFail(); 996 done(); 997 } 998 console.info(TAG, 'end'); 999 }); 1000 1001 /** 1002 * @tc.name UnifiedDataPropertiesTest001 1003 * @tc.desc Test Js UnifiedDataProperties testcase 1004 * @tc.type: FUNC 1005 * @tc.require: 1006 */ 1007 it('UnifiedDataPropertiesTest001', 0, function () { 1008 const TAG = 'UnifiedDataPropertiesTest001'; 1009 console.info(TAG, 'start'); 1010 let text = new UDC.Text(); 1011 let unifiedDatas = new UDC.UnifiedData(); 1012 unifiedDatas.addRecord(text); 1013 let properties = unifiedDatas.properties; 1014 expect(typeof properties).assertEqual('object'); 1015 expect(typeof properties.extras).assertEqual('object'); 1016 expect(typeof properties.tag).assertEqual('string'); 1017 expect(typeof properties.timestamp).assertEqual('object'); 1018 expect(typeof properties.shareOptions).assertEqual('number'); 1019 expect(typeof properties.getDelayData).assertEqual('undefined'); 1020 }); 1021 1022 /** 1023 * @tc.name UnifiedDataPropertiesTest002 1024 * @tc.desc Test Js UnifiedDataProperties testcase 1025 * @tc.type: FUNC 1026 * @tc.require: 1027 */ 1028 it('UnifiedDataPropertiesTest002', 0, function () { 1029 const TAG = 'UnifiedDataPropertiesTest002'; 1030 console.info(TAG, 'start'); 1031 let text = new UDC.Text(); 1032 let unifiedData = new UDC.UnifiedData(text); 1033 let properties = new UDC.UnifiedDataProperties(); 1034 1035 expect(properties.shareOptions).assertEqual(UDC.ShareOptions.CROSS_APP); 1036 properties.shareOptions = UDC.ShareOptions.IN_APP; 1037 unifiedData.properties = properties; 1038 expect(unifiedData.properties.shareOptions).assertEqual(UDC.ShareOptions.IN_APP); 1039 unifiedData.properties.shareOptions = UDC.ShareOptions.CROSS_APP; 1040 expect(unifiedData.properties.shareOptions).assertEqual(UDC.ShareOptions.CROSS_APP); 1041 1042 expect(unifiedData.properties.tag).assertEqual(''); 1043 unifiedData.properties.tag = 'DataTag'; 1044 expect(unifiedData.properties.tag).assertEqual('DataTag'); 1045 1046 expect(Object.keys(unifiedData.properties.extras).length).assertEqual(0); 1047 let person = {fname: 'John', lname: 'Doe', age: 25}; 1048 unifiedData.properties.extras = person; 1049 expect(Object.keys(unifiedData.properties.extras).length).assertEqual(3); 1050 expect(unifiedData.properties.extras.fname).assertEqual(person.fname); 1051 }); 1052 1053 /** 1054 * @tc.name UnifiedDataPropertiesTest003 1055 * @tc.desc Test Js UnifiedDataProperties testcase 1056 * @tc.type: FUNC 1057 * @tc.require: 1058 */ 1059 it('UnifiedDataPropertiesTest003', 0, function () { 1060 const TAG = 'UnifiedDataPropertiesTest003'; 1061 console.info(TAG, 'start'); 1062 let text = new UDC.Text(); 1063 let unifiedData = new UDC.UnifiedData(text); 1064 1065 function func(inputStr) { 1066 console.info(TAG, 'execute func'); 1067 let text = new UDC.Text(); 1068 text.details = { 1069 Key: inputStr + KEY_TEST_ELEMENT, 1070 Value: inputStr + VALUE_TEST_ELEMENT, 1071 }; 1072 let data = new UDC.UnifiedData(text); 1073 data.properties.tag = 'FileTag'; 1074 return data; 1075 } 1076 unifiedData.properties.getDelayData = func; 1077 const data = unifiedData.properties.getDelayData('inputTest'); 1078 let records = data.getRecords(); 1079 expect(records.length).assertEqual(1); 1080 expect(records[0].details.Key).assertEqual('inputTest' + KEY_TEST_ELEMENT); 1081 expect(records[0].details.Value).assertEqual('inputTest' + VALUE_TEST_ELEMENT); 1082 expect(data.properties.tag).assertEqual('FileTag'); 1083 }); 1084 1085 /** 1086 * @tc.name UnifiedDataHasType 1087 * @tc.desc Test Js UnifiedDataProperties testcase 1088 * @tc.type: FUNC 1089 * @tc.require: 1090 */ 1091 it('UnifiedDataHasType', 0, function () { 1092 const TAG = 'UnifiedDataHasType'; 1093 console.info(TAG, 'start'); 1094 const textType = 'general.text'; 1095 const plaintextType = 'general.plain-text'; 1096 const htmlType = 'general.html'; 1097 1098 let text = new UDC.Text(); 1099 let systemDefinedValue = 'systemDefinedValue'; 1100 let hyperlinkValue = 'hyperlinkValue'; 1101 text.addEntry(UTD.UniformDataType.HYPERLINK, hyperlinkValue); 1102 text.addEntry('openharmony.app-item', systemDefinedValue); 1103 let unifiedData = new UDC.UnifiedData(text); 1104 expect(unifiedData.hasType(textType)).assertEqual(true); 1105 expect(unifiedData.hasType(htmlType)).assertEqual(false); 1106 expect(unifiedData.hasType(UTD.UniformDataType.HYPERLINK)).assertEqual(true); 1107 expect(unifiedData.hasType('openharmony.app-item')).assertEqual(true); 1108 let types = unifiedData.getTypes(); 1109 expect(types.length).assertEqual(1); 1110 expect(types.includes(textType)).assertTrue(); 1111 expect(types.includes(UTD.UniformDataType.HYPERLINK)).assertFalse(); 1112 expect(types.includes('openharmony.app-item')).assertFalse(); 1113 1114 let html = new UDC.HTML(); 1115 unifiedData.addRecord(html); 1116 expect(unifiedData.hasType(textType)).assertEqual(true); 1117 expect(unifiedData.hasType(htmlType)).assertEqual(true); 1118 expect(unifiedData.hasType(plaintextType)).assertEqual(false); 1119 types = unifiedData.getTypes(); 1120 expect(types.length).assertEqual(2); 1121 expect(types.includes(textType)).assertTrue(); 1122 expect(types.includes(htmlType)).assertTrue(); 1123 expect(types.includes(textType)).assertTrue(); 1124 expect(types.includes(UTD.UniformDataType.HYPERLINK)).assertFalse(); 1125 expect(types.includes('openharmony.app-item')).assertFalse(); 1126 }); 1127 1128 /** 1129 * @tc.name UnifiedRecordConstruct001 1130 * @tc.desc Test Js UnifiedRecord testcase 1131 * @tc.type: FUNC 1132 * @tc.require: 1133 */ 1134 it('UnifiedRecordConstruct001', 0, async function () { 1135 const TAG = 'UnifiedRecordConstruct001'; 1136 console.info(TAG, 'start'); 1137 1138 const dataUri = new ArrayBuffer(256); 1139 let view1 = new Uint32Array(dataUri); 1140 view1[0] = 123456; 1141 let record1 = new UDC.UnifiedRecord('general.message', dataUri); 1142 const data1 = record1.getValue(); 1143 expect(data1.byteLength).assertEqual(256); 1144 let view2 = new Uint32Array(data1); 1145 expect(view1[0]).assertEqual(view2[0]); 1146 1147 let record2 = new UDC.UnifiedRecord('general.message', 'xxx.com'); 1148 const data2 = record2.getValue(); 1149 expect(data2).assertEqual('xxx.com'); 1150 1151 let record3 = new UDC.UnifiedRecord('general.message', 8899); 1152 const data3 = record3.getValue(); 1153 expect(data3).assertEqual(8899); 1154 1155 let record4 = new UDC.UnifiedRecord('general.message', 8899.7788); 1156 const data4 = record4.getValue(); 1157 expect(data4).assertEqual(8899.7788); 1158 1159 const buffer = new ArrayBuffer(128); 1160 const opt = { 1161 size: { height: 5, width: 5 }, 1162 pixelFormat: 3, 1163 editable: true, 1164 alphaType: 1, 1165 scaleMode: 1, 1166 }; 1167 const pixelMap = await image.createPixelMap(buffer, opt); 1168 let record5 = new UDC.UnifiedRecord('openharmony.pixel-map', pixelMap); 1169 const data5 = record5.getValue(); 1170 data5.getImageInfo().then((imageInfo)=>{ 1171 expect(imageInfo.size.height).assertEqual(opt.size.height); 1172 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 1173 }); 1174 1175 const wantText = { 1176 bundleName: 'com.example.myapplication1', 1177 abilityName: 'com.example.myapplication1.MainAbility', 1178 }; 1179 let record6 = new UDC.UnifiedRecord('openharmony.want', wantText); 1180 const data6 = record6.getValue(); 1181 expect(data6.bundleName).assertEqual(wantText.bundleName); 1182 expect(data6.abilityName).assertEqual(wantText.abilityName); 1183 }); 1184 1185 /** 1186 * @tc.name UnifiedRecordConstruct002 1187 * @tc.desc Test Js UnifiedData GetRecords testcase 1188 * @tc.type: FUNC 1189 * @tc.require: 1190 */ 1191 it('UnifiedRecordConstruct002', 0, async function () { 1192 const TAG = 'UnifiedRecordConstruct002'; 1193 console.info(TAG, 'start'); 1194 1195 const dataUri = new ArrayBuffer(256); 1196 let view1 = new Uint32Array(dataUri); 1197 view1[0] = 123456; 1198 let record1 = new UDC.UnifiedRecord('general.message', dataUri); 1199 1200 let unifiedData = new UDC.UnifiedData(record1); 1201 let records = unifiedData.getRecords(); 1202 expect(records.length).assertEqual(1); 1203 1204 let record2 = new UDC.UnifiedRecord('general.message', 'xxx.com'); 1205 unifiedData.addRecord(record2); 1206 let record3 = new UDC.UnifiedRecord('general.message', 8899); 1207 unifiedData.addRecord(record3); 1208 let record4 = new UDC.UnifiedRecord('general.message', 8899.7788); 1209 unifiedData.addRecord(record4); 1210 const buffer = new ArrayBuffer(128); 1211 const opt = { 1212 size: { height: 5, width: 5 }, 1213 pixelFormat: 3, 1214 editable: true, 1215 alphaType: 1, 1216 scaleMode: 1, 1217 }; 1218 const pixelMap = await image.createPixelMap(buffer, opt); 1219 let record5 = new UDC.UnifiedRecord('openharmony.pixel-map', pixelMap); 1220 unifiedData.addRecord(record5); 1221 const wantText = { 1222 bundleName: 'com.example.myapplication1', 1223 abilityName: 'com.example.myapplication1.MainAbility', 1224 }; 1225 let record6 = new UDC.UnifiedRecord('openharmony.want', wantText); 1226 unifiedData.addRecord(record6); 1227 1228 records = unifiedData.getRecords(); 1229 expect(records.length).assertEqual(6); 1230 const data1 = records[0].getValue(); 1231 expect(data1.byteLength).assertEqual(256); 1232 let view2 = new Uint32Array(data1); 1233 expect(view1[0]).assertEqual(view2[0]); 1234 const data2 = records[1].getValue(); 1235 expect(data2).assertEqual('xxx.com'); 1236 const data3 = records[2].getValue(); 1237 expect(data3).assertEqual(8899); 1238 const data4 = records[3].getValue(); 1239 expect(data4).assertEqual(8899.7788); 1240 const data5 = records[4].getValue(); 1241 data5.getImageInfo().then((imageInfo)=>{ 1242 expect(imageInfo.size.height).assertEqual(opt.size.height); 1243 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 1244 }); 1245 const data6 = records[5].getValue(); 1246 expect(data6.bundleName).assertEqual(wantText.bundleName); 1247 expect(data6.abilityName).assertEqual(wantText.abilityName); 1248 }); 1249 1250 /** 1251 * @tc.name UnifiedRecordConstruct003 1252 * @tc.desc Test Js UnifiedData GetRecords testcase 1253 * @tc.type: FUNC 1254 * @tc.require: 1255 */ 1256 it('UnifiedRecordConstruct003', 0, async function () { 1257 const TAG = 'UnifiedRecordConstruct003'; 1258 console.info(TAG, 'start'); 1259 1260 const dataUri = new ArrayBuffer(256); 1261 let view1 = new Uint32Array(dataUri); 1262 view1[0] = 123456; 1263 let record1 = new UDC.UnifiedRecord('general.text', dataUri); 1264 let unifiedData = new UDC.UnifiedData(record1); 1265 let record2 = new UDC.UnifiedRecord('general.text', 'xxx.com'); 1266 unifiedData.addRecord(record2); 1267 let record3 = new UDC.UnifiedRecord('general.text', 8899); 1268 unifiedData.addRecord(record3); 1269 let record4 = new UDC.UnifiedRecord('general.text', 8899.7788); 1270 unifiedData.addRecord(record4); 1271 1272 let records = unifiedData.getRecords(); 1273 expect(records.length).assertEqual(4); 1274 const data1 = records[0].getValue(); 1275 expect(data1.byteLength).assertEqual(256); 1276 let view2 = new Uint32Array(data1); 1277 expect(view1[0]).assertEqual(view2[0]); 1278 const data2 = records[1].getValue(); 1279 expect(data2).assertEqual('xxx.com'); 1280 const data3 = records[2].getValue(); 1281 expect(data3).assertEqual(8899); 1282 const data4 = records[3].getValue(); 1283 expect(data4).assertEqual(8899.7788); 1284 }); 1285 1286 /** 1287 * @tc.name UnifiedRecordConstruct004 1288 * @tc.desc Test Js UnifiedData GetRecords testcase 1289 * @tc.type: FUNC 1290 * @tc.require: 1291 */ 1292 it('UnifiedRecordConstruct004', 0, async function () { 1293 const TAG = 'UnifiedRecordConstruct004'; 1294 console.info(TAG, 'start'); 1295 1296 const dataUri = new ArrayBuffer(256); 1297 let view1 = new Uint32Array(dataUri); 1298 view1[0] = 123456; 1299 let record1 = new UDC.UnifiedRecord('otherType', dataUri); 1300 let unifiedData = new UDC.UnifiedData(record1); 1301 let record2 = new UDC.UnifiedRecord('otherType', 'xxx.com'); 1302 unifiedData.addRecord(record2); 1303 let record3 = new UDC.UnifiedRecord('otherType', 8899); 1304 unifiedData.addRecord(record3); 1305 let record4 = new UDC.UnifiedRecord('otherType', 8899.7788); 1306 unifiedData.addRecord(record4); 1307 1308 let records = unifiedData.getRecords(); 1309 expect(records.length).assertEqual(4); 1310 const data1 = records[0].getValue(); 1311 expect(data1.byteLength).assertEqual(256); 1312 let view2 = new Uint32Array(data1); 1313 expect(view1[0]).assertEqual(view2[0]); 1314 const data2 = records[1].getValue(); 1315 expect(data2).assertEqual('xxx.com'); 1316 const data3 = records[2].getValue(); 1317 expect(data3).assertEqual(8899); 1318 const data4 = records[3].getValue(); 1319 expect(data4).assertEqual(8899.7788); 1320 }); 1321 1322 /** 1323 * @tc.name UDSTest001 1324 * @tc.desc 1325 * @tc.type: FUNC 1326 * @tc.require: 1327 */ 1328 it('UDSTest001', 0, async function () { 1329 const TAG = 'UDSTest001'; 1330 console.info(TAG, 'start'); 1331 1332 let plainTextDetails = { 1333 'key1': 'value1', 1334 'key2': 'value2', 1335 }; 1336 let plainText = { 1337 uniformDataType: UTD.UniformDataType.PLAIN_TEXT, 1338 textContent: 'This is plainText textContent example', 1339 abstract: 'this is abstract', 1340 details: plainTextDetails 1341 }; 1342 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plainText); 1343 let unifiedData = new UDC.UnifiedData(record1); 1344 let records = unifiedData.getRecords(); 1345 expect(records.length).assertEqual(1); 1346 const value1 = records[0].getValue(); 1347 1348 expect(value1.uniformDataType).assertEqual(plainText.uniformDataType); 1349 expect(value1.textContent).assertEqual(plainText.textContent); 1350 expect(value1.abstract).assertEqual(plainText.abstract); 1351 expect(value1.details.key1).assertEqual(plainText.details.key1); 1352 expect(value1.details.key2).assertEqual(plainText.details.key2); 1353 }); 1354 1355 /** 1356 * @tc.name UDSTest002 1357 * @tc.desc 1358 * @tc.type: FUNC 1359 * @tc.require: 1360 */ 1361 it('UDSTest002', 0, async function (done) { 1362 const TAG = 'UDSTest002'; 1363 console.info(TAG, 'start'); 1364 1365 let plainTextDetails = { 1366 'key1': 'value1', 1367 'key2': 'value2', 1368 }; 1369 let plainText = { 1370 uniformDataType: UTD.UniformDataType.PLAIN_TEXT, 1371 textContent: 'This is plainText textContent example', 1372 abstract: 'this is abstract', 1373 details: plainTextDetails 1374 }; 1375 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plainText); 1376 let unifiedData = new UDC.UnifiedData(record1); 1377 1378 try { 1379 UDC.insertData(optionsValid, unifiedData).then((data) => { 1380 console.info(TAG, `insert success. The key: ${data}`); 1381 let options = { key: data }; 1382 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1383 UDC.queryData(options).then((data) => { 1384 console.info(TAG, 'query success.'); 1385 expect(data.length).assertEqual(1); 1386 let records = data[0].getRecords(); 1387 expect(records.length).assertEqual(1); 1388 let value = records[0].getValue(); 1389 expect(value.uniformDataType).assertEqual(plainText.uniformDataType); 1390 expect(value.textContent).assertEqual(plainText.textContent); 1391 expect(value.abstract).assertEqual(plainText.abstract); 1392 expect(value.details.key1).assertEqual(plainText.details.key1); 1393 expect(value.details.key2).assertEqual(plainText.details.key2); 1394 UDC.deleteData(options).then((data) => { 1395 console.info(TAG, 'delete success.'); 1396 expect(data.length).assertEqual(1); 1397 done(); 1398 }).catch(() => { 1399 console.error(TAG, 'Unreachable code!'); 1400 expect(null).assertFail(); 1401 done(); 1402 }); 1403 }).catch(() => { 1404 console.error(TAG, 'Unreachable code!'); 1405 expect(null).assertFail(); 1406 done(); 1407 }); 1408 }).catch(() => { 1409 console.error(TAG, 'Unreachable code!'); 1410 expect(null).assertFail(); 1411 done(); 1412 }); 1413 } catch (e) { 1414 console.error(TAG, 'Unreachable code!'); 1415 expect(null).assertFail(); 1416 done(); 1417 } 1418 }); 1419 1420 /** 1421 * @tc.name UDSTest003 1422 * @tc.desc 1423 * @tc.type: FUNC 1424 * @tc.require: 1425 */ 1426 it('UDSTest003', 0, async function (done) { 1427 const TAG = 'UDSTest003'; 1428 console.info(TAG, 'start'); 1429 1430 let hyperLinkDetails = { 1431 'key1': 'value1', 1432 'key2': 'value2', 1433 }; 1434 let hyperLink = { 1435 uniformDataType: UTD.UniformDataType.HYPERLINK, 1436 url: 'www.xxx', 1437 description: 'hyperlinkDescription', 1438 details: hyperLinkDetails 1439 }; 1440 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.HYPERLINK, hyperLink); 1441 let unifiedData = new UDC.UnifiedData(record1); 1442 1443 try { 1444 UDC.insertData(optionsValid, unifiedData).then((data) => { 1445 console.info(TAG, `insert success. The key: ${data}`); 1446 let options = { key: data }; 1447 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1448 UDC.queryData(options).then((data) => { 1449 console.info(TAG, 'query success.'); 1450 expect(data.length).assertEqual(1); 1451 let records = data[0].getRecords(); 1452 expect(records.length).assertEqual(1); 1453 let value = records[0].getValue(); 1454 expect(value.uniformDataType).assertEqual(hyperLink.uniformDataType); 1455 expect(value.url).assertEqual(hyperLink.url); 1456 expect(value.description).assertEqual(hyperLink.description); 1457 expect(value.details.key1).assertEqual(hyperLink.details.key1); 1458 expect(value.details.key2).assertEqual(hyperLink.details.key2); 1459 UDC.deleteData(options).then((data) => { 1460 console.info(TAG, 'delete success.'); 1461 expect(data.length).assertEqual(1); 1462 done(); 1463 }).catch(() => { 1464 console.error(TAG, 'Unreachable code!'); 1465 expect(null).assertFail(); 1466 done(); 1467 }); 1468 }).catch(() => { 1469 console.error(TAG, 'Unreachable code!'); 1470 expect(null).assertFail(); 1471 done(); 1472 }); 1473 }).catch(() => { 1474 console.error(TAG, 'Unreachable code!'); 1475 expect(null).assertFail(); 1476 done(); 1477 }); 1478 } catch (e) { 1479 console.error(TAG, 'Unreachable code!'); 1480 expect(null).assertFail(); 1481 done(); 1482 } 1483 }); 1484 1485 /** 1486 * @tc.name UDSTest004 1487 * @tc.desc 1488 * @tc.type: FUNC 1489 * @tc.require: 1490 */ 1491 it('UDSTest004', 0, async function (done) { 1492 const TAG = 'UDSTest004'; 1493 console.info(TAG, 'start'); 1494 1495 let htmlDetails = { 1496 'key1': 'value1', 1497 'key2': 'value2', 1498 }; 1499 let html = { 1500 uniformDataType: UTD.UniformDataType.HTML, 1501 htmlContent: 'www.xxx', 1502 plainContent: 'htmlDescription', 1503 details: htmlDetails 1504 }; 1505 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.HTML, html); 1506 let unifiedData = new UDC.UnifiedData(record1); 1507 1508 try { 1509 UDC.insertData(optionsValid, unifiedData).then((data) => { 1510 console.info(TAG, `insert success. The key: ${data}`); 1511 let options = { key: data }; 1512 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1513 UDC.queryData(options).then((data) => { 1514 console.info(TAG, 'query success.'); 1515 expect(data.length).assertEqual(1); 1516 let records = data[0].getRecords(); 1517 expect(records.length).assertEqual(1); 1518 let value = records[0].getValue(); 1519 expect(value.uniformDataType).assertEqual(html.uniformDataType); 1520 expect(value.htmlContent).assertEqual(html.htmlContent); 1521 expect(value.plainContent).assertEqual(html.plainContent); 1522 expect(value.details.key1).assertEqual(html.details.key1); 1523 expect(value.details.key2).assertEqual(html.details.key2); 1524 UDC.deleteData(options).then((data) => { 1525 console.info(TAG, 'delete success.'); 1526 expect(data.length).assertEqual(1); 1527 done(); 1528 }).catch(() => { 1529 console.error(TAG, 'Unreachable code!'); 1530 expect(null).assertFail(); 1531 done(); 1532 }); 1533 }).catch(() => { 1534 console.error(TAG, 'Unreachable code!'); 1535 expect(null).assertFail(); 1536 done(); 1537 }); 1538 }).catch(() => { 1539 console.error(TAG, 'Unreachable code!'); 1540 expect(null).assertFail(); 1541 done(); 1542 }); 1543 } catch (e) { 1544 console.error(TAG, 'Unreachable code!'); 1545 expect(null).assertFail(); 1546 done(); 1547 } 1548 }); 1549 1550 /** 1551 * @tc.name UDSTest005 1552 * @tc.desc 1553 * @tc.type: FUNC 1554 * @tc.require: 1555 */ 1556 it('UDSTest005', 0, async function (done) { 1557 const TAG = 'UDSTest005'; 1558 console.info(TAG, 'start'); 1559 1560 let systemDefinedDetails = { 1561 'key1': 'value1', 1562 'key2': 'value2', 1563 }; 1564 let systemDefined = { 1565 uniformDataType: 'openharmony.app-item', 1566 appId: 'app-itemAppId', 1567 appName: 'app-itemAppName', 1568 appIconId: 'app-itemAppIconId', 1569 appLabelId: 'app-itemAppLabelId', 1570 bundleName: 'app-itemBundleName', 1571 abilityName: 'app-itemAbilityName', 1572 details: systemDefinedDetails 1573 }; 1574 let record1 = new UDC.UnifiedRecord('openharmony.app-item', systemDefined); 1575 let unifiedData = new UDC.UnifiedData(record1); 1576 1577 try { 1578 UDC.insertData(optionsValid, unifiedData).then((data) => { 1579 console.info(TAG, `insert success. The key: ${data}`); 1580 let options = { key: data }; 1581 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1582 UDC.queryData(options).then((data) => { 1583 console.info(TAG, 'query success.'); 1584 expect(data.length).assertEqual(1); 1585 let records = data[0].getRecords(); 1586 expect(records.length).assertEqual(1); 1587 let value = records[0].getValue(); 1588 expect(value.uniformDataType).assertEqual(systemDefined.uniformDataType); 1589 expect(value.appId).assertEqual(systemDefined.appId); 1590 expect(value.appName).assertEqual(systemDefined.appName); 1591 expect(value.appIconId).assertEqual(systemDefined.appIconId); 1592 expect(value.appLabelId).assertEqual(systemDefined.appLabelId); 1593 expect(value.bundleName).assertEqual(systemDefined.bundleName); 1594 expect(value.abilityName).assertEqual(systemDefined.abilityName); 1595 expect(value.details.key1).assertEqual(systemDefined.details.key1); 1596 expect(value.details.key2).assertEqual(systemDefined.details.key2); 1597 UDC.deleteData(options).then((data) => { 1598 console.info(TAG, 'delete success.'); 1599 expect(data.length).assertEqual(1); 1600 done(); 1601 }).catch(() => { 1602 console.error(TAG, 'Unreachable code!'); 1603 expect(null).assertFail(); 1604 done(); 1605 }); 1606 }).catch(() => { 1607 console.error(TAG, 'Unreachable code!'); 1608 expect(null).assertFail(); 1609 done(); 1610 }); 1611 }).catch(() => { 1612 console.error(TAG, 'Unreachable code!'); 1613 expect(null).assertFail(); 1614 done(); 1615 }); 1616 } catch (e) { 1617 console.error(TAG, 'Unreachable code!'); 1618 expect(null).assertFail(); 1619 done(); 1620 } 1621 }); 1622 1623 /** 1624 * @tc.name ObjectTest001 1625 * @tc.desc 1626 * @tc.type: FUNC 1627 * @tc.require: 1628 */ 1629 it('ObjectTest001', 0, async function (done) { 1630 const TAG = 'ObjectTest001'; 1631 console.info(TAG, 'start'); 1632 1633 const data = new ArrayBuffer(256); 1634 let view1 = new Uint32Array(data); 1635 view1[0] = 123456; 1636 1637 let ObjectDetails1 = { 1638 'key1': 'value001', 1639 'key2': data, 1640 'key3': undefined, 1641 'key4': null, 1642 }; 1643 let ObjectDetails2 = { 1644 'key1': 'value100', 1645 'key2': data, 1646 'key3': undefined, 1647 'key4': null, 1648 details: ObjectDetails1 1649 }; 1650 let systemDefined = { 1651 labelId: 'LabelId', 1652 details: ObjectDetails2 1653 }; 1654 let record1 = new UDC.UnifiedRecord('self_defined_type', systemDefined); 1655 let unifiedData = new UDC.UnifiedData(record1); 1656 1657 try { 1658 UDC.insertData(optionsValid, unifiedData).then((data) => { 1659 console.info(TAG, `insert success. The key: ${data}`); 1660 let options = { key: data }; 1661 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1662 UDC.queryData(options).then((data) => { 1663 console.info(TAG, 'query success.'); 1664 expect(data.length).assertEqual(1); 1665 let records = data[0].getRecords(); 1666 expect(records.length).assertEqual(1); 1667 let value = records[0].getValue(); 1668 expect(value.labelId).assertEqual(systemDefined.labelId); 1669 expect(value.details.key1).assertEqual(systemDefined.details.key1); 1670 expect(value.details.key2.byteLength).assertEqual(systemDefined.details.key2.byteLength); 1671 let view2 = new Uint32Array(value.details.key2); 1672 expect(view2[0]).assertEqual(view1[0]); 1673 expect(value.details.key3).assertEqual(systemDefined.details.key3); 1674 expect(value.details.key4).assertEqual(systemDefined.details.key4); 1675 expect(value.details.details.key1).assertEqual(systemDefined.details.details.key1); 1676 expect(value.details.details.key2.byteLength).assertEqual(systemDefined.details.details.key2.byteLength); 1677 let view3 = new Uint32Array(value.details.details.key2); 1678 expect(view3[0]).assertEqual(view1[0]); 1679 expect(value.details.details.key3).assertEqual(systemDefined.details.details.key3); 1680 expect(value.details.details.key4).assertEqual(systemDefined.details.details.key4); 1681 UDC.deleteData(options).then((data) => { 1682 console.info(TAG, 'delete success.'); 1683 expect(data.length).assertEqual(1); 1684 done(); 1685 }).catch(() => { 1686 console.error(TAG, 'Unreachable code!'); 1687 expect(null).assertFail(); 1688 done(); 1689 }); 1690 }).catch(() => { 1691 console.error(TAG, 'Unreachable code!'); 1692 expect(null).assertFail(); 1693 done(); 1694 }); 1695 }).catch(() => { 1696 console.error(TAG, 'Unreachable code!'); 1697 expect(null).assertFail(); 1698 done(); 1699 }); 1700 } catch (e) { 1701 console.error(TAG, 'Unreachable code!'); 1702 expect(null).assertFail(); 1703 done(); 1704 } 1705 }); 1706 1707 /** 1708 * @tc.name UdmfSetAppShareOptionsTest001 1709 * @tc.desc Test Js Api setAppShareOptions, error intention 1710 * @tc.type: FUNC 1711 * @tc.require: 1712 */ 1713 it('UdmfSetAppShareOptionsTest001', 0, function () { 1714 const TAG = 'UdmfSetAppShareOptionsTest001:'; 1715 console.info(TAG, 'start'); 1716 try { 1717 UDC.setAppShareOptions(UDC.Intention.DATA_HUB, UDC.ShareOptions.IN_APP); 1718 console.error(TAG, 'Unreachable code!'); 1719 expect(null).assertFail(); 1720 } catch (e) { 1721 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 1722 expect(e.code === ERROR_PARAMETER).assertTrue(); 1723 } 1724 console.info(TAG, 'end'); 1725 }); 1726 1727 /** 1728 * @tc.name UdmfRemoveAppShareOptionsTest001 1729 * @tc.desc Test Js Api removeAppShareOptions, error intention 1730 * @tc.type: FUNC 1731 * @tc.require: 1732 */ 1733 it('UdmfRemoveAppShareOptionsTest001', 0, function () { 1734 const TAG = 'UdmfRemoveAppShareOptionsTest001:'; 1735 console.info(TAG, 'start'); 1736 try { 1737 UDC.removeAppShareOptions(UDC.Intention.DATA_HUB); 1738 console.error(TAG, 'Unreachable code!'); 1739 expect(null).assertFail(); 1740 } catch (e) { 1741 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 1742 expect(e.code === ERROR_PARAMETER).assertTrue(); 1743 } 1744 console.info(TAG, 'end'); 1745 }); 1746 1747 /** 1748 * @tc.name MultiEntryTest001 1749 * @tc.desc 1750 * @tc.type: FUNC 1751 * @tc.require: 1752 */ 1753 it('MultiEntryTest001', 0, async function (done) { 1754 const TAG = 'MultiEntryTest001'; 1755 console.info(TAG, 'start'); 1756 let hyperLinkDetails = { 1757 'key1': 'value1', 1758 'key2': 'value2', 1759 }; 1760 let hyperLink = { 1761 uniformDataType: UTD.UniformDataType.HYPERLINK, 1762 url: 'www.xxx', 1763 description: 'hyperlinkDescription', 1764 details: hyperLinkDetails 1765 }; 1766 let systemDefinedDetails = { 1767 'key1': 'value1', 1768 'key2': 'value2', 1769 }; 1770 let systemDefined = { 1771 uniformDataType: 'openharmony.app-item', 1772 appId: 'app-itemAppId', 1773 appName: 'app-itemAppName', 1774 appIconId: 'app-itemAppIconId', 1775 appLabelId: 'app-itemAppLabelId', 1776 bundleName: 'app-itemBundleName', 1777 abilityName: 'app-itemAbilityName', 1778 details: systemDefinedDetails 1779 }; 1780 1781 let plainTextDetails = { 1782 'key1': 'value1', 1783 'key2': 'value2', 1784 }; 1785 let plainText = { 1786 uniformDataType: UTD.UniformDataType.PLAIN_TEXT, 1787 textContent: 'This is plainText textContent example', 1788 abstract: 'this is abstract', 1789 details: plainTextDetails 1790 }; 1791 1792 const buffer = new ArrayBuffer(128); 1793 const opt = { 1794 size: { height: 5, width: 5 }, 1795 pixelFormat: 3, 1796 editable: true, 1797 alphaType: 1, 1798 scaleMode: 1, 1799 }; 1800 const pixelMap = await image.createPixelMap(buffer, opt); 1801 let pixelMapUds = { 1802 uniformDataType: 'openharmony.pixel-map', 1803 pixelMap: pixelMap, 1804 details: { 1805 'key1': 'value1', 1806 'key2': 'value2', 1807 } 1808 }; 1809 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plainText); 1810 record1.addEntry(UTD.UniformDataType.HYPERLINK, hyperLink); 1811 record1.addEntry('openharmony.app-item', systemDefined); 1812 record1.addEntry('openharmony.pixel-map', pixelMapUds); 1813 let entries = record1.getEntries(); 1814 1815 let unifiedData = new UDC.UnifiedData(record1); 1816 let records = unifiedData.getRecords(); 1817 expect(records.length).assertEqual(1); 1818 const value1 = records[0].getValue(); 1819 let types = records[0].getTypes(); 1820 let systemDefined1 = records[0].getEntry('openharmony.app-item'); 1821 let hyperlink1 = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 1822 let pixelMapUds1 = records[0].getEntry('openharmony.pixel-map'); 1823 1824 expect(value1.uniformDataType).assertEqual(plainText.uniformDataType); 1825 expect(value1.textContent).assertEqual(plainText.textContent); 1826 expect(value1.abstract).assertEqual(plainText.abstract); 1827 expect(value1.details.key1).assertEqual(plainText.details.key1); 1828 expect(value1.details.key2).assertEqual(plainText.details.key2); 1829 expect(hyperlink1.url).assertEqual('www.xxx'); 1830 pixelMapUds1.pixelMap.getImageInfo().then((imageInfo)=>{ 1831 expect(imageInfo.size.height).assertEqual(opt.size.height); 1832 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 1833 }); 1834 expect(pixelMapUds1.details.key1).assertEqual('value1'); 1835 expect(hyperlink1.details.key1).assertEqual('value1'); 1836 expect(systemDefined1.appId).assertEqual('app-itemAppId'); 1837 expect(systemDefined1.details.key1).assertEqual('value1'); 1838 expect(types.length).assertEqual(4); 1839 expect(types.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 1840 expect(types.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 1841 expect(types.includes('openharmony.pixel-map')).assertTrue(); 1842 expect(types.includes('openharmony.app-item')).assertTrue(); 1843 expect(entries['openharmony.app-item'].appIconId).assertEqual('app-itemAppIconId'); 1844 expect(entries['openharmony.app-item'].details.key1).assertEqual('value1'); 1845 expect(entries['general.hyperlink'].url).assertEqual('www.xxx'); 1846 expect(entries['general.hyperlink'].details.key1).assertEqual('value1'); 1847 expect(entries['general.plain-text'].textContent).assertEqual('This is plainText textContent example'); 1848 expect(entries['general.plain-text'].details.key1).assertEqual('value1'); 1849 entries['openharmony.pixel-map'].pixelMap.getImageInfo().then((imageInfo)=>{ 1850 expect(imageInfo.size.height).assertEqual(opt.size.height); 1851 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 1852 }); 1853 expect(entries['openharmony.pixel-map'].details.key1).assertEqual('value1'); 1854 1855 try { 1856 UDC.insertData(optionsValid, unifiedData).then((data) => { 1857 console.info(TAG, `insert success. The key: ${data}`); 1858 let options = { key: data }; 1859 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1860 UDC.queryData(options).then((data) => { 1861 console.info(TAG, 'query success.'); 1862 expect(data.length).assertEqual(1); 1863 let records = data[0].getRecords(); 1864 expect(records.length).assertEqual(1); 1865 const valueQuery = records[0].getValue(); 1866 const hyperlinkQuery = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 1867 const systemDefinedQuery = records[0].getEntry('openharmony.app-item'); 1868 const entriesQuery = records[0].getEntries(); 1869 const types1 = records[0].getTypes(); 1870 expect(valueQuery.uniformDataType).assertEqual(plainText.uniformDataType); 1871 expect(valueQuery.textContent).assertEqual(plainText.textContent); 1872 expect(valueQuery.abstract).assertEqual(plainText.abstract); 1873 expect(valueQuery.details.key1).assertEqual(plainText.details.key1); 1874 expect(valueQuery.details.key2).assertEqual(plainText.details.key2); 1875 expect(hyperlinkQuery.url).assertEqual('www.xxx'); 1876 expect(hyperlinkQuery.details.key1).assertEqual('value1'); 1877 expect(systemDefinedQuery.appId).assertEqual('app-itemAppId'); 1878 expect(systemDefinedQuery.details.key1).assertEqual('value1'); 1879 expect(types1.length).assertEqual(4); 1880 expect(types1.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 1881 expect(types1.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 1882 expect(types1.includes('openharmony.pixel-map')).assertTrue(); 1883 expect(types1.includes('openharmony.app-item')).assertTrue(); 1884 1885 expect(entriesQuery['openharmony.app-item'].appIconId).assertEqual('app-itemAppIconId'); 1886 expect(entriesQuery['openharmony.app-item'].details.key1).assertEqual('value1'); 1887 expect(entriesQuery['general.hyperlink'].url).assertEqual('www.xxx'); 1888 expect(entriesQuery['general.hyperlink'].details.key1).assertEqual('value1'); 1889 expect(entriesQuery['general.plain-text'].textContent).assertEqual('This is plainText textContent example'); 1890 expect(entriesQuery['general.plain-text'].details.key1).assertEqual('value1'); 1891 entriesQuery['openharmony.pixel-map'].pixelMap.getImageInfo().then((imageInfo)=>{ 1892 expect(imageInfo.size.height).assertEqual(opt.size.height); 1893 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 1894 }); 1895 expect(entriesQuery['openharmony.pixel-map'].details.key1).assertEqual('value1'); 1896 1897 UDC.deleteData(options).then((data) => { 1898 console.info(TAG, 'delete success.'); 1899 expect(data.length).assertEqual(1); 1900 done(); 1901 }).catch(() => { 1902 console.error(TAG, 'Unreachable code!'); 1903 expect(null).assertFail(); 1904 done(); 1905 }); 1906 }).catch(() => { 1907 console.error(TAG, 'Unreachable code!'); 1908 expect(null).assertFail(); 1909 done(); 1910 }); 1911 }).catch(() => { 1912 console.error(TAG, 'Unreachable code!'); 1913 expect(null).assertFail(); 1914 done(); 1915 }); 1916 } catch (e) { 1917 console.error(TAG, 'Unreachable code!'); 1918 expect(null).assertFail(); 1919 done(); 1920 } 1921 }); 1922 1923 /** 1924 * @tc.name MultiEntryTest002 1925 * @tc.desc 1926 * @tc.type: FUNC 1927 * @tc.require: 1928 */ 1929 it('MultiEntryTest002', 0, async function (done) { 1930 const TAG = 'MultiEntryTest002'; 1931 console.info(TAG, 'start'); 1932 let hyperLinkDetails = { 1933 'key1': 'value1', 1934 'key2': 'value2', 1935 }; 1936 let hyperLink = { 1937 uniformDataType: UTD.UniformDataType.HYPERLINK, 1938 url: 'www.xxx', 1939 description: 'hyperlinkDescription', 1940 details: hyperLinkDetails 1941 }; 1942 let plainTextDetails = { 1943 'key1': 'value1', 1944 'key2': 'value2', 1945 }; 1946 let plainText = new UDC.PlainText(); 1947 plainText.textContent = 'This is plainText textContent example'; 1948 plainText.abstract = 'this is abstract'; 1949 plainText.details = plainTextDetails; 1950 plainText.addEntry(UTD.UniformDataType.HYPERLINK, hyperLink); 1951 1952 let unifiedData = new UDC.UnifiedData(plainText); 1953 let records = unifiedData.getRecords(); 1954 expect(records.length).assertEqual(1); 1955 let entries = records[0].getEntries(); 1956 let types = records[0].getTypes(); 1957 let hyperlink1 = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 1958 expect(records[0].textContent).assertEqual(plainText.textContent); 1959 expect(records[0].abstract).assertEqual(plainText.abstract); 1960 expect(records[0].details.key1).assertEqual(plainText.details.key1); 1961 expect(records[0].details.key2).assertEqual(plainText.details.key2); 1962 expect(hyperlink1.url).assertEqual('www.xxx'); 1963 expect(hyperlink1.details.key1).assertEqual('value1'); 1964 expect(types.length).assertEqual(2); 1965 expect(types.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 1966 expect(types.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 1967 expect(entries['general.hyperlink'].url).assertEqual('www.xxx'); 1968 expect(entries['general.hyperlink'].details.key1).assertEqual('value1'); 1969 expect(entries['general.plain-text'].textContent).assertEqual('This is plainText textContent example'); 1970 expect(entries['general.plain-text'].details.key1).assertEqual('value1'); 1971 1972 try { 1973 UDC.insertData(optionsValid, unifiedData).then((data) => { 1974 console.info(TAG, `insert success. The key: ${data}`); 1975 let options = { key: data }; 1976 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 1977 UDC.queryData(options).then((data) => { 1978 console.info(TAG, 'query success.'); 1979 expect(data.length).assertEqual(1); 1980 let records = data[0].getRecords(); 1981 expect(records.length).assertEqual(1); 1982 const hyperlinkQuery = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 1983 const systemDefinedQuery = records[0].getEntry('openharmony.app-item'); 1984 const entriesQuery = records[0].getEntries(); 1985 let types1 = records[0].getTypes(); 1986 expect(records[0].textContent).assertEqual(plainText.textContent); 1987 expect(records[0].abstract).assertEqual(plainText.abstract); 1988 expect(records[0].details.key1).assertEqual(plainText.details.key1); 1989 expect(records[0].details.key2).assertEqual(plainText.details.key2); 1990 expect(systemDefinedQuery).assertEqual(undefined); 1991 expect(hyperlinkQuery.url).assertEqual('www.xxx'); 1992 expect(hyperlinkQuery.details.key1).assertEqual('value1'); 1993 expect(types1.length).assertEqual(2); 1994 expect(types1.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 1995 expect(types1.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 1996 1997 expect(entriesQuery['general.hyperlink'].url).assertEqual('www.xxx'); 1998 expect(entriesQuery['general.hyperlink'].details.key1).assertEqual('value1'); 1999 expect(entriesQuery['general.plain-text'].textContent).assertEqual('This is plainText textContent example'); 2000 expect(entriesQuery['general.plain-text'].details.key1).assertEqual('value1'); 2001 2002 UDC.deleteData(options).then((data) => { 2003 console.info(TAG, 'delete success.'); 2004 expect(data.length).assertEqual(1); 2005 done(); 2006 }).catch(() => { 2007 console.error(TAG, 'Unreachable code!'); 2008 expect(null).assertFail(); 2009 done(); 2010 }); 2011 }).catch(() => { 2012 console.error(TAG, 'Unreachable code!'); 2013 expect(null).assertFail(); 2014 done(); 2015 }); 2016 }).catch(() => { 2017 console.error(TAG, 'Unreachable code!'); 2018 expect(null).assertFail(); 2019 done(); 2020 }); 2021 } catch (e) { 2022 console.error(TAG, 'Unreachable code!'); 2023 expect(null).assertFail(); 2024 done(); 2025 } 2026 }); 2027 2028 /** 2029 * @tc.name MultiEntryTest003 2030 * @tc.desc 2031 * @tc.type: FUNC 2032 * @tc.require: 2033 */ 2034 it('MultiEntryTest003', 0, async function (done) { 2035 const TAG = 'MultiEntryTest003'; 2036 console.info(TAG, 'start'); 2037 2038 let plaintextValue = 'plaintextValue'; 2039 let systemDefinedValue = 'systemDefinedValue'; 2040 let hyperlinkValue = 'hyperlinkValue'; 2041 let record1 = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2042 record1.addEntry(UTD.UniformDataType.HYPERLINK, hyperlinkValue); 2043 record1.addEntry('openharmony.app-item', systemDefinedValue); 2044 2045 let entries = record1.getEntries(); 2046 2047 let unifiedData = new UDC.UnifiedData(record1); 2048 let records = unifiedData.getRecords(); 2049 expect(records.length).assertEqual(1); 2050 const value1 = records[0].getValue(); 2051 let types = records[0].getTypes(); 2052 let systemDefined1 = records[0].getEntry('openharmony.app-item'); 2053 let hyperlink1 = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 2054 expect(value1).assertEqual(plaintextValue); 2055 expect(value1.textContent).assertEqual(undefined); 2056 expect(hyperlink1).assertEqual(hyperlinkValue); 2057 expect(hyperlink1.details).assertEqual(undefined); 2058 expect(systemDefined1).assertEqual(systemDefinedValue); 2059 expect(systemDefined1.details).assertEqual(undefined); 2060 expect(types.length).assertEqual(3); 2061 expect(types.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 2062 expect(types.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 2063 expect(types.includes('openharmony.app-item')).assertTrue(); 2064 expect(entries['openharmony.app-item']).assertEqual(systemDefinedValue); 2065 expect(entries['general.hyperlink']).assertEqual(hyperlinkValue); 2066 expect(entries['general.plain-text'].VALUE_TYPE).assertEqual(plaintextValue); 2067 2068 try { 2069 UDC.insertData(optionsValid, unifiedData).then((data) => { 2070 console.info(TAG, `insert success. The key: ${data}`); 2071 let options = { key: data }; 2072 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 2073 UDC.queryData(options).then((data) => { 2074 console.info(TAG, 'query success.'); 2075 expect(data.length).assertEqual(1); 2076 let records = data[0].getRecords(); 2077 expect(records.length).assertEqual(1); 2078 const valueQuery = records[0].getValue(); 2079 const hyperlinkQuery = records[0].getEntry(UTD.UniformDataType.HYPERLINK); 2080 const systemDefinedQuery = records[0].getEntry('openharmony.app-item'); 2081 const entriesQuery = records[0].getEntries(); 2082 const types1 = records[0].getTypes(); 2083 expect(valueQuery).assertEqual(plaintextValue); 2084 expect(hyperlinkQuery).assertEqual(hyperlinkValue); 2085 expect(systemDefinedQuery).assertEqual(systemDefinedValue); 2086 expect(types1.length).assertEqual(3); 2087 expect(types1.includes(UTD.UniformDataType.PLAIN_TEXT)).assertTrue(); 2088 expect(types1.includes(UTD.UniformDataType.HYPERLINK)).assertTrue(); 2089 expect(types1.includes('openharmony.app-item')).assertTrue(); 2090 expect(entriesQuery['openharmony.app-item']).assertEqual(systemDefinedValue); 2091 expect(entriesQuery['general.hyperlink']).assertEqual(hyperlinkValue); 2092 expect(entriesQuery['general.plain-text'].VALUE_TYPE).assertEqual(plaintextValue); 2093 2094 UDC.deleteData(options).then((data) => { 2095 console.info(TAG, 'delete success.'); 2096 expect(data.length).assertEqual(1); 2097 done(); 2098 }).catch(() => { 2099 console.error(TAG, 'Unreachable code!'); 2100 expect(null).assertFail(); 2101 done(); 2102 }); 2103 }).catch(() => { 2104 console.error(TAG, 'Unreachable code!'); 2105 expect(null).assertFail(); 2106 done(); 2107 }); 2108 }).catch(() => { 2109 console.error(TAG, 'Unreachable code!'); 2110 expect(null).assertFail(); 2111 done(); 2112 }); 2113 } catch (e) { 2114 console.error(TAG, 'Unreachable code!'); 2115 expect(null).assertFail(); 2116 done(); 2117 } 2118 }); 2119 2120 /** 2121 * @tc.name MultiEntryTest004 2122 * @tc.desc 2123 * @tc.type: FUNC 2124 * @tc.require: 2125 */ 2126 it('MultiEntryTest004', 0, async function (done) { 2127 const TAG = 'MultiEntryTest004'; 2128 console.info(TAG, 'start'); 2129 const buffer = new ArrayBuffer(128); 2130 const opt = { 2131 size: { height: 5, width: 5 }, 2132 pixelFormat: 3, 2133 editable: true, 2134 alphaType: 1, 2135 scaleMode: 1, 2136 }; 2137 const pixelMap = await image.createPixelMap(buffer, opt); 2138 let pixelMapUds = { 2139 uniformDataType: 'openharmony.pixel-map', 2140 pixelMap: pixelMap, 2141 details: { 2142 'key1': 'value1', 2143 'key2': 'value2', 2144 } 2145 }; 2146 let record = new UDC.UnifiedRecord('openharmony.pixel-map', pixelMapUds); 2147 let unifiedData = new UDC.UnifiedData(record); 2148 2149 try { 2150 UDC.insertData(optionsValid, unifiedData).then((data) => { 2151 console.info(TAG, `insert success. The key: ${data}`); 2152 let options = { key: data }; 2153 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 2154 UDC.queryData(options).then((data) => { 2155 console.info(TAG, 'query success.'); 2156 expect(data.length).assertEqual(1); 2157 let records = data[0].getRecords(); 2158 expect(records.length).assertEqual(1); 2159 const valueQuery = records[0].getValue(); 2160 expect(valueQuery.uniformDataType).assertEqual('openharmony.pixel-map'); 2161 valueQuery.pixelMap.getImageInfo().then((imageInfo)=>{ 2162 expect(imageInfo.size.height).assertEqual(opt.size.height); 2163 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2164 }); 2165 expect(valueQuery.details.key1).assertEqual('value1'); 2166 UDC.deleteData(options).then((data) => { 2167 console.info(TAG, 'delete success.'); 2168 expect(data.length).assertEqual(1); 2169 done(); 2170 }).catch(() => { 2171 console.error(TAG, 'Unreachable code!'); 2172 expect(null).assertFail(); 2173 done(); 2174 }); 2175 }).catch(() => { 2176 console.error(TAG, 'Unreachable code!'); 2177 expect(null).assertFail(); 2178 done(); 2179 }); 2180 }).catch(() => { 2181 console.error(TAG, 'Unreachable code!'); 2182 expect(null).assertFail(); 2183 done(); 2184 }); 2185 } catch (e) { 2186 console.error(TAG, 'Unreachable code!'); 2187 expect(null).assertFail(); 2188 done(); 2189 } 2190 }); 2191 2192 /** 2193 * @tc.name MultiEntryTest005 2194 * @tc.desc 2195 * @tc.type: FUNC 2196 * @tc.require: 2197 */ 2198 it('MultiEntryTest005', 0, async function () { 2199 const TAG = 'MultiEntryTest005'; 2200 console.info(TAG, 'start'); 2201 try { 2202 let plaintextValue = 'plaintextValue'; 2203 let systemDefinedValue = 'systemDefinedValue'; 2204 let record = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2205 record.addEntry(undefined, systemDefinedValue); 2206 } catch (e) { 2207 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 2208 expect(e.code === ERROR_PARAMETER).assertTrue(); 2209 } 2210 try { 2211 let plaintextValue = 'plaintextValue'; 2212 let systemDefinedValue = 'systemDefinedValue'; 2213 let record = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2214 record.addEntry(null, systemDefinedValue); 2215 } catch (e) { 2216 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 2217 expect(e.code === ERROR_PARAMETER).assertTrue(); 2218 } 2219 console.info(TAG, 'end'); 2220 }); 2221 2222 /** 2223 * @tc.name MultiEntryTest006 2224 * @tc.desc 2225 * @tc.type: FUNC 2226 * @tc.require: 2227 */ 2228 it('MultiEntryTest006', 0, async function () { 2229 const TAG = 'MultiEntryTest006'; 2230 console.info(TAG, 'start'); 2231 try { 2232 let plaintextValue = 'plaintextValue'; 2233 let systemDefinedValue = 'systemDefinedValue'; 2234 let record = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2235 record.addEntry('openharmony.app-item', systemDefinedValue); 2236 record.getEntry(undefined); 2237 } catch (e) { 2238 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 2239 expect(e.code === ERROR_PARAMETER).assertTrue(); 2240 } 2241 try { 2242 let plaintextValue = 'plaintextValue'; 2243 let systemDefinedValue = 'systemDefinedValue'; 2244 let record = new UDC.UnifiedRecord(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2245 record.addEntry('openharmony.app-item', systemDefinedValue); 2246 record.getEntry(null); 2247 } catch (e) { 2248 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 2249 expect(e.code === ERROR_PARAMETER).assertTrue(); 2250 } 2251 console.info(TAG, 'end'); 2252 }); 2253 2254 /** 2255 * @tc.name FileUriTest001 2256 * @tc.desc 2257 * @tc.type: FUNC 2258 * @tc.require: test constructor UnifiedRecord(UDType type, ValueType value) and sub image 2259 */ 2260 it('FileUriTest001', 0, async function (done) { 2261 const TAG = 'FileUriTest001'; 2262 console.info(TAG, 'start'); 2263 let fileUriDetails = { 2264 'fileUriKey1': 123, 2265 'fileUriKey2': 'fileUriValue', 2266 }; 2267 let fileUri = { 2268 uniformDataType : 'general.file-uri', 2269 oriUri : 'www.xx.com', 2270 fileType : 'general.jpeg', 2271 details : fileUriDetails 2272 }; 2273 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2274 let arrayBuffer = new ArrayBuffer(4 * 200 * 200); 2275 let opt = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 }, alphaType: 3 }; 2276 let pixelMapDetails = { 2277 'pixelMapKey1': 123, 2278 'pixelMapKey2': 'pixelMapValue', 2279 'pixelMapKey3': u8Array, 2280 }; 2281 let pixelMap = { 2282 uniformDataType : 'openharmony.pixel-map', 2283 pixelMap : image.createPixelMapSync(arrayBuffer, opt), 2284 details : pixelMapDetails 2285 }; 2286 let record = new UDC.UnifiedRecord('general.file-uri', fileUri); 2287 record.addEntry('openharmony.pixel-map', pixelMap); 2288 let rawType = record.getType(); 2289 expect(rawType).assertEqual('general.image'); 2290 let rawRecordTypes = record.getTypes(); 2291 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2292 expect(rawRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2293 2294 let unifiedData = new UDC.UnifiedData(record); 2295 let rawDataTypes = unifiedData.getTypes(); 2296 expect(rawDataTypes.includes('general.image')).assertTrue(); 2297 expect(rawDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2298 expect(unifiedData.hasType('general.file-uri')).assertTrue(); 2299 expect(unifiedData.hasType('general.image')).assertTrue(); 2300 expect(unifiedData.hasType('general.jpeg')).assertTrue(); 2301 try { 2302 UDC.insertData(optionsValid, unifiedData).then((data) => { 2303 console.info(TAG, `insert success. The key: ${data}`); 2304 let options = { key: data }; 2305 UDC.queryData(options).then((data) => { 2306 console.info(TAG, 'query success.'); 2307 let records = data[0].getRecords(); 2308 let rawType = records[0].getType(); 2309 expect(rawType).assertEqual('general.image'); 2310 let getRecordTypes = records[0].getTypes(); 2311 expect(getRecordTypes.includes('general.file-uri')).assertTrue(); 2312 expect(getRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2313 2314 let getDataTypes = data[0].getTypes(); 2315 expect(getDataTypes.includes('general.image')).assertTrue(); 2316 for (let i = 0; i < records.length; i++) { 2317 if (records[i].getType() === 'general.image') { 2318 let getImageUri = records[i].imageUri; 2319 expect(getImageUri).assertEqual('www.xx.com'); 2320 } 2321 } 2322 let getValue = records[0].getValue(); 2323 expect(getValue.uniformDataType).assertEqual('general.file-uri'); 2324 expect(getValue.oriUri).assertEqual('www.xx.com'); 2325 expect(getValue.fileType).assertEqual('general.jpeg'); 2326 expect(getValue.details.fileUriKey1).assertEqual(123); 2327 expect(getValue.details.fileUriKey2).assertEqual('fileUriValue'); 2328 2329 let getEntryFileUri = records[0].getEntry('general.file-uri'); 2330 expect(getEntryFileUri.uniformDataType).assertEqual('general.file-uri'); 2331 expect(getEntryFileUri.oriUri).assertEqual('www.xx.com'); 2332 expect(getEntryFileUri.fileType).assertEqual('general.jpeg'); 2333 expect(getEntryFileUri.details.fileUriKey1).assertEqual(123); 2334 2335 let getEntryPixelMap = records[0].getEntry('openharmony.pixel-map'); 2336 expect(getEntryPixelMap.uniformDataType).assertEqual('openharmony.pixel-map'); 2337 getEntryPixelMap.pixelMap.getImageInfo().then((imageInfo)=>{ 2338 expect(imageInfo.size.height).assertEqual(opt.size.height); 2339 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2340 }); 2341 expect(getEntryPixelMap.details.pixelMapKey1).assertEqual(123); 2342 expect(getEntryPixelMap.details.pixelMapKey2).assertEqual('pixelMapValue'); 2343 expect(data[0].hasType('general.file-uri')).assertTrue(); 2344 expect(data[0].hasType('general.image')).assertTrue(); 2345 expect(data[0].hasType('general.jpeg')).assertTrue(); 2346 2347 UDC.deleteData(options).then((data) => { 2348 console.info(TAG, 'delete success.'); 2349 expect(data.length).assertEqual(1); 2350 done(); 2351 }).catch(() => { 2352 console.error(TAG, 'Unreachable code!'); 2353 expect(null).assertFail(); 2354 done(); 2355 }); 2356 }).catch(() => { 2357 console.error(TAG, 'Unreachable code!'); 2358 expect(null).assertFail(); 2359 done(); 2360 }); 2361 }).catch(() => { 2362 console.error(TAG, 'Unreachable code!'); 2363 expect(null).assertFail(); 2364 done(); 2365 }); 2366 } catch (e) { 2367 console.error(TAG, 'Unreachable code!'); 2368 expect(null).assertFail(); 2369 done(); 2370 } 2371 }); 2372 2373 /** 2374 * @tc.name FileUriTest002 2375 * @tc.desc 2376 * @tc.type: FUNC 2377 * @tc.require: test constructor UnifiedRecord(UDType type, ValueType value) 2378 */ 2379 it('FileUriTest002', 0, async function (done) { 2380 const TAG = 'FileUriTest002'; 2381 console.info(TAG, 'start'); 2382 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2383 let fileUriDetails = { 2384 'fileUriKey1': 123, 2385 'fileUriKey2': 'fileUriValue', 2386 'fileUriKey3': u8Array, 2387 }; 2388 let fileUri = { 2389 uniformDataType : 'general.file-uri', 2390 oriUri : 'www.xx.com', 2391 fileType : 'general.image', 2392 details : fileUriDetails 2393 }; 2394 let record = new UDC.UnifiedRecord('general.file-uri', fileUri); 2395 let rawType = record.getType(); 2396 expect(rawType).assertEqual('general.image'); 2397 let rawRecordTypes = record.getTypes(); 2398 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2399 2400 let unifiedData = new UDC.UnifiedData(record); 2401 let rawDataTypes = unifiedData.getTypes(); 2402 expect(rawDataTypes.includes('general.image')).assertTrue(); 2403 expect(unifiedData.hasType('general.file-uri')).assertTrue(); 2404 expect(unifiedData.hasType('general.image')).assertTrue(); 2405 try { 2406 UDC.insertData(optionsValid, unifiedData).then((data) => { 2407 console.info(TAG, `insert success. The key: ${data}`); 2408 let options = { key: data }; 2409 UDC.queryData(options).then((data) => { 2410 console.info(TAG, 'query success.'); 2411 expect(data.length).assertEqual(1); 2412 let records = data[0].getRecords(); 2413 expect(records.length).assertEqual(1); 2414 let rawType = records[0].getType(); 2415 expect(rawType).assertEqual('general.image'); 2416 let rawRecordTypes = records[0].getTypes(); 2417 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2418 2419 let rawDataTypes = data[0].getTypes(); 2420 expect(rawDataTypes.includes('general.image')).assertTrue(); 2421 for (let i = 0; i < records.length; i++) { 2422 if (records[i].getType() === 'general.image') { 2423 let getImageUri = records[i].imageUri; 2424 expect(getImageUri).assertEqual('www.xx.com'); 2425 } 2426 } 2427 let getValue = records[0].getValue(); 2428 expect(getValue.uniformDataType).assertEqual('general.file-uri'); 2429 expect(getValue.oriUri).assertEqual('www.xx.com'); 2430 expect(getValue.fileType).assertEqual('general.image'); 2431 expect(getValue.details.fileUriKey1).assertEqual(123); 2432 expect(getValue.details.fileUriKey2).assertEqual('fileUriValue'); 2433 2434 let getEntry = records[0].getEntry('general.file-uri'); 2435 expect(getEntry.uniformDataType).assertEqual('general.file-uri'); 2436 expect(getEntry.oriUri).assertEqual('www.xx.com'); 2437 expect(getEntry.fileType).assertEqual('general.image'); 2438 expect(getEntry.details.fileUriKey1).assertEqual(123); 2439 expect(data[0].hasType('general.file-uri')).assertTrue(); 2440 expect(data[0].hasType('general.image')).assertTrue(); 2441 2442 UDC.deleteData(options).then((data) => { 2443 console.info(TAG, 'delete success.'); 2444 expect(data.length).assertEqual(1); 2445 done(); 2446 }).catch(() => { 2447 console.error(TAG, 'Unreachable code!'); 2448 expect(null).assertFail(); 2449 done(); 2450 }); 2451 }).catch(() => { 2452 console.error(TAG, 'Unreachable code!'); 2453 expect(null).assertFail(); 2454 done(); 2455 }); 2456 }).catch(() => { 2457 console.error(TAG, 'Unreachable code!'); 2458 expect(null).assertFail(); 2459 done(); 2460 }); 2461 } catch (e) { 2462 console.error(TAG, 'Unreachable code!'); 2463 expect(null).assertFail(); 2464 done(); 2465 } 2466 }); 2467 2468 /** 2469 * @tc.name FileUriTest003 2470 * @tc.desc 2471 * @tc.type: FUNC 2472 * @tc.require: test constructor UDC 2473 */ 2474 it('FileUriTest003', 0, async function (done) { 2475 const TAG = 'FileUriTest003'; 2476 console.info(TAG, 'start'); 2477 let fileUriDetails = { 2478 'fileUriKey1': 123, 2479 'fileUriKey2': 'fileUriValue', 2480 }; 2481 let fileUri = { 2482 uniformDataType : 'general.file-uri', 2483 oriUri : 'www.xx.com', 2484 fileType : 'general.jpeg', 2485 details : fileUriDetails 2486 }; 2487 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2488 let arrayBuffer = new ArrayBuffer(4 * 200 * 200); 2489 let opt = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 }, alphaType: 3 }; 2490 let pixelMapDetails = { 2491 'pixelMapKey1': 123, 2492 'pixelMapKey2': 'pixelMapValue', 2493 'pixelMapKey3': u8Array, 2494 }; 2495 let pixelMap = { 2496 uniformDataType : 'openharmony.pixel-map', 2497 pixelMap : image.createPixelMapSync(arrayBuffer, opt), 2498 details : pixelMapDetails 2499 }; 2500 let record = new UDC.File(); 2501 record.details = { 2502 name: 'test', 2503 type: 'txt', 2504 }; 2505 record.uri = 'schema://com.samples.test/files/test.txt'; 2506 record.addEntry('openharmony.pixel-map', pixelMap); 2507 record.addEntry('general.file-uri', fileUri); 2508 let rawType = record.getType(); 2509 expect(rawType).assertEqual('general.image'); 2510 let rawRecordTypes = record.getTypes(); 2511 expect(rawRecordTypes.includes('general.file')).assertFalse(); 2512 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2513 expect(rawRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2514 2515 let unifiedData = new UDC.UnifiedData(record); 2516 let rawDataTypes = unifiedData.getTypes(); 2517 expect(rawDataTypes.includes('general.image')).assertTrue(); 2518 expect(rawDataTypes.includes('general.file-uri')).assertFalse(); 2519 expect(rawDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2520 expect(unifiedData.hasType('general.file-uri')).assertTrue(); 2521 expect(unifiedData.hasType('general.image')).assertTrue(); 2522 expect(unifiedData.hasType('general.jpeg')).assertTrue(); 2523 try { 2524 UDC.insertData(optionsValid, unifiedData).then((data) => { 2525 console.info(TAG, `insert success. The key: ${data}`); 2526 let options = { key: data }; 2527 UDC.queryData(options).then((data) => { 2528 console.info(TAG, 'query success.'); 2529 let records = data[0].getRecords(); 2530 let rawType = records[0].getType(); 2531 expect(rawType).assertEqual('general.image'); 2532 let getRecordTypes = records[0].getTypes(); 2533 expect(getRecordTypes.includes('general.file')).assertFalse(); 2534 expect(getRecordTypes.includes('general.file-uri')).assertTrue(); 2535 expect(getRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2536 2537 let getDataTypes = data[0].getTypes(); 2538 expect(getDataTypes.includes('general.image')).assertTrue(); 2539 expect(getDataTypes.includes('general.file-uri')).assertFalse(); 2540 expect(getDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2541 for (let i = 0; i < records.length; i++) { 2542 if (records[i].getType() === 'general.file') { 2543 let getUri = records[i].uri; 2544 expect(getUri).assertEqual('schema://com.samples.test/files/test.txt'); 2545 } 2546 } 2547 let getValue = records[0].getValue(); 2548 expect(getValue.uniformDataType).assertEqual('general.file-uri'); 2549 expect(getValue.oriUri).assertEqual('www.xx.com'); 2550 expect(getValue.fileType).assertEqual('general.jpeg'); 2551 expect(getValue.details.fileUriKey1).assertEqual(123); 2552 2553 let getEntryFileUri = records[0].getEntry('general.file-uri'); 2554 expect(getEntryFileUri.uniformDataType).assertEqual('general.file-uri'); 2555 expect(getEntryFileUri.oriUri).assertEqual('www.xx.com'); 2556 expect(getEntryFileUri.fileType).assertEqual('general.jpeg'); 2557 expect(getEntryFileUri.details.fileUriKey1).assertEqual(123); 2558 2559 let getEntryPixelMap = records[0].getEntry('openharmony.pixel-map'); 2560 expect(getEntryPixelMap.uniformDataType).assertEqual('openharmony.pixel-map'); 2561 getEntryPixelMap.pixelMap.getImageInfo().then((imageInfo)=>{ 2562 expect(imageInfo.size.height).assertEqual(opt.size.height); 2563 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2564 }); 2565 expect(getEntryPixelMap.details.pixelMapKey1).assertEqual(123); 2566 expect(getEntryPixelMap.details.pixelMapKey2).assertEqual('pixelMapValue'); 2567 expect(data[0].hasType('general.file-uri')).assertTrue(); 2568 expect(data[0].hasType('general.image')).assertTrue(); 2569 expect(data[0].hasType('general.jpeg')).assertTrue(); 2570 2571 UDC.deleteData(options).then((data) => { 2572 console.info(TAG, 'delete success.'); 2573 expect(data.length).assertEqual(1); 2574 done(); 2575 }).catch(() => { 2576 console.error(TAG, 'Unreachable code!'); 2577 expect(null).assertFail(); 2578 done(); 2579 }); 2580 }).catch(() => { 2581 console.error(TAG, 'Unreachable code!'); 2582 expect(null).assertFail(); 2583 done(); 2584 }); 2585 }).catch(() => { 2586 console.error(TAG, 'Unreachable code!'); 2587 expect(null).assertFail(); 2588 done(); 2589 }); 2590 } catch (e) { 2591 console.error(TAG, 'Unreachable code!'); 2592 expect(null).assertFail(); 2593 done(); 2594 } 2595 }); 2596 2597 /** 2598 * @tc.name FileUriTest004 2599 * @tc.desc 2600 * @tc.type: FUNC 2601 * @tc.require: test constructor no parameter 2602 */ 2603 it('FileUriTest004', 0, async function (done) { 2604 const TAG = 'FileUriTest004'; 2605 console.info(TAG, 'start'); 2606 let fileUriDetails = { 2607 'fileUriKey1': 123, 2608 'fileUriKey2': 'fileUriValue', 2609 }; 2610 let fileUri = { 2611 uniformDataType : 'general.file-uri', 2612 oriUri : 'www.xx.com', 2613 fileType : 'general.vob', 2614 details : fileUriDetails 2615 }; 2616 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2617 let arrayBuffer = new ArrayBuffer(4 * 200 * 200); 2618 let opt = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 }, alphaType: 3 }; 2619 let pixelMapDetails = { 2620 'pixelMapKey1': 123, 2621 'pixelMapKey2': 'pixelMapValue', 2622 'pixelMapKey3': u8Array, 2623 }; 2624 let pixelMap = { 2625 uniformDataType : 'openharmony.pixel-map', 2626 pixelMap : image.createPixelMapSync(arrayBuffer, opt), 2627 details : pixelMapDetails 2628 }; 2629 let record = new UDC.UnifiedRecord(); 2630 record.addEntry('general.file-uri', fileUri); 2631 record.addEntry('openharmony.pixel-map', pixelMap); 2632 let rawType = record.getType(); 2633 expect(rawType).assertEqual('general.video'); 2634 let rawRecordTypes = record.getTypes(); 2635 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2636 expect(rawRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2637 let unifiedData = new UDC.UnifiedData(record); 2638 let rawDataTypes = unifiedData.getTypes(); 2639 expect(rawDataTypes.includes('general.video')).assertTrue(); 2640 expect(rawDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2641 expect(unifiedData.hasType('general.file-uri')).assertTrue(); 2642 expect(unifiedData.hasType('general.video')).assertTrue(); 2643 expect(unifiedData.hasType('general.vob')).assertTrue(); 2644 let records = unifiedData.getRecords(); 2645 expect(records.length).assertEqual(1); 2646 try { 2647 UDC.insertData(optionsValid, unifiedData).then((data) => { 2648 console.info(TAG, `insert success. The key: ${data}`); 2649 let options = { key: data }; 2650 UDC.queryData(options).then((data) => { 2651 console.info(TAG, 'query success.'); 2652 let records = data[0].getRecords(); 2653 let rawType = records[0].getType(); 2654 expect(rawType).assertEqual('general.video'); 2655 let getRecordTypes = records[0].getTypes(); 2656 expect(getRecordTypes.includes('general.file-uri')).assertTrue(); 2657 expect(getRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2658 2659 let getDataTypes = data[0].getTypes(); 2660 expect(getDataTypes.includes('general.video')).assertTrue(); 2661 expect(getDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2662 for (let i = 0; i < records.length; i++) { 2663 if (records[i].getType() === 'general.video') { 2664 let getUri = records[i].videoUri; 2665 expect(getUri).assertEqual('www.xx.com'); 2666 } 2667 } 2668 let getValue = records[0].getValue(); 2669 expect(getValue.uniformDataType).assertEqual('general.file-uri'); 2670 expect(getValue.oriUri).assertEqual('www.xx.com'); 2671 expect(getValue.fileType).assertEqual('general.vob'); 2672 expect(getValue.details.fileUriKey1).assertEqual(123); 2673 expect(getValue.details.fileUriKey2).assertEqual('fileUriValue'); 2674 2675 let getEntryFileUri = records[0].getEntry('general.file-uri'); 2676 expect(getEntryFileUri.uniformDataType).assertEqual('general.file-uri'); 2677 expect(getEntryFileUri.oriUri).assertEqual('www.xx.com'); 2678 expect(getEntryFileUri.fileType).assertEqual('general.vob'); 2679 expect(getEntryFileUri.details.fileUriKey1).assertEqual(123); 2680 2681 let getEntryPixelMap = records[0].getEntry('openharmony.pixel-map'); 2682 expect(getEntryPixelMap.uniformDataType).assertEqual('openharmony.pixel-map'); 2683 getEntryPixelMap.pixelMap.getImageInfo().then((imageInfo)=>{ 2684 expect(imageInfo.size.height).assertEqual(opt.size.height); 2685 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2686 }); 2687 expect(getEntryPixelMap.details.pixelMapKey1).assertEqual(123); 2688 expect(getEntryPixelMap.details.pixelMapKey2).assertEqual('pixelMapValue'); 2689 expect(data[0].hasType('general.file-uri')).assertTrue(); 2690 expect(data[0].hasType('general.video')).assertTrue(); 2691 expect(data[0].hasType('general.vob')).assertTrue(); 2692 2693 UDC.deleteData(options).then((data) => { 2694 console.info(TAG, 'delete success.'); 2695 expect(data.length).assertEqual(1); 2696 done(); 2697 }).catch(() => { 2698 console.error(TAG, 'Unreachable code!'); 2699 expect(null).assertFail(); 2700 done(); 2701 }); 2702 }).catch(() => { 2703 console.error(TAG, 'Unreachable code!'); 2704 expect(null).assertFail(); 2705 done(); 2706 }); 2707 }).catch(() => { 2708 console.error(TAG, 'Unreachable code!'); 2709 expect(null).assertFail(); 2710 done(); 2711 }); 2712 } catch (e) { 2713 console.error(TAG, 'Unreachable code!'); 2714 expect(null).assertFail(); 2715 done(); 2716 } 2717 }); 2718 2719 /** 2720 * @tc.name FileUriTest005 2721 * @tc.desc 2722 * @tc.type: FUNC 2723 * @tc.require: test constructor no parameter 2724 */ 2725 it('FileUriTest005', 0, async function (done) { 2726 const TAG = 'FileUriTest005'; 2727 console.info(TAG, 'start'); 2728 let fileUriDetails = { 2729 'fileUriKey1': 123, 2730 'fileUriKey2': 'fileUriValue', 2731 }; 2732 let fileUri = { 2733 uniformDataType : 'general.file-uri', 2734 oriUri : 'www.xx.com', 2735 fileType : 'general.vob', 2736 details : fileUriDetails 2737 }; 2738 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2739 let arrayBuffer = new ArrayBuffer(4 * 200 * 200); 2740 let opt = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 }, alphaType: 3 }; 2741 let pixelMapDetails = { 2742 'pixelMapKey1': 123, 2743 'pixelMapKey2': 'pixelMapValue', 2744 'pixelMapKey3': u8Array, 2745 }; 2746 let pixelMap = { 2747 uniformDataType : 'openharmony.pixel-map', 2748 pixelMap : image.createPixelMapSync(arrayBuffer, opt), 2749 details : pixelMapDetails 2750 }; 2751 let record = new UDC.UnifiedRecord('general.vob', fileUri); 2752 record.addEntry('openharmony.pixel-map', pixelMap); 2753 let rawType = record.getType(); 2754 expect(rawType).assertEqual('general.vob'); 2755 let rawRecordTypes = record.getTypes(); 2756 expect(rawRecordTypes.includes('general.vob')).assertTrue(); 2757 expect(rawRecordTypes.includes('general.file-uri')).assertFalse(); 2758 expect(rawRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2759 let unifiedData = new UDC.UnifiedData(record); 2760 let rawDataTypes = unifiedData.getTypes(); 2761 expect(rawDataTypes.includes('general.vob')).assertTrue(); 2762 expect(rawDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2763 expect(unifiedData.hasType('general.file-uri')).assertFalse(); 2764 expect(unifiedData.hasType('general.video')).assertTrue(); 2765 expect(unifiedData.hasType('general.vob')).assertTrue(); 2766 try { 2767 UDC.insertData(optionsValid, unifiedData).then((data) => { 2768 console.info(TAG, `insert success. The key: ${data}`); 2769 let options = { key: data }; 2770 UDC.queryData(options).then((data) => { 2771 console.info(TAG, 'query success.'); 2772 let records = data[0].getRecords(); 2773 let rawType = records[0].getType(); 2774 expect(rawType).assertEqual('general.vob'); 2775 let getRecordTypes = records[0].getTypes(); 2776 expect(getRecordTypes.includes('general.vob')).assertTrue(); 2777 expect(getRecordTypes.includes('general.file-uri')).assertFalse(); 2778 expect(getRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2779 2780 let getDataTypes = data[0].getTypes(); 2781 expect(getDataTypes.includes('general.vob')).assertTrue(); 2782 expect(getDataTypes.includes('general.file-uri')).assertFalse(); 2783 expect(getDataTypes.includes('openharmony.pixel-map')).assertFalse(); 2784 2785 let getValue = records[0].getValue(); 2786 expect(getValue.uniformDataType).assertEqual('general.file-uri'); 2787 expect(getValue.oriUri).assertEqual('www.xx.com'); 2788 expect(getValue.fileType).assertEqual('general.vob'); 2789 expect(getValue.details.fileUriKey1).assertEqual(123); 2790 expect(getValue.details.fileUriKey2).assertEqual('fileUriValue'); 2791 2792 let getEntryFileUri = records[0].getEntry('general.file-uri'); 2793 expect(getEntryFileUri).assertEqual(undefined); 2794 2795 let getEntryVob = records[0].getEntry('general.vob'); 2796 expect(getEntryVob.uniformDataType).assertEqual('general.file-uri'); 2797 expect(getEntryVob.oriUri).assertEqual('www.xx.com'); 2798 expect(getEntryVob.fileType).assertEqual('general.vob'); 2799 expect(getEntryVob.details.fileUriKey1).assertEqual(123); 2800 2801 let getEntryPixelMap = records[0].getEntry('openharmony.pixel-map'); 2802 expect(getEntryPixelMap.uniformDataType).assertEqual('openharmony.pixel-map'); 2803 getEntryPixelMap.pixelMap.getImageInfo().then((imageInfo)=>{ 2804 expect(imageInfo.size.height).assertEqual(opt.size.height); 2805 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2806 }); 2807 expect(getEntryPixelMap.details.pixelMapKey1).assertEqual(123); 2808 expect(getEntryPixelMap.details.pixelMapKey2).assertEqual('pixelMapValue'); 2809 expect(data[0].hasType('general.file-uri')).assertFalse(); 2810 expect(data[0].hasType('general.video')).assertTrue(); 2811 expect(data[0].hasType('general.vob')).assertTrue(); 2812 2813 UDC.deleteData(options).then((data) => { 2814 console.info(TAG, 'delete success.'); 2815 expect(data.length).assertEqual(1); 2816 done(); 2817 }).catch(() => { 2818 console.error(TAG, 'Unreachable code!'); 2819 expect(null).assertFail(); 2820 done(); 2821 }); 2822 }).catch(() => { 2823 console.error(TAG, 'Unreachable code!'); 2824 expect(null).assertFail(); 2825 done(); 2826 }); 2827 }).catch(() => { 2828 console.error(TAG, 'Unreachable code!'); 2829 expect(null).assertFail(); 2830 done(); 2831 }); 2832 } catch (e) { 2833 console.error(TAG, 'Unreachable code!'); 2834 expect(null).assertFail(); 2835 done(); 2836 } 2837 }); 2838 2839 /** 2840 * @tc.name FileUriTest006 2841 * @tc.desc 2842 * @tc.type: FUNC 2843 * @tc.require: test constructor no parameter 2844 */ 2845 it('FileUriTest006', 0, async function (done) { 2846 const TAG = 'FileUriTest006'; 2847 console.info(TAG, 'start'); 2848 let fileUriDetails = { 2849 'fileUriKey1': 123, 2850 'fileUriKey2': 'fileUriValue', 2851 }; 2852 let fileUri = { 2853 uniformDataType : 'general.file-uri', 2854 oriUri : 'www.xx.com', 2855 fileType : 'general.vob', 2856 details : fileUriDetails 2857 }; 2858 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2859 let arrayBuffer = new ArrayBuffer(4 * 200 * 200); 2860 let opt = { editable: true, pixelFormat: 3, size: { height: 200, width: 200 }, alphaType: 3 }; 2861 let pixelMapDetails = { 2862 'pixelMapKey1': 123, 2863 'pixelMapKey2': 'pixelMapValue', 2864 'pixelMapKey3': u8Array, 2865 }; 2866 let pixelMap = { 2867 uniformDataType : 'openharmony.pixel-map', 2868 pixelMap : image.createPixelMapSync(arrayBuffer, opt), 2869 details : pixelMapDetails 2870 }; 2871 let record = new UDC.UnifiedRecord('openharmony.pixel-map', pixelMap); 2872 record.addEntry('general.file-uri', fileUri); 2873 let rawType = record.getType(); 2874 expect(rawType).assertEqual('openharmony.pixel-map'); 2875 let rawRecordTypes = record.getTypes(); 2876 expect(rawRecordTypes.includes('general.vob')).assertFalse(); 2877 expect(rawRecordTypes.includes('general.file-uri')).assertTrue(); 2878 expect(rawRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2879 let unifiedData = new UDC.UnifiedData(record); 2880 let rawDataTypes = unifiedData.getTypes(); 2881 expect(rawDataTypes.includes('general.vob')).assertFalse(); 2882 expect(rawDataTypes.includes('general.file-uri')).assertFalse(); 2883 expect(rawDataTypes.includes('openharmony.pixel-map')).assertTrue(); 2884 expect(unifiedData.hasType('general.file-uri')).assertTrue(); 2885 expect(unifiedData.hasType('general.video')).assertTrue(); 2886 expect(unifiedData.hasType('general.vob')).assertTrue(); 2887 expect(unifiedData.hasType('openharmony.pixel-map')).assertTrue(); 2888 try { 2889 UDC.insertData(optionsValid, unifiedData).then((data) => { 2890 console.info(TAG, `insert success. The key: ${data}`); 2891 let options = { key: data }; 2892 UDC.queryData(options).then((data) => { 2893 console.info(TAG, 'query success.'); 2894 let records = data[0].getRecords(); 2895 let rawType = records[0].getType(); 2896 expect(rawType).assertEqual('openharmony.pixel-map'); 2897 let getRecordTypes = records[0].getTypes(); 2898 expect(getRecordTypes.includes('general.vob')).assertFalse(); 2899 expect(getRecordTypes.includes('general.file-uri')).assertTrue(); 2900 expect(getRecordTypes.includes('openharmony.pixel-map')).assertTrue(); 2901 2902 let getDataTypes = data[0].getTypes(); 2903 expect(getDataTypes.includes('general.vob')).assertFalse(); 2904 expect(getDataTypes.includes('general.file-uri')).assertFalse(); 2905 expect(getDataTypes.includes('openharmony.pixel-map')).assertTrue(); 2906 2907 let getValue = records[0].getValue(); 2908 expect(getValue.uniformDataType).assertEqual('openharmony.pixel-map'); 2909 getValue.pixelMap.getImageInfo().then((imageInfo)=>{ 2910 expect(imageInfo.size.height).assertEqual(opt.size.height); 2911 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2912 }); 2913 expect(getValue.details.pixelMapKey1).assertEqual(123); 2914 expect(getValue.details.pixelMapKey2).assertEqual('pixelMapValue'); 2915 2916 let getEntryFileUri = records[0].getEntry('general.file-uri'); 2917 expect(getEntryFileUri.uniformDataType).assertEqual('general.file-uri'); 2918 expect(getEntryFileUri.oriUri).assertEqual('www.xx.com'); 2919 expect(getEntryFileUri.fileType).assertEqual('general.vob'); 2920 expect(getEntryFileUri.details.fileUriKey1).assertEqual(123); 2921 2922 let getEntryPixelMap = records[0].getEntry('openharmony.pixel-map'); 2923 expect(getEntryPixelMap.uniformDataType).assertEqual('openharmony.pixel-map'); 2924 getEntryPixelMap.pixelMap.getImageInfo().then((imageInfo)=>{ 2925 expect(imageInfo.size.height).assertEqual(opt.size.height); 2926 expect(imageInfo.pixelFormat).assertEqual(opt.pixelFormat); 2927 }); 2928 expect(getEntryPixelMap.details.pixelMapKey1).assertEqual(123); 2929 expect(getEntryPixelMap.details.pixelMapKey2).assertEqual('pixelMapValue'); 2930 expect(data[0].hasType('general.file-uri')).assertTrue(); 2931 expect(data[0].hasType('general.video')).assertTrue(); 2932 expect(data[0].hasType('general.vob')).assertTrue(); 2933 expect(data[0].hasType('openharmony.pixel-map')).assertTrue(); 2934 2935 UDC.deleteData(options).then((data) => { 2936 console.info(TAG, 'delete success.'); 2937 expect(data.length).assertEqual(1); 2938 done(); 2939 }).catch(() => { 2940 console.error(TAG, 'Unreachable code!'); 2941 expect(null).assertFail(); 2942 done(); 2943 }); 2944 }).catch(() => { 2945 console.error(TAG, 'Unreachable code!'); 2946 expect(null).assertFail(); 2947 done(); 2948 }); 2949 }).catch(() => { 2950 console.error(TAG, 'Unreachable code!'); 2951 expect(null).assertFail(); 2952 done(); 2953 }); 2954 } catch (e) { 2955 console.error(TAG, 'Unreachable code!'); 2956 expect(null).assertFail(); 2957 done(); 2958 } 2959 }); 2960 2961 /** 2962 * @tc.name MultiEntryTest007 2963 * @tc.desc Build a record with no params, then add entries. test if UnifiedData::getRecords() function works well. 2964 * @tc.type: FUNC 2965 * @tc.require: 2966 */ 2967 it('MultiEntryTest007', 0, async function (done) { 2968 const TAG = 'MultiEntryTest007'; 2969 console.info(TAG, 'start'); 2970 2971 let plaintextValue = 'plaintextValue'; 2972 let systemDefinedValue = 'systemDefinedValue'; 2973 let hyperlinkValue = 'hyperlinkValue'; 2974 let record = new UDC.UnifiedRecord(); 2975 record.addEntry(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2976 record.addEntry(UTD.UniformDataType.HYPERLINK, hyperlinkValue); 2977 record.addEntry('openharmony.app-item', systemDefinedValue); 2978 2979 let recordFile = new UDC.File(); 2980 recordFile.uri = 'schema://com.samples.test/files/test.txt'; 2981 recordFile.addEntry(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2982 recordFile.addEntry(UTD.UniformDataType.HYPERLINK, hyperlinkValue); 2983 2984 let recordAppDefined = new UDC.ApplicationDefinedRecord(); 2985 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 2986 recordAppDefined.applicationDefinedType = 'ApplicationDefinedType'; 2987 recordAppDefined.rawData = u8Array; 2988 2989 let recordAny = new UDC.UnifiedRecord('test.utd-id', 'test.utd-value'); 2990 recordAny.addEntry(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 2991 recordAny.addEntry(UTD.UniformDataType.HYPERLINK, hyperlinkValue); 2992 2993 let unifiedData = new UDC.UnifiedData(record); 2994 unifiedData.addRecord(recordFile); 2995 unifiedData.addRecord(recordAppDefined); 2996 unifiedData.addRecord(recordAny); 2997 let records = unifiedData.getRecords(); 2998 expect(records.length).assertEqual(4); 2999 3000 try { 3001 UDC.insertData(optionsValid, unifiedData).then((data) => { 3002 console.info(TAG, `insert success. The key: ${data}`); 3003 let options = { key: data }; 3004 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 3005 UDC.queryData(options).then((data) => { 3006 console.info(TAG, 'query success.'); 3007 expect(data.length).assertEqual(1); 3008 let records = data[0].getRecords(); 3009 expect(records.length).assertEqual(4); 3010 3011 UDC.deleteData(options).then((data) => { 3012 console.info(TAG, 'delete success.'); 3013 expect(data.length).assertEqual(1); 3014 done(); 3015 }).catch(() => { 3016 console.error(TAG, 'Unreachable code!'); 3017 expect(null).assertFail(); 3018 done(); 3019 }); 3020 }).catch(() => { 3021 console.error(TAG, 'Unreachable code!'); 3022 expect(null).assertFail(); 3023 done(); 3024 }); 3025 }).catch(() => { 3026 console.error(TAG, 'Unreachable code!'); 3027 expect(null).assertFail(); 3028 done(); 3029 }); 3030 } catch (e) { 3031 console.error(TAG, 'Unreachable code!'); 3032 expect(null).assertFail(); 3033 done(); 3034 } 3035 }); 3036 3037 /** 3038 * @tc.name MultiEntryTest008 3039 * @tc.desc UDC to get first entry works well test 3040 * @tc.type: FUNC 3041 * @tc.require: 3042 */ 3043 it('MultiEntryTest008', 0, async function (done) { 3044 const TAG = 'MultiEntryTest008'; 3045 console.info(TAG, 'start'); 3046 let plaintextValue = 'plaintextValue'; 3047 let record = new UDC.UnifiedRecord(); 3048 record.addEntry(UTD.UniformDataType.PLAIN_TEXT, plaintextValue); 3049 let recordFile = new UDC.File(); 3050 recordFile.uri = 'schema://com.samples.test/files/test.txt'; 3051 let recordAppDefined = new UDC.ApplicationDefinedRecord(); 3052 let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 3053 recordAppDefined.applicationDefinedType = 'ApplicationDefinedType'; 3054 recordAppDefined.rawData = u8Array; 3055 let recordAny = new UDC.UnifiedRecord('general.log', 'test.utd-value'); 3056 let recordHyperlink = new UDC.UnifiedRecord('general.hyperlink', 'test.hyperlink'); 3057 let unifiedData = new UDC.UnifiedData(record); 3058 unifiedData.addRecord(recordFile); 3059 unifiedData.addRecord(recordAppDefined); 3060 unifiedData.addRecord(recordAny); 3061 unifiedData.addRecord(recordHyperlink); 3062 let records = unifiedData.getRecords(); 3063 expect(records.length).assertEqual(5); 3064 try { 3065 UDC.insertData(optionsValid, unifiedData).then((data) => { 3066 console.info(TAG, `insert success. The key: ${data}`); 3067 let options = { key: data }; 3068 console.info(TAG, `query start. The options: ${JSON.stringify(options)}`); 3069 UDC.queryData(options).then((data) => { 3070 console.info(TAG, 'query success.'); 3071 expect(data.length).assertEqual(1); 3072 let records = data[0].getRecords(); 3073 let firstEntry1 = records[0].getEntry(UTD.UniformDataType.PLAIN_TEXT); 3074 expect(firstEntry1.textContent).assertEqual('plaintextValue'); 3075 let firstEntry2 = records[1].getEntry(UTD.UniformDataType.FILE_URI); 3076 expect(firstEntry2.oriUri).assertEqual('schema://com.samples.test/files/test.txt'); 3077 let firstEntry3 = records[2].getEntry('ApplicationDefinedType'); 3078 expect(firstEntry3.arrayBuffer.length).assertEqual(u8Array.length); 3079 let firstEntry4 = records[3].getEntry('general.log'); 3080 expect(firstEntry4).assertEqual('test.utd-value'); 3081 let firstEntry5 = records[4].getEntry('general.hyperlink'); 3082 expect(firstEntry5.url).assertEqual('test.hyperlink'); 3083 UDC.deleteData(options).then((data) => { 3084 console.info(TAG, 'delete success.'); 3085 expect(data.length).assertEqual(1); 3086 done(); 3087 }).catch(() => { 3088 console.error(TAG, 'Unreachable code!'); 3089 expect(null).assertFail(); 3090 done(); 3091 }); 3092 }).catch(() => { 3093 console.error(TAG, 'Unreachable code!'); 3094 expect(null).assertFail(); 3095 done(); 3096 }); 3097 }).catch(() => { 3098 console.error(TAG, 'Unreachable code!'); 3099 expect(null).assertFail(); 3100 done(); 3101 }); 3102 } catch (e) { 3103 console.error(TAG, 'Unreachable code!'); 3104 expect(null).assertFail(); 3105 done(); 3106 } 3107 }); 3108 3109 /** 3110 * @tc.name toEntriesTest001 3111 * @tc.desc test toEntries function normal 3112 * @tc.type: FUNC 3113 * @tc.require: 3114 */ 3115 it('toEntriesTest001', 0, async function (done) { 3116 const TAG = 'toEntriesTest001'; 3117 console.info(TAG, 'start'); 3118 let file = new UDC.File(); 3119 file.uri = 'schema://com.samples.test/files/test.txt'; 3120 let plainText = new UDC.PlainText(); 3121 plainText.textContent = 'this is textContent'; 3122 plainText.abstract = 'this is abstract'; 3123 let link = new UDC.Hyperlink(); 3124 link.url = 'www.XXX.com'; 3125 link.description = 'this is description'; 3126 let html = new UDC.HTML(); 3127 html.htmlContent = '<div><p>标题</p></div>'; 3128 html.plainContent = 'this is plainContent'; 3129 let form = new UDC.SystemDefinedForm(); 3130 form.formId = 123456; 3131 form.formName = 'MyFormName'; 3132 form.bundleName = 'MyBundleName'; 3133 form.abilityName = 'MyAbilityName'; 3134 form.module = 'MyModule'; 3135 form.details = { 3136 'formKey1': 123, 3137 'formKey2': 'formValue', 3138 'formKey3': U8_ARRAY, 3139 }; 3140 let applicationDefinedRecord = new UDC.ApplicationDefinedRecord(); 3141 applicationDefinedRecord.applicationDefinedType = 'ApplicationDefinedType'; 3142 applicationDefinedRecord.rawData = U8_ARRAY; 3143 let unifiedData = new UDC.UnifiedData(); 3144 unifiedData.addRecord(file); 3145 unifiedData.addRecord(plainText); 3146 unifiedData.addRecord(link); 3147 unifiedData.addRecord(html); 3148 unifiedData.addRecord(form); 3149 unifiedData.addRecord(applicationDefinedRecord); 3150 unifiedData.properties.tag = 'records_to_entries_data_format'; 3151 expect(unifiedData.getRecords().length).assertEqual(6); 3152 UDC.convertRecordsToEntries(unifiedData); 3153 expect(unifiedData.getRecords().length).assertEqual(1); 3154 let records = unifiedData.getRecords(); 3155 let recordEntries = records[0]; 3156 expect(recordEntries.uri).assertEqual('schema://com.samples.test/files/test.txt'); 3157 expect(recordEntries.getType()).assertEqual('general.file'); 3158 expect(recordEntries.getValue()).assertEqual(undefined); 3159 let fileEntry = recordEntries.getEntry('general.file-uri'); 3160 expect(fileEntry.uniformDataType).assertEqual('general.file-uri'); 3161 expect(fileEntry.oriUri).assertEqual('schema://com.samples.test/files/test.txt'); 3162 expect(fileEntry.fileType).assertEqual('general.file'); 3163 let plainTextEntry = recordEntries.getEntry('general.plain-text'); 3164 expect(plainTextEntry.textContent).assertEqual('this is textContent'); 3165 expect(plainTextEntry.abstract).assertEqual('this is abstract'); 3166 let linkEntry = recordEntries.getEntry('general.hyperlink'); 3167 expect(linkEntry.url).assertEqual('www.XXX.com'); 3168 expect(linkEntry.description).assertEqual('this is description'); 3169 let htmlEntry = recordEntries.getEntry('general.html'); 3170 expect(htmlEntry.htmlContent).assertEqual('<div><p>标题</p></div>'); 3171 expect(htmlEntry.plainContent).assertEqual('this is plainContent'); 3172 let formEntry = recordEntries.getEntry('openharmony.form'); 3173 expect(formEntry.formId).assertEqual(123456); 3174 expect(formEntry.formName).assertEqual('MyFormName'); 3175 expect(formEntry.bundleName).assertEqual('MyBundleName'); 3176 expect(formEntry.abilityName).assertEqual('MyAbilityName'); 3177 expect(formEntry.module).assertEqual('MyModule'); 3178 expect(formEntry.details.formKey1).assertEqual(123); 3179 expect(formEntry.details.formKey2).assertEqual('formValue'); 3180 let applicationDefinedEntry = recordEntries.getEntry('ApplicationDefinedType'); 3181 for (let i = 0; i < U8_ARRAY.length; i++) { 3182 expect(applicationDefinedEntry.arrayBuffer[i]).assertEqual(U8_ARRAY[i]); 3183 } 3184 expect(applicationDefinedEntry.uniformDataType).assertEqual('ApplicationDefinedType'); 3185 let entries = recordEntries.getEntries(); 3186 expect(entries['general.file-uri'].uniformDataType).assertEqual('general.file-uri'); 3187 expect(entries['general.file-uri'].oriUri).assertEqual('schema://com.samples.test/files/test.txt'); 3188 expect(entries['general.file-uri'].fileType).assertEqual('general.file'); 3189 expect(entries['general.plain-text'].uniformDataType).assertEqual('general.plain-text'); 3190 expect(entries['general.plain-text'].textContent).assertEqual('this is textContent'); 3191 expect(entries['general.plain-text'].abstract).assertEqual('this is abstract'); 3192 expect(entries['general.hyperlink'].uniformDataType).assertEqual('general.hyperlink'); 3193 expect(entries['general.hyperlink'].url).assertEqual('www.XXX.com'); 3194 expect(entries['general.hyperlink'].description).assertEqual('this is description'); 3195 expect(entries['general.html'].uniformDataType).assertEqual('general.html'); 3196 expect(entries['general.html'].htmlContent).assertEqual('<div><p>标题</p></div>'); 3197 expect(entries['general.html'].plainContent).assertEqual('this is plainContent'); 3198 expect(entries['openharmony.form'].uniformDataType).assertEqual('openharmony.form'); 3199 expect(entries['openharmony.form'].formId).assertEqual(123456); 3200 expect(entries['openharmony.form'].formName).assertEqual('MyFormName'); 3201 expect(entries['openharmony.form'].bundleName).assertEqual('MyBundleName'); 3202 expect(entries['openharmony.form'].abilityName).assertEqual('MyAbilityName'); 3203 expect(entries['openharmony.form'].module).assertEqual('MyModule'); 3204 expect(entries['openharmony.form'].details.formKey1).assertEqual(123); 3205 expect(entries['openharmony.form'].details.formKey2).assertEqual('formValue'); 3206 for (let i = 0; i < U8_ARRAY.length; i++) { 3207 expect(entries.ApplicationDefinedType.arrayBuffer[i]).assertEqual(U8_ARRAY[i]); 3208 } 3209 expect(entries.ApplicationDefinedType.uniformDataType).assertEqual('ApplicationDefinedType'); 3210 done(); 3211 }); 3212 3213 /** 3214 * @tc.name toEntriesTest002 3215 * @tc.desc test toEntries function with duplicate type 3216 * @tc.type: FUNC 3217 * @tc.require: 3218 */ 3219 it('toEntriesTest002', 0, async function (done) { 3220 const TAG = 'toEntriesTest002'; 3221 console.info(TAG, 'start'); 3222 let image = new UDC.Image(); 3223 image.uri = 'schema://com.samples.test/files/test.jpg'; 3224 let plainText = new UDC.PlainText(); 3225 plainText.textContent = 'this is textContent'; 3226 plainText.abstract = 'this is abstract'; 3227 let video = new UDC.Video(); 3228 video.uri = 'schema://com.samples.test/files/test.mp4'; 3229 let unifiedData = new UDC.UnifiedData(); 3230 unifiedData.addRecord(image); 3231 unifiedData.addRecord(plainText); 3232 unifiedData.addRecord(video); 3233 unifiedData.properties.tag = 'records_to_entries_data_format'; 3234 expect(unifiedData.getRecords().length).assertEqual(3); 3235 UDC.convertRecordsToEntries(unifiedData); 3236 expect(unifiedData.getRecords().length).assertEqual(1); 3237 let records = unifiedData.getRecords(); 3238 let recordEntries = records[0]; 3239 expect(recordEntries.uri).assertEqual('schema://com.samples.test/files/test.jpg'); 3240 expect(recordEntries.getType()).assertEqual('general.image'); 3241 expect(recordEntries.getValue()).assertEqual(undefined); 3242 let entries = recordEntries.getEntries(); 3243 expect(entries['general.file-uri'].uniformDataType).assertEqual('general.file-uri'); 3244 expect(entries['general.file-uri'].oriUri).assertEqual('schema://com.samples.test/files/test.jpg'); 3245 expect(entries['general.file-uri'].fileType).assertEqual('general.image'); 3246 expect(entries['general.plain-text'].uniformDataType).assertEqual('general.plain-text'); 3247 expect(entries['general.plain-text'].textContent).assertEqual('this is textContent'); 3248 expect(entries['general.plain-text'].abstract).assertEqual('this is abstract'); 3249 expect(entries['general.video']).assertEqual(undefined); 3250 done(); 3251 }); 3252 3253 /** 3254 * @tc.name toEntriesTest003 3255 * @tc.desc test toEntries function with duplicate type 3256 * @tc.type: FUNC 3257 * @tc.require: 3258 */ 3259 it('toEntriesTest003', 0, async function (done) { 3260 const TAG = 'toEntriesTest003'; 3261 console.info(TAG, 'start'); 3262 let recordFile = new UDC.UnifiedRecord('general.file', 'schema://com.samples.test/files/test.txt'); 3263 let recordVideo = new UDC.UnifiedRecord('general.video', 'schema://com.samples.test/files/test.mp4'); 3264 let recordPlainText = new UDC.UnifiedRecord('general.plain-text', 'this is textContent'); 3265 let unifiedData = new UDC.UnifiedData(); 3266 unifiedData.addRecord(recordFile); 3267 unifiedData.addRecord(recordVideo); 3268 unifiedData.addRecord(recordPlainText); 3269 unifiedData.properties.tag = 'records_to_entries_data_format'; 3270 expect(unifiedData.getRecords().length).assertEqual(3); 3271 UDC.convertRecordsToEntries(unifiedData); 3272 expect(unifiedData.getRecords().length).assertEqual(1); 3273 let records = unifiedData.getRecords(); 3274 let recordEntries = records[0]; 3275 expect(recordEntries.uri).assertEqual('schema://com.samples.test/files/test.txt'); 3276 expect(recordEntries.getType()).assertEqual('general.file'); 3277 expect(recordEntries.getValue()).assertEqual('schema://com.samples.test/files/test.txt'); 3278 let videoEntry = recordEntries.getEntry('general.file-uri'); 3279 expect(videoEntry.oriUri).assertEqual('schema://com.samples.test/files/test.txt'); 3280 expect(videoEntry.fileType).assertEqual('general.file'); 3281 let plainTextEntry = recordEntries.getEntry('general.plain-text'); 3282 expect(plainTextEntry.textContent).assertEqual('this is textContent'); 3283 let entries = recordEntries.getEntries(); 3284 expect(entries['general.file-uri'].uniformDataType).assertEqual('general.file-uri'); 3285 expect(entries['general.file-uri'].oriUri).assertEqual('schema://com.samples.test/files/test.txt'); 3286 expect(entries['general.file-uri'].fileType).assertEqual('general.file'); 3287 expect(entries['general.plain-text'].uniformDataType).assertEqual('general.plain-text'); 3288 expect(entries['general.plain-text'].textContent).assertEqual('this is textContent'); 3289 expect(entries['general.video']).assertEqual(undefined); 3290 expect(entries['general.file']).assertEqual(undefined); 3291 done(); 3292 }); 3293 3294 /** 3295 * @tc.name toEntriesTest004 3296 * @tc.desc test toEntries function with invalid data 3297 * @tc.type: FUNC 3298 * @tc.require: 3299 */ 3300 it('toEntriesTest004', 0, function () { 3301 const TAG = 'toEntriesTest004'; 3302 console.info(TAG, 'start'); 3303 try { 3304 UDC.convertRecordsToEntries(); 3305 console.error(TAG, 'Unreachable code!'); 3306 expect(null).assertFail(); 3307 } catch (e) { 3308 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 3309 expect(e.code === ERROR_PARAMETER).assertTrue(); 3310 } 3311 console.info(TAG, 'end'); 3312 }); 3313 3314 /** 3315 * @tc.name toEntriesTest005 3316 * @tc.desc test toEntries function with invalid data 3317 * @tc.type: FUNC 3318 * @tc.require: 3319 */ 3320 it('toEntriesTest005', 0, function () { 3321 const TAG = 'toEntriesTest005'; 3322 console.info(TAG, 'start'); 3323 try { 3324 UDC.convertRecordsToEntries(1); 3325 console.error(TAG, 'Unreachable code!'); 3326 expect(null).assertFail(); 3327 } catch (e) { 3328 console.error(TAG, `get e. code is ${e.code},message is ${e.message} `); 3329 expect(e.code === ERROR_PARAMETER).assertTrue(); 3330 } 3331 console.info(TAG, 'end'); 3332 }); 3333});