• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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});