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'; 19 20const TEST_BUNDLE_NAME = 'MyBundleName'; 21const KEY_TEST_ELEMENT = 'TestKey'; 22const VALUE_TEST_ELEMENT = 'TestValue'; 23const TEST_ID = 123456; 24const TEST_ABILITY_NAME = 'MyAbilityName'; 25const TEST_MODULE = 'MyModule'; 26 27let U8_ARRAY = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 28 29describe('UdmfJSTest', function () { 30 31 /** 32 * @tc.name UdmfTextTest 33 * @tc.desc Test Js Api Text testcase 34 * @tc.type: FUNC 35 * @tc.require: issueNumber 36 */ 37 it('UdmfTextTest', 0, function () { 38 console.info('UdmfTextTest start'); 39 let text = new UDC.Text(); 40 text.details = { 41 Key: 'text' + KEY_TEST_ELEMENT, 42 Value: 'text' + VALUE_TEST_ELEMENT, 43 }; 44 let unifiedData = new UDC.UnifiedData(text); 45 let records = unifiedData.getRecords(); 46 expect(records.length).assertEqual(1); 47 expect(records[0].details.Key).assertEqual('text' + KEY_TEST_ELEMENT); 48 expect(records[0].details.Value).assertEqual('text' + VALUE_TEST_ELEMENT); 49 console.info('UdmfTextTest end'); 50 }); 51 52 /** 53 * @tc.name UdmfPlainTextTest 54 * @tc.desc Test Js Api PlainText testcase 55 * @tc.type: FUNC 56 * @tc.require: issueNumber 57 */ 58 it('UdmfPlainTextTest', 0, function () { 59 console.info('UdmfPlainTextTest start'); 60 let plainText = new UDC.PlainText(); 61 plainText.details = { 62 Key: 'text' + KEY_TEST_ELEMENT, 63 Value: 'text' + VALUE_TEST_ELEMENT, 64 }; 65 plainText.textContent = 'textContent'; 66 plainText.abstract = 'abstract'; 67 let unifiedData = new UDC.UnifiedData(plainText); 68 let records = unifiedData.getRecords(); 69 expect(records.length).assertEqual(1); 70 expect(records[0].details.Key).assertEqual('text' + KEY_TEST_ELEMENT); 71 expect(records[0].details.Value).assertEqual('text' + VALUE_TEST_ELEMENT); 72 expect(records[0].textContent).assertEqual('textContent'); 73 expect(records[0].abstract).assertEqual('abstract'); 74 console.info('UdmfPlainTextTest end'); 75 }); 76 77 /** 78 * @tc.name UdmfHyperlinkTest 79 * @tc.desc Test Js Api Hyperlink testcase 80 * @tc.type: FUNC 81 * @tc.require: issueNumber 82 */ 83 it('UdmfHyperlinkTest', 0, function () { 84 console.info('UdmfHyperlinkTest start'); 85 let link = new UDC.Hyperlink(); 86 link.details = { 87 Key: 'link' + KEY_TEST_ELEMENT, 88 Value: 'link' + VALUE_TEST_ELEMENT, 89 }; 90 link.url = 'url'; 91 link.description = 'description'; 92 let unifiedData = new UDC.UnifiedData(link); 93 let records = unifiedData.getRecords(); 94 expect(records.length).assertEqual(1); 95 expect(records[0].details.Key).assertEqual('link' + KEY_TEST_ELEMENT); 96 expect(records[0].details.Value).assertEqual('link' + VALUE_TEST_ELEMENT); 97 expect(records[0].url).assertEqual('url'); 98 expect(records[0].description).assertEqual('description'); 99 console.info('UdmfHyperlinkTest end'); 100 }); 101 102 /** 103 * @tc.name UdmfHtmlTest 104 * @tc.desc Test Js Api HTML testcase 105 * @tc.type: FUNC 106 * @tc.require: issueNumber 107 */ 108 it('UdmfHtmlTest', 0, function () { 109 console.info('UdmfHtmlTest start'); 110 let html = new UDC.HTML(); 111 html.details = { 112 Key: 'html' + KEY_TEST_ELEMENT, 113 Value: 'html' + VALUE_TEST_ELEMENT, 114 }; 115 html.htmlContent = 'htmlContent'; 116 html.plainContent = 'plainContent'; 117 let unifiedData = new UDC.UnifiedData(html); 118 let records = unifiedData.getRecords(); 119 expect(records.length).assertEqual(1); 120 expect(records[0].details.Key).assertEqual('html' + KEY_TEST_ELEMENT); 121 expect(records[0].details.Value).assertEqual('html' + VALUE_TEST_ELEMENT); 122 expect(records[0].htmlContent).assertEqual('htmlContent'); 123 expect(records[0].plainContent).assertEqual('plainContent'); 124 console.info('UdmfHtmlTest end'); 125 }); 126 127 /** 128 * @tc.name UdmfFileTest 129 * @tc.desc Test Js Api File testcase 130 * @tc.type: FUNC 131 * @tc.require: issueNumber 132 */ 133 it('UdmfFileTest', 0, function () { 134 console.info('UdmfFileTest start'); 135 let file = new UDC.File(); 136 file.details = { 137 Key: 'file' + KEY_TEST_ELEMENT, 138 Value: 'file' + VALUE_TEST_ELEMENT, 139 }; 140 file.uri = 'uri'; 141 let unifiedData = new UDC.UnifiedData(file); 142 let records = unifiedData.getRecords(); 143 expect(records.length).assertEqual(1); 144 expect(records[0].details.Key).assertEqual('file' + KEY_TEST_ELEMENT); 145 expect(records[0].details.Value).assertEqual('file' + VALUE_TEST_ELEMENT); 146 expect(records[0].uri).assertEqual('uri'); 147 console.info('UdmfFileTest end'); 148 }); 149 150 /** 151 * @tc.name UdmfFolderTest 152 * @tc.desc Test Js Api Folder testcase 153 * @tc.type: FUNC 154 * @tc.require: issueNumber 155 */ 156 it('UdmfFolderTest', 0, function () { 157 console.info('UdmfFolderTest start'); 158 let folder = new UDC.Folder(); 159 folder.details = { 160 Key: 'folder' + KEY_TEST_ELEMENT, 161 Value: 'folder' + VALUE_TEST_ELEMENT, 162 }; 163 folder.uri = 'folderUri'; 164 let unifiedData = new UDC.UnifiedData(folder); 165 let records = unifiedData.getRecords(); 166 expect(records.length).assertEqual(1); 167 expect(records[0].details.Key).assertEqual('folder' + KEY_TEST_ELEMENT); 168 expect(records[0].details.Value).assertEqual('folder' + VALUE_TEST_ELEMENT); 169 expect(records[0].uri).assertEqual('folderUri'); 170 console.info('UdmfFolderTest end'); 171 }); 172 173 /** 174 * @tc.name UdmfImageTest 175 * @tc.desc Test Js Api Image testcase 176 * @tc.type: FUNC 177 * @tc.require: issueNumber 178 */ 179 it('UdmfImageTest', 0, function () { 180 console.info('UdmfImageTest start'); 181 let image = new UDC.Image(); 182 image.details = { 183 Key: 'image' + KEY_TEST_ELEMENT, 184 Value: 'image' + VALUE_TEST_ELEMENT, 185 }; 186 image.imageUri = 'imageUri'; 187 let unifiedData = new UDC.UnifiedData(image); 188 let records = unifiedData.getRecords(); 189 expect(records.length).assertEqual(1); 190 expect(records[0].details.Key).assertEqual('image' + KEY_TEST_ELEMENT); 191 expect(records[0].details.Value).assertEqual('image' + VALUE_TEST_ELEMENT); 192 expect(records[0].imageUri).assertEqual('imageUri'); 193 console.info('UdmfImageTest end'); 194 }); 195 196 /** 197 * @tc.name UdmfVideoTest 198 * @tc.desc Test Js Api Video testcase 199 * @tc.type: FUNC 200 * @tc.require: issueNumber 201 */ 202 it('UdmfVideoTest', 0, function () { 203 console.info('UdmfVideoTest start'); 204 let video = new UDC.Video(); 205 video.details = { 206 Key: 'video' + KEY_TEST_ELEMENT, 207 Value: 'video' + VALUE_TEST_ELEMENT, 208 }; 209 video.videoUri = 'videoUri'; 210 let unifiedData = new UDC.UnifiedData(video); 211 let records = unifiedData.getRecords(); 212 expect(records.length).assertEqual(1); 213 expect(records[0].details.Key).assertEqual('video' + KEY_TEST_ELEMENT); 214 expect(records[0].details.Value).assertEqual('video' + VALUE_TEST_ELEMENT); 215 expect(records[0].videoUri).assertEqual('videoUri'); 216 console.info('UdmfVideoTest end'); 217 }); 218 219 /** 220 * @tc.name UdmfSystemDefinedRecordTest 221 * @tc.desc Test Js Api SystemDefinedRecord testcase 222 * @tc.type: FUNC 223 * @tc.require: issueNumber 224 */ 225 it('UdmfSystemDefinedRecordTest', 0, function () { 226 console.info('UdmfSystemDefinedRecordTest start'); 227 let systemDefinedRecord = new UDC.SystemDefinedRecord(); 228 systemDefinedRecord.details = { 229 recordKey1: 'systemDefinedRecord' + KEY_TEST_ELEMENT, 230 recordKey2: 1, 231 recordKey3: U8_ARRAY, 232 }; 233 let unifiedData = new UDC.UnifiedData(systemDefinedRecord); 234 let records = unifiedData.getRecords(); 235 expect(records.length).assertEqual(1); 236 expect(records[0].details.recordKey1).assertEqual('systemDefinedRecord' + KEY_TEST_ELEMENT); 237 expect(records[0].details.recordKey2).assertEqual(1); 238 for (let i = 0; i < U8_ARRAY.length; i++) { 239 expect(records[0].details.recordKey3[i]).assertEqual(U8_ARRAY[i]); 240 } 241 console.info('UdmfSystemDefinedRecordTest end'); 242 }); 243 244 /** 245 * @tc.name UdmfSystemDefinedPixelMapTest 246 * @tc.desc Test Js Api SystemDefinedPixelMap testcase 247 * @tc.type: FUNC 248 * @tc.require: issueNumber 249 */ 250 it('UdmfSystemDefinedPixelMapTest', 0, function () { 251 console.info('UdmfSystemDefinedPixelMapTest start'); 252 let systemDefinedPixelMap = new UDC.SystemDefinedPixelMap(); 253 systemDefinedPixelMap.details = { 254 recordKey1: 'systemDefinedPixelMap' + KEY_TEST_ELEMENT, 255 recordKey2: 1, 256 recordKey3: U8_ARRAY, 257 }; 258 systemDefinedPixelMap.rawData = U8_ARRAY; 259 let unifiedData = new UDC.UnifiedData(systemDefinedPixelMap); 260 let records = unifiedData.getRecords(); 261 expect(records.length).assertEqual(1); 262 expect(records[0].details.recordKey1).assertEqual('systemDefinedPixelMap' + KEY_TEST_ELEMENT); 263 expect(records[0].details.recordKey2).assertEqual(1); 264 for (let i = 0; i < U8_ARRAY.length; i++) { 265 expect(records[0].details.recordKey3[i]).assertEqual(U8_ARRAY[i]); 266 } 267 for (let i = 0; i < U8_ARRAY.length; i++) { 268 expect(records[0].rawData[i]).assertEqual(U8_ARRAY[i]); 269 } 270 console.info('UdmfSystemDefinedPixelMapTest end'); 271 }); 272 273 /** 274 * @tc.name UdmfSystemDefinedFormTest 275 * @tc.desc Test Js Api SystemDefinedForm testcase 276 * @tc.type: FUNC 277 * @tc.require: issueNumber 278 */ 279 it('UdmfSystemDefinedFormTest', 0, function () { 280 console.info('UdmfSystemDefinedFormTest start'); 281 let form = new UDC.SystemDefinedForm(); 282 form.formId = TEST_ID; 283 form.formName = 'MyFormName'; 284 form.bundleName = TEST_BUNDLE_NAME; 285 form.abilityName = TEST_ABILITY_NAME; 286 form.module = TEST_MODULE; 287 form.details = { 288 formKey1: 1, 289 formKey2: 'form' + VALUE_TEST_ELEMENT, 290 formKey3: U8_ARRAY, 291 }; 292 let unifiedData = new UDC.UnifiedData(form); 293 let records = unifiedData.getRecords(); 294 expect(records.length).assertEqual(1); 295 expect(records[0].details.formKey1).assertEqual(1); 296 expect(records[0].details.formKey2).assertEqual('form' + VALUE_TEST_ELEMENT); 297 for (let i = 0; i < U8_ARRAY.length; i++) { 298 expect(records[0].details.formKey3[i]).assertEqual(U8_ARRAY[i]); 299 } 300 expect(records[0].formId).assertEqual(TEST_ID); 301 expect(records[0].formName).assertEqual('MyFormName'); 302 expect(records[0].bundleName).assertEqual(TEST_BUNDLE_NAME); 303 expect(records[0].abilityName).assertEqual(TEST_ABILITY_NAME); 304 expect(records[0].module).assertEqual(TEST_MODULE); 305 console.info('UdmfSystemDefinedFormTest end'); 306 }); 307 308 /** 309 * @tc.name UdmfSystemDefinedAppItemTest 310 * @tc.desc Test Js Api SystemDefinedAppItem testcase 311 * @tc.type: FUNC 312 * @tc.require: issueNumber 313 */ 314 it('UdmfSystemDefinedAppItemTest', 0, function () { 315 console.info('UdmfSystemDefinedAppItemTest start'); 316 let appItem = new UDC.SystemDefinedAppItem(); 317 appItem.appId = 'MyAppId'; 318 appItem.appName = 'MyAppName'; 319 appItem.abilityName = TEST_ABILITY_NAME; 320 appItem.bundleName = TEST_BUNDLE_NAME; 321 appItem.appIconId = 'MyAppIconId'; 322 appItem.appLabelId = 'MyAppLabelId'; 323 appItem.details = { 324 appItemKey1: 1, 325 appItemKey2: 'appItem' + VALUE_TEST_ELEMENT, 326 appItemKey3: U8_ARRAY, 327 }; 328 let unifiedData = new UDC.UnifiedData(appItem); 329 let records = unifiedData.getRecords(); 330 expect(records.length).assertEqual(1); 331 expect(records[0].details.appItemKey1).assertEqual(1); 332 expect(records[0].details.appItemKey2).assertEqual('appItem' + VALUE_TEST_ELEMENT); 333 for (let i = 0; i < U8_ARRAY.length; i++) { 334 expect(records[0].details.appItemKey3[i]).assertEqual(U8_ARRAY[i]); 335 } 336 expect(records[0].appId).assertEqual('MyAppId'); 337 expect(records[0].appName).assertEqual('MyAppName'); 338 expect(records[0].abilityName).assertEqual(TEST_ABILITY_NAME); 339 expect(records[0].bundleName).assertEqual(TEST_BUNDLE_NAME); 340 expect(records[0].appIconId).assertEqual('MyAppIconId'); 341 expect(records[0].appLabelId).assertEqual('MyAppLabelId'); 342 console.info('UdmfSystemDefinedAppItemTest end'); 343 }); 344 345 /** 346 * @tc.name UdmfSystemDefinedFormTest 347 * @tc.desc Test Js Api ApplicationDefinedRecord testcase 348 * @tc.type: FUNC 349 * @tc.require: issueNumber 350 */ 351 it('UdmfApplicationDefinedRecord', 0, function () { 352 console.info('UdmfApplicationDefinedRecord start'); 353 let applicationDefinedRecord = new UDC.ApplicationDefinedRecord(); 354 applicationDefinedRecord.applicationDefinedType = 'applicationDefinedType'; 355 applicationDefinedRecord.rawData = U8_ARRAY; 356 let unifiedData = new UDC.UnifiedData(applicationDefinedRecord); 357 let records = unifiedData.getRecords(); 358 expect(records.length).assertEqual(1); 359 expect(records[0].applicationDefinedType).assertEqual('applicationDefinedType'); 360 for (let i = 0; i < U8_ARRAY.length; i++) { 361 expect(records[0].rawData[i]).assertEqual(U8_ARRAY[i]); 362 } 363 console.info('UdmfApplicationDefinedRecord end'); 364 }); 365 366 /** 367 * @tc.name UdmfAllRecordsTest 368 * @tc.desc Test Js AllRecords testcase 369 * @tc.type: FUNC 370 * @tc.require: issueNumber 371 */ 372 it('UdmfAllRecordsTest', 0, function () { 373 console.info('UdmfAllRecordsTest start'); 374 let text = new UDC.Text(); 375 let unifiedDatas = new UDC.UnifiedData(text); 376 let plainText = new UDC.PlainText(); 377 unifiedDatas.addRecord(plainText); 378 let link = new UDC.Hyperlink(); 379 unifiedDatas.addRecord(link); 380 let html = new UDC.HTML(); 381 unifiedDatas.addRecord(html); 382 let file = new UDC.File(); 383 unifiedDatas.addRecord(file); 384 let folder = new UDC.Folder(); 385 unifiedDatas.addRecord(folder); 386 let image = new UDC.Image(); 387 unifiedDatas.addRecord(image); 388 let video = new UDC.Video(); 389 unifiedDatas.addRecord(video); 390 let systemDefinedRecord = new UDC.SystemDefinedRecord(); 391 unifiedDatas.addRecord(systemDefinedRecord); 392 let systemDefinedPixelMap = new UDC.SystemDefinedPixelMap(); 393 unifiedDatas.addRecord(systemDefinedPixelMap); 394 let form = new UDC.SystemDefinedForm(); 395 unifiedDatas.addRecord(form); 396 let appItem = new UDC.SystemDefinedAppItem(); 397 unifiedDatas.addRecord(appItem); 398 let applicationDefinedRecord = new UDC.ApplicationDefinedRecord(); 399 unifiedDatas.addRecord(applicationDefinedRecord); 400 let records = unifiedDatas.getRecords(); 401 expect(records.length).assertEqual(13); 402 expect(records[0].getType()).assertEqual(UTD.UniformDataType.TEXT); 403 expect(records[1].getType()).assertEqual(UTD.UniformDataType.PLAIN_TEXT); 404 expect(records[2].getType()).assertEqual(UTD.UniformDataType.HYPERLINK); 405 expect(records[3].getType()).assertEqual(UTD.UniformDataType.HTML); 406 expect(records[4].getType()).assertEqual(UTD.UniformDataType.FILE); 407 expect(records[5].getType()).assertEqual(UTD.UniformDataType.FOLDER); 408 expect(records[6].getType()).assertEqual(UTD.UniformDataType.IMAGE); 409 expect(records[7].getType()).assertEqual(UTD.UniformDataType.VIDEO); 410 expect(records[9].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_PIXEL_MAP); 411 expect(records[10].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_FORM); 412 expect(records[11].getType()).assertEqual(UTD.UniformDataType.OPENHARMONY_APP_ITEM); 413 console.info('UdmfAllRecordsTest end'); 414 }); 415});