• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (c) 2021 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*/
15import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
16import data_preferences from '@ohos.data.preferences';
17import util from '@ohos.util';
18import featureAbility from '@ohos.ability.featureAbility';
19
20const NAME = 'test_preferences';
21const KEY_TEST_INT_ELEMENT = 'key_test_int';
22const KEY_TEST_LONG_ELEMENT = 'key_test_long';
23const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
24const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean';
25const KEY_TEST_STRING_ELEMENT = 'key_test_string';
26const KEY_TEST_NUMBER_ARRAY_ELEMENT = 'key_test_number_array';
27const KEY_TEST_STRING_ARRAY_ELEMENT = 'key_test_string_array';
28const KEY_TEST_BOOL_ARRAY_ELEMENT = 'key_test_bool_array';
29const KEY_TEST_UINT8ARRAY = 'key_test_uint8array';
30const KEY_TEST_BIGINT = 'key_test_bigint';
31var mPreferences;
32var context;
33
34const TAG = '[PREFERENCES_CALLBACK_JSUNIT_TEST]'
35
36describe('PreferencesCallBackJsunit', function () {
37    beforeAll(function () {
38        console.info('beforeAll')
39        context = featureAbility.getContext()
40    })
41
42    beforeEach(async function () {
43        console.info('beforeEach');
44        mPreferences = await data_preferences.getPreferences(context, NAME);
45    })
46
47    afterEach(async function () {
48        console.info('afterEach');
49        await data_preferences.deletePreferences(context, NAME);
50    })
51
52    afterAll(function () {
53        console.info('afterAll')
54    })
55
56    /**
57     * @tc.name clear callback interface test
58     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0010
59     * @tc.desc clear callback interface test
60     */
61    it('testPreferencesClear0012', 0, async function (done) {
62        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
63        await mPreferences.flush();
64        mPreferences.clear(async function (err, ret) {
65            let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
66            expect("defaultvalue").assertEqual(pre);
67            done();
68        });
69    })
70
71    /**
72     * @tc.name has string callback interface test
73     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0020
74     * @tc.desc has string callback interface test
75     */
76    it('testPreferencesHasKey0032', 0, async function (done) {
77        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
78        mPreferences.has(KEY_TEST_STRING_ELEMENT, function (err, ret) {
79            expect(true).assertEqual(ret);
80            done();
81        })
82    })
83
84    /**
85     * @tc.name has int callback interface test
86     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0130
87     * @tc.desc has int callback interface test
88     */
89    it('testPreferencesHasKey0033', 0, async function (done) {
90        await mPreferences.put(KEY_TEST_INT_ELEMENT, 1);
91        mPreferences.has(KEY_TEST_INT_ELEMENT, function (err, ret) {
92            expect(true).assertEqual(ret);
93            done();
94        })
95    })
96
97    /**
98     * @tc.name has float callback interface test
99     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140
100     * @tc.desc has float callback interface test
101     */
102    it('testPreferencesHasKey0034', 0, async function (done) {
103        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 1.1);
104        mPreferences.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) {
105            expect(true).assertEqual(ret);
106            done();
107        })
108    })
109
110    /**
111     * @tc.name has long callback interface test
112     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0150
113     * @tc.desc has long callback interface test
114     */
115    it('testPreferencesHasKey0035', 0, async function (done) {
116        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0);
117        mPreferences.has(KEY_TEST_LONG_ELEMENT, function (err, ret) {
118            expect(true).assertEqual(ret);
119            done();
120        })
121    })
122
123    /**
124     * @tc.name has boolean callback interface test
125     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0160
126     * @tc.desc has boolean callback interface test
127     */
128    it('testPreferencesHasKey0036', 0, async function (done) {
129        await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false);
130        mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) {
131            expect(true).assertEqual(ret);
132            done();
133        })
134    })
135
136    /**
137     * @tc.name get defaultValue callback interface test
138     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0030
139     * @tc.desc get defaultValue callback interface test
140     */
141    it('testPreferencesGetDefValue0062', 0, async function (done) {
142        mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) {
143            expect('defaultValue').assertEqual(ret);
144            done();
145        })
146    })
147
148    /**
149     * @tc.name get float callback interface test
150     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0040
151     * @tc.desc get float callback interface test
152     */
153    it('testPreferencesGetFloat0072', 0, async function (done) {
154        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0);
155        mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) {
156            expect(3.0).assertEqual(ret);
157            done();
158        })
159    })
160
161    /**
162     * @tc.name get int callback interface test
163     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0050
164     * @tc.desc get int callback interface test
165     */
166    it('testPreferencesGetInt0082', 0, async function (done) {
167        await mPreferences.put(KEY_TEST_INT_ELEMENT, 3);
168        mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) {
169            expect(3).assertEqual(ret);
170            done();
171        })
172    })
173
174    /**
175     * @tc.name get long callback interface test
176     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0060
177     * @tc.desc get long callback interface test
178     */
179    it('testPreferencesGetLong0092', 0, async function (done) {
180        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3);
181        let pref = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0)
182        expect(3).assertEqual(pref);
183        mPreferences.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) {
184            expect(3).assertEqual(ret);
185            done();
186        });
187    })
188
189    /**
190     * @tc.name get String callback interface test
191     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0070
192     * @tc.desc get String callback interface test
193     */
194    it('testPreferencesGetString102', 0, async function (done) {
195        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
196        mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) {
197            expect('test').assertEqual(ret);
198            done();
199        });
200    })
201
202    /**
203     * @tc.name get Uint8Array callback interface test
204     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140
205     * @tc.desc get Uint8Array callback interface test
206     */
207    it('testPreferencesGetUint8Array103', 0, async function (done) {
208        let uInt8Array = new util.TextEncoder().encodeInto("π\\n\\b@.(){},");
209        await mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array);
210        mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0), function (err, ret) {
211            expect(uInt8Array.toString() === ret.toString()).assertTrue();
212            done();
213        });
214    })
215
216    /**
217     * @tc.name put boolean callback interface test
218     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080
219     * @tc.desc put boolean callback interface test
220     */
221    it('testPreferencesPutBoolean0122', 0, async function (done) {
222        mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true, async function (err, ret) {
223            let pre = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
224            expect(true).assertEqual(pre);
225            await mPreferences.flush();
226            await data_preferences.removePreferencesFromCache(context, NAME);
227            mPreferences = null;
228            mPreferences = await data_preferences.getPreferences(context, NAME);
229            let pre2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
230            done();
231            expect(true).assertEqual(pre2);
232        });
233    })
234
235    /**
236     * @tc.name put float callback interface test
237     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0090
238     * @tc.desc put float callback interface test
239     */
240    it('testPreferencesPutFloat0132', 0, async function (done) {
241        mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0, async function (err, ret) {
242            let pre = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
243            expect(4.0).assertEqual(pre);
244            await mPreferences.flush();
245            await data_preferences.removePreferencesFromCache(context, NAME);
246            mPreferences = null;
247            mPreferences = await data_preferences.getPreferences(context, NAME);
248            let pre2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
249            done();
250            expect(4.0).assertEqual(pre2);
251        });
252    })
253
254    /**
255     * @tc.name put int callback interface test
256     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0100
257     * @tc.desc put int callback interface test
258     */
259    it('testPreferencesPutInt0142', 0, async function (done) {
260        await mPreferences.put(KEY_TEST_INT_ELEMENT, 4, async function (err, ret) {
261            let pre = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
262            expect(4).assertEqual(pre);
263            await mPreferences.flush();
264            await data_preferences.removePreferencesFromCache(context, NAME);
265            mPreferences = null;
266            mPreferences = await data_preferences.getPreferences(context, NAME);
267            let pre2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
268            done();
269            expect(4).assertEqual(pre2);
270        });
271    })
272
273    /**
274     * @tc.name put long callback interface test
275     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0110
276     * @tc.desc put long callback interface test
277     */
278    it('testPreferencesPutLong0152', 0, async function (done) {
279        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4);
280        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4, async function (err, ret) {
281            let pre = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
282            expect(4).assertEqual(pre);
283            await mPreferences.flush();
284            await data_preferences.removePreferencesFromCache(context, NAME);
285            mPreferences = null;
286            mPreferences = await data_preferences.getPreferences(context, NAME);
287            let pre2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
288            done();
289            expect(4).assertEqual(pre2);
290        });
291    })
292
293    /**
294     * @tc.name put String callback interface test
295     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120
296     * @tc.desc put String callback interface test
297     */
298    it('testPreferencesPutString0162', 0, async function (done) {
299        await mPreferences.put(KEY_TEST_STRING_ELEMENT, '', async function (err, ret) {
300            let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
301            expect('').assertEqual(pre);
302            await mPreferences.flush();
303            await data_preferences.removePreferencesFromCache(context, NAME);
304            mPreferences = null;
305            mPreferences = await data_preferences.getPreferences(context, NAME);
306            let pre2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
307            done();
308            expect('').assertEqual(pre2);
309        });
310    })
311
312    /**
313     * @tc.name clear、put、get、flush String callback interface test
314     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120
315     * @tc.desc flush String callback interface test
316     */
317     it('testPreferencesCallback0172', 0, function (done) {
318        console.log(TAG + "testPreferencesCallback0172 begin.");
319        mPreferences.clear(function (err, val) {
320            if(err){
321                expect(null).assertEqual();
322            }
323            mPreferences.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) {
324                if(err){
325                    expect(null).assertEqual();
326                }
327                mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) {
328                    if(err){
329                        expect(null).assertEqual();
330                    }
331                    expect('').assertEqual(pre);
332                    mPreferences.flush(function (err, val) {
333                        if(err){
334                            expect(null).assertEqual();
335                        }
336                        mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) {
337                            if(err){
338                                expect(null).assertEqual();
339                            }
340                            expect('').assertEqual(pre2);
341                            done();
342                            console.log(TAG + "testPreferencesCallback0172 end.");
343                        })
344                    });
345                })
346            });
347        });
348    })
349
350    /**
351     * @tc.name put Uint8Array callback interface test
352     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080
353     * @tc.desc put Uint8Array callback interface test
354     */
355    it('testPreferencesPutUint8Array0182', 0, async function (done) {
356        let uInt8Array = new util.TextEncoder().encodeInto("qweasdzxc@#$%123");
357        mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array, async function (err, ret) {
358            let pre = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0));
359            expect(uInt8Array.toString() === pre.toString()).assertTrue();
360            await mPreferences.flush();
361            await data_preferences.removePreferencesFromCache(context, NAME);
362            mPreferences = null;
363            mPreferences = await data_preferences.getPreferences(context, NAME);
364            let pre2 = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0));
365            done();
366            expect(uInt8Array.toString() === pre2.toString()).assertTrue();
367        });
368    })
369
370    /**
371     * @tc.name put Uint8Array callback interface test
372     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080
373     * @tc.desc put Uint8Array callback interface test
374     */
375    it('testPreferencesPutUint8Array0183', 0, async function (done) {
376        console.log(TAG + "testPreferencesPutUint8Array0183 start.");
377        let uInt8Array = new Uint8Array(16 * 1024 * 1024);
378        uInt8Array.fill(100);
379        mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array, async function (err, ret) {
380            let pre = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0));
381            expect(uInt8Array.length === pre.length).assertTrue();
382            expect(100 === pre[0]).assertTrue();
383            await mPreferences.flush();
384            await data_preferences.removePreferencesFromCache(context, NAME);
385            mPreferences = null;
386            mPreferences = await data_preferences.getPreferences(context, NAME);
387            let pre2 = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0));
388            expect(uInt8Array.length === pre2.length).assertTrue();
389            expect(100 === pre2[0]).assertTrue();
390            done();
391            console.log(TAG + "testPreferencesPutUint8Array0183 end.");
392        });
393    })
394
395    /**
396     * @tc.name put Uint8Array callback interface test
397     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080
398     * @tc.desc put Uint8Array callback interface test
399     */
400    it('testPreferencesPutUint8Array0183', 0, async function (done) {
401        let uInt8Array = new Uint8Array(16 * 1024 * 1024 + 1);
402        uInt8Array.fill(100);
403        try {
404            await mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array);
405        } catch (err) {
406            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
407            expect("401").assertEqual(err.code.toString());
408            done();
409        }
410    })
411
412    /**
413     * @tc.name put StringArray callback interface test
414     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0001
415     * @tc.desc put String callback interface test
416     */
417    it('testPreferencesPutStringArray0001', 0, async function (done) {
418        var stringArr = ['11', '22', '33']
419        mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr, async function (err, ret) {
420            let pre = await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321'])
421            for (let i = 0; i < stringArr.length; i++) {
422                expect(stringArr[i]).assertEqual(pre[i]);
423            }
424            done();
425        });
426    })
427
428    /**
429     * @tc.name put NumberArray callback interface test
430     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0002
431     * @tc.desc put String callback interface test
432     */
433    it('testPreferencesPutNumArray0001', 0, async function (done) {
434        var doubleArr = [11, 22, 33]
435        mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr, async function (err, ret) {
436            let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321])
437            for (let i = 0; i < doubleArr.length; i++) {
438                expect(doubleArr[i]).assertEqual(pre[i]);
439            }
440            done();
441        });
442    })
443
444    /**
445     * @tc.name put BoolArray callback interface test
446     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0003
447     * @tc.desc put String callback interface test
448     */
449    it('testPreferencesPutBoolArray0001', 0, async function (done) {
450        let boolArr = [true, false, false, true]
451        await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr, async function (err, ret) {
452            let pre = await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [true, false])
453            for (let i = 0; i < boolArr.length; i++) {
454                expect(boolArr[i]).assertEqual(pre[i]);
455            }
456            done();
457        });
458    })
459
460    /**
461     * @tc.name put BigInt callback interface test
462     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004
463     * @tc.desc put Bigint negative test
464     */
465    it('testPreferencesPutBigInt0001', 0, async function (done) {
466        let bigint = BigInt("-12345678912345678912345678971234567123456");
467        await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) {
468            let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
469            expect(bigint === pre).assertTrue();
470            await mPreferences.flush();
471            await data_preferences.removePreferencesFromCache(context, NAME);
472            mPreferences = null;
473            mPreferences = await data_preferences.getPreferences(context, NAME);
474            let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
475            done();
476            expect(bigint === pre2).assertTrue();
477        });
478    })
479
480    /**
481     * @tc.name put BigInt callback interface test
482     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0005
483     * @tc.desc put Bigint positive test
484     */
485    it('testPreferencesPutBigInt0002', 0, async function (done) {
486        let bigint = BigInt("12345678912345678912345678971234567123456");
487        await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) {
488            let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
489            expect(bigint === pre).assertTrue();
490            await mPreferences.flush();
491            await data_preferences.removePreferencesFromCache(context, NAME);
492            mPreferences = null;
493            mPreferences = await data_preferences.getPreferences(context, NAME);
494            let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
495            done();
496            expect(bigint === pre2).assertTrue();
497        });
498    })
499
500    /**
501     * @tc.name put BigInt callback interface test
502     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0006
503     * @tc.desc put Bigint boundary value test
504     */
505    it('testPreferencesPutBigInt0003', 0, async function (done) {
506        let bigint = BigInt(Number.MAX_SAFE_INTEGER);
507        await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) {
508            let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
509            expect(bigint === pre).assertTrue();
510            await mPreferences.flush();
511            await data_preferences.removePreferencesFromCache(context, NAME);
512            mPreferences = null;
513            mPreferences = await data_preferences.getPreferences(context, NAME);
514            let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
515            done();
516            expect(bigint === pre2).assertTrue();
517        });
518    })
519
520    /**
521     * @tc.name put BigInt callback interface test
522     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0007
523     * @tc.desc put Bigint boundary value test
524     */
525    it('testPreferencesPutBigInt0004', 0, async function (done) {
526        let bigint = BigInt(Number.MIN_SAFE_INTEGER);
527        await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) {
528            let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
529            expect(bigint === pre).assertTrue();
530            await mPreferences.flush();
531            await data_preferences.removePreferencesFromCache(context, NAME);
532            mPreferences = null;
533            mPreferences = await data_preferences.getPreferences(context, NAME);
534            let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0));
535            done();
536            expect(bigint === pre2).assertTrue();
537        });
538    })
539
540    /**
541     * @tc.name getAll callback interface test
542     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004
543     * @tc.desc getAll callback interface test
544     */
545    it('testPreferencesGetAll0001', 0, async function (done) {
546        let doubleArr = [11, 22, 33]
547        let stringArr = ['11', '22', '33']
548        let boolArr = [true, false, false, true]
549        await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr)
550        await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr)
551        await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr)
552        await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false)
553        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123")
554        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1)
555        await mPreferences.getAll(function (err, obj) {
556            expect(false).assertEqual(obj.key_test_boolean)
557            expect("123").assertEqual(obj.key_test_string)
558            expect(123.1).assertEqual(obj.key_test_float)
559            let sArr = obj.key_test_string_array
560            for (let i = 0; i < sArr.length; i++) {
561                expect(sArr[i]).assertEqual(stringArr[i]);
562            }
563            let bArr = obj.key_test_bool_array
564            for (let i = 0; i < bArr.length; i++) {
565                expect(bArr[i]).assertEqual(boolArr[i]);
566            }
567            let nArr = obj.key_test_number_array
568            for (let i = 0; i < nArr.length; i++) {
569                expect(nArr[i]).assertEqual(doubleArr[i]);
570            }
571            done()
572        })
573    })
574
575    /**
576     * @tc.name get empty array callback interface test
577     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0131
578     * @tc.desc get empty array callback interface test
579     */
580    it('testPreferencesGetEmptyArray0001', 0, function (done) {
581        let defaultValue = new Array();
582        mPreferences.get("mytest", defaultValue, (err, value) => {
583            if (err) {
584                expect(null).assertFail();
585                done();
586            }
587            expect(value).assertEqual(defaultValue);
588            done();
589        });
590    })
591
592    /**
593     * @tc.name get empty array callback interface test
594     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0141
595     * @tc.desc flush empty array callback interface test
596     */
597    it('testPreferencesFlushEmptyArray0001', 0, async function (done) {
598        let value = new Array();
599        await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, value, async function(err, ret) {
600            if (err) {
601                expect(null).assertFail();
602                done();
603            }
604            let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue")
605            expect(pre instanceof Array).assertEqual(true);
606            expect(pre.length).assertEqual(0);
607            await mPreferences.flush();
608            await data_preferences.removePreferencesFromCache(context, NAME);
609            mPreferences = null;
610            mPreferences = await data_preferences.getPreferences(context, NAME);
611            let pre2 = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue")
612            expect(pre2 instanceof Array).assertEqual(true);
613            expect(pre2.length).assertEqual(0);
614            done();
615        });
616    })
617
618    /**
619     * @tc.name get empty array callback interface test
620     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0151
621     * @tc.desc flush empty array callback interface test
622     */
623    it('testPreferencesFlushEmptyArray0002', 0, async function (done) {
624        await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, [], async function(err, ret) {
625            if (err) {
626                expect(null).assertFail();
627                done();
628            }
629            let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue")
630            expect(pre instanceof Array).assertEqual(true);
631            expect(pre.length).assertEqual(0);
632            await mPreferences.flush();
633            await data_preferences.removePreferencesFromCache(context, NAME);
634            mPreferences = null;
635            mPreferences = await data_preferences.getPreferences(context, NAME);
636            let pre2 = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue")
637            expect(pre2 instanceof Array).assertEqual(true);
638            expect(pre2.length).assertEqual(0);
639            done();
640        });
641    })
642})