• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (c) 2022-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*/
15import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium'
16import dataPreferences from '@ohos.data.preferences'
17import featureAbility from '@ohos.ability.featureAbility';
18
19const NAME = 'test_preferences';
20const KEY_TEST_INT_ELEMENT = 'key_test_int';
21const KEY_TEST_LONG_ELEMENT = 'key_test_long';
22const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
23const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean';
24const KEY_TEST_STRING_ELEMENT = 'key_test_string';
25const KEY_TEST_NUMBER_ARRAY_ELEMENT = 'key_test_number_array';
26const KEY_TEST_STRING_ARRAY_ELEMENT = 'key_test_string_array';
27const KEY_TEST_BOOL_ARRAY_ELEMENT = 'key_test_bool_array';
28var mPreferences;
29var context;
30
31const TAG = '[PREFERENCES_CALLBACK_JSUNIT_TEST]'
32export default function preferencesCallBackTest(){
33    describe('preferencesCallBackTest', function () {
34        beforeAll(async function () {
35            console.info('beforeAll')
36            context = featureAbility.getContext()
37        })
38
39        afterAll(async function () {
40            console.info('afterAll')
41        })
42
43        beforeEach(async function () {
44            console.info('beforeEach')
45            mPreferences = await dataPreferences.getPreferences(context, NAME);
46        })
47
48        afterEach(async function () {
49            console.info('afterEach')
50            await dataPreferences.deletePreferences(context, NAME);
51        })
52
53        /**
54         * @tc.name clear callback interface test
55         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2200
56         * @tc.desc clear callback interface test
57         * @tc.size MediumTest
58         * @tc.type Function
59         * @tc.level Level 2
60         *
61         */
62        it('testPreferencesClear0012', 0, async function (done) {
63            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
64            await mPreferences.flush();
65            await mPreferences.clear(async function (err, ret) {
66                let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
67                expect("defaultvalue").assertEqual(pre);
68                done();
69            });
70        })
71
72        /**
73         * @tc.name has string callback interface test
74         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1200
75         * @tc.desc has string callback interface test
76         * @tc.size MediumTest
77         * @tc.type Function
78         * @tc.level Level 2
79         */
80        it('testPreferencesHasKey0032', 0, async function (done) {
81            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
82            await mPreferences.has(KEY_TEST_STRING_ELEMENT, function (err, ret) {
83                expect(true).assertEqual(ret);
84                done();
85            })
86        })
87
88        /**
89         * @tc.name has int callback interface test
90         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1600
91         * @tc.desc has int callback interface test
92         * @tc.size MediumTest
93         * @tc.type Function
94         * @tc.level Level 2
95         */
96        it('testPreferencesHasKey0033', 0, async function (done) {
97            await mPreferences.put(KEY_TEST_INT_ELEMENT, 1);
98            await mPreferences.has(KEY_TEST_INT_ELEMENT, function (err, ret) {
99                expect(true).assertEqual(ret);
100                done();
101            })
102        })
103
104        /**
105         * @tc.name has float callback interface test
106         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1500
107         * @tc.desc has float callback interface test
108         * @tc.size MediumTest
109         * @tc.type Function
110         * @tc.level Level 2
111         */
112        it('testPreferencesHasKey0034', 0, async function (done) {
113            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 1.1);
114            await mPreferences.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) {
115                expect(true).assertEqual(ret);
116                done();
117            })
118        })
119
120        /**
121         * @tc.name has long callback interface test
122         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1700
123         * @tc.desc has long callback interface test
124         * @tc.size MediumTest
125         * @tc.type Function
126         * @tc.level Level 2
127         */
128        it('testPreferencesHasKey0035', 0, async function (done) {
129            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0);
130            await mPreferences.has(KEY_TEST_LONG_ELEMENT, function (err, ret) {
131                expect(true).assertEqual(ret);
132                done();
133            })
134        })
135
136        /**
137         * @tc.name has boolean callback interface test
138         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1400
139         * @tc.desc has boolean callback interface test
140         * @tc.size MediumTest
141         * @tc.type Function
142         * @tc.level Level 2
143         */
144        it('testPreferencesHasKey0036', 0, async function (done) {
145            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false);
146            await mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) {
147                expect(true).assertEqual(ret);
148                done();
149            })
150        })
151
152        /**
153         * @tc.name get defaultValue callback interface test
154         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2100
155         * @tc.desc get defaultValue callback interface test
156         * @tc.size MediumTest
157         * @tc.type Function
158         * @tc.level Level 2
159         */
160        it('testPreferencesGetDefValue0062', 0, async function (done) {
161            await mPreferences.clear();
162            await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) {
163                expect('defaultValue').assertEqual(ret);
164                done();
165            })
166        })
167
168        /**
169         * @tc.name get float callback interface test
170         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1800
171         * @tc.desc get float callback interface test
172         * @tc.size MediumTest
173         * @tc.type Function
174         * @tc.level Level 2
175         */
176        it('testPreferencesGetFloat0072', 0, async function (done) {
177            await mPreferences.clear();
178            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0);
179            await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) {
180                expect(3.0).assertEqual(ret);
181                done();
182            })
183        })
184
185        /**
186         * @tc.name get int callback interface test
187         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1900
188         * @tc.desc get int callback interface test
189         * @tc.size MediumTest
190         * @tc.type Function
191         * @tc.level Level 2
192         */
193        it('testPreferencesGetInt0082', 0, async function (done) {
194            await mPreferences.clear();
195            await mPreferences.put(KEY_TEST_INT_ELEMENT, 3);
196            await mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) {
197                expect(3).assertEqual(ret);
198                done();
199            })
200        })
201
202        /**
203         * @tc.name get long callback interface test
204         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1100
205         * @tc.desc get long callback interface test
206         * @tc.size MediumTest
207         * @tc.type Function
208         * @tc.level Level 2
209         */
210        it('testPreferencesGetLong0092', 0, async function (done) {
211            await mPreferences.clear();
212            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3);
213            let pref = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0)
214            expect(3).assertEqual(pref);
215            await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) {
216                expect(3).assertEqual(ret);
217                done();
218            });
219        })
220
221        /**
222         * @tc.name get String callback interface test
223         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2000
224         * @tc.desc get String callback interface test
225         * @tc.size MediumTest
226         * @tc.type Function
227         * @tc.level Level 2
228         */
229        it('testPreferencesGetString102', 0, async function (done) {
230            await mPreferences.clear();
231            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
232            await mPreferences.flush();
233            await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) {
234                expect('test').assertEqual(ret);
235                done();
236            });
237        })
238
239        /**
240         * @tc.name put boolean callback interface test
241         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0300
242         * @tc.desc put boolean callback interface test
243         * @tc.size MediumTest
244         * @tc.type Function
245         * @tc.level Level 2
246         */
247        it('testPreferencesPutBoolean0122', 0, async function (done) {
248            await mPreferences.clear();
249            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true, async function (err, ret) {
250                let pre = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
251                expect(true).assertEqual(pre);
252                await mPreferences.flush();
253                let pre2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false)
254                expect(true).assertEqual(pre2);
255                done();
256            });
257        })
258
259        /**
260         * @tc.name put float callback interface test
261         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0400
262         * @tc.desc put float callback interface test
263         * @tc.size MediumTest
264         * @tc.type Function
265         * @tc.level Level 2
266         */
267        it('testPreferencesPutFloat0132', 0, async function (done) {
268            await mPreferences.clear();
269            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0, async function (err, ret) {
270                let pre = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
271                expect(4.0).assertEqual(pre);
272                await mPreferences.flush();
273                let pre2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
274                expect(4.0).assertEqual(pre2);
275                done();
276            });
277        })
278
279        /**
280         * @tc.name put int callback interface test
281         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0500
282         * @tc.desc put int callback interface test
283         * @tc.size MediumTest
284         * @tc.type Function
285         * @tc.level Level 2
286         */
287        it('testPreferencesPutInt0142', 0, async function (done) {
288            await mPreferences.clear();
289            await mPreferences.put(KEY_TEST_INT_ELEMENT, 4, async function (err, ret) {
290                let pre = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
291                expect(4).assertEqual(pre);
292                await mPreferences.flush();
293                let pre2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
294                expect(4).assertEqual(pre2);
295                done();
296            });
297        })
298
299        /**
300         * @tc.name put long callback interface test
301         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1000
302         * @tc.desc put long callback interface test
303         * @tc.size MediumTest
304         * @tc.type Function
305         * @tc.level Level 2
306         */
307        it('testPreferencesPutLong0152', 0, async function (done) {
308            await mPreferences.clear();
309            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4);
310            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4, async function (err, ret) {
311                let pre = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
312                expect(4).assertEqual(pre);
313                await mPreferences.flush();
314                let pre2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
315                expect(4).assertEqual(pre2);
316                done();
317            });
318        })
319
320        /**
321         * @tc.name put String callback interface test
322         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0900
323         * @tc.desc put String callback interface test
324         * @tc.size MediumTest
325         * @tc.type Function
326         * @tc.level Level 2
327         */
328        it('testPreferencesPutString0162', 0, async function (done) {
329            await mPreferences.clear();
330            await mPreferences.put(KEY_TEST_STRING_ELEMENT, '', async function (err, ret) {
331                let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
332                expect('').assertEqual(pre);
333                await mPreferences.flush();
334                let pre2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
335                expect('').assertEqual(pre2);
336                done();
337            });
338        })
339
340        /**
341         * @tc.name clear put get flush String callback interface test
342         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2500
343         * @tc.desc flush String callback interface test
344         * @tc.size MediumTest
345         * @tc.type Function
346         * @tc.level Level 2
347         */
348        it('testPreferencesCallback0172', 0, function (done) {
349            console.log(TAG + "testPreferencesCallback0172 begin.");
350            mPreferences.clear(function (err, val) {
351                if(err){
352                    expect(null).assertEqual();
353                }
354                mPreferences.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) {
355                    if(err){
356                        expect(null).assertEqual();
357                    }
358                    mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) {
359                        if(err){
360                            expect(null).assertEqual();
361                        }
362                        expect('').assertEqual(pre);
363                        mPreferences.flush(function (err, val) {
364                            if(err){
365                                expect(null).assertEqual();
366                            }
367                            mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) {
368                                if(err){
369                                    expect(null).assertEqual();
370                                }
371                                expect('').assertEqual(pre2);
372                                done();
373                                console.log(TAG + "testPreferencesCallback0172 end.");
374                            })
375                        });
376                    })
377                });
378            });
379        })
380
381        /**
382         * @tc.name put StringArray callback interface test
383         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0800
384         * @tc.desc put String callback interface test
385         * @tc.size MediumTest
386         * @tc.type Function
387         * @tc.level Level 2
388         */
389        it('testPreferencesPutStringArray0001', 0, async function (done) {
390            await mPreferences.clear();
391            var stringArr = ['11', '22', '33']
392            await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr, async function (err, ret) {
393                let pre = await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321'])
394                for (let i = 0; i < stringArr.length; i++) {
395                    expect(stringArr[i]).assertEqual(pre[i]);
396                }
397
398                done();
399            });
400        })
401
402        /**
403         * @tc.name put NumberArray callback interface test
404         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0700
405         * @tc.desc put String callback interface test
406         * @tc.size MediumTest
407         * @tc.type Function
408         * @tc.level Level 2
409         */
410        it('testPreferencesPutNumArray0001', 0, async function (done) {
411            await mPreferences.clear();
412            var doubleArr = [11, 22, 33]
413            await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr, async function (err, ret) {
414                let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321])
415                for (let i = 0; i < doubleArr.length; i++) {
416                    expect(doubleArr[i]).assertEqual(pre[i]);
417                }
418
419                done();
420            });
421        })
422
423        /**
424         * @tc.name put BoolArray callback interface test
425         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0600
426         * @tc.desc put String callback interface test
427         * @tc.size MediumTest
428         * @tc.type Function
429         * @tc.level Level 2
430         */
431        it('testPreferencesPutBoolArray0001', 0, async function (done) {
432            await mPreferences.clear();
433            let boolArr = [true, false, false, true]
434            await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr, async function (err, ret) {
435                let pre = await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [true, false])
436                for (let i = 0; i < boolArr.length; i++) {
437                    expect(boolArr[i]).assertEqual(pre[i]);
438                }
439
440                done();
441            });
442        })
443
444        /**
445         * @tc.name getAll callback interface test
446         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2400
447         * @tc.desc getAll callback interface test
448         * @tc.size MediumTest
449         * @tc.type Function
450         * @tc.level Level 2
451         */
452        it('testPreferencesGetAll0001', 0, async function (done) {
453            await mPreferences.clear();
454            let doubleArr = [11, 22, 33]
455            let stringArr = ['11', '22', '33']
456            let boolArr = [true, false, false, true]
457            await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr)
458            await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr)
459            await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr)
460            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false)
461            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123")
462            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1)
463
464            await mPreferences.flush()
465
466            await mPreferences.getAll(function (err, obj) {
467                expect(false).assertEqual(obj.key_test_boolean)
468                expect("123").assertEqual(obj.key_test_string)
469                expect(123.1).assertEqual(obj.key_test_float)
470                let sArr = obj.key_test_string_array
471                for (let i = 0; i < sArr.length; i++) {
472                    expect(sArr[i]).assertEqual(stringArr[i]);
473                }
474
475                let bArr = obj.key_test_bool_array
476                for (let i = 0; i < bArr.length; i++) {
477                    expect(bArr[i]).assertEqual(boolArr[i]);
478                }
479
480                let nArr = obj.key_test_number_array
481                for (let i = 0; i < nArr.length; i++) {
482                    expect(nArr[i]).assertEqual(doubleArr[i]);
483                }
484
485                done()
486            })
487        })
488
489        /**
490         * @tc.name getPreferences callback interface test
491         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_2300
492         * @tc.desc getPreferences callback interface test
493         * @tc.size MediumTest
494         * @tc.type Function
495         * @tc.level Level 2
496         */
497        it('testPreferencesGetPreferences0001', 0, async function (done) {
498            const NAME = 'getPreferencesTest'
499            await dataPreferences.getPreferences(context, NAME, (err, preferences) => {
500                if(err != null){
501                    console.info(TAG + "Get preferences err: " + err)
502                    expect(false).assertTrue();
503                }else{
504                    console.info(TAG + "Get preferences success")
505                    expect(preferences != null).assertTrue();
506                }
507            })
508            done()
509        })
510
511        /**
512         * @tc.name deletePreferences callback interface test
513         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0200
514         * @tc.desc deletePreferences callback interface test
515         * @tc.size MediumTest
516         * @tc.type Function
517         * @tc.level Level 2
518         */
519        it('testPreferencesDeletePreferences0001', 0, async function (done) {
520            const NAME = 'getPreferencesTest'
521            await dataPreferences.getPreferences(context, NAME, (err, preferences) => {
522                if(err != null){
523                    console.info(TAG + "Get preferences err: " + err)
524                    expect(false).assertTrue();
525                }else{
526                    console.info(TAG + "Get preferences success")
527                    expect(preferences != null).assertTrue();
528                }
529            })
530            await dataPreferences.deletePreferences(context, NAME, (err, data) => {
531                if(err != null){
532                    console.info(TAG + "Delete preferences err: " + err)
533                    expect(false).assertTrue();
534                }else{
535                    console.info(TAG + "Delete preferences success")
536                    expect(data == null).assertTrue();
537                }
538            })
539            done()
540        })
541
542        /**
543         * @tc.name removePreferencesFromCache interface test
544         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_0100
545         * @tc.desc removePreferencesFromCache interface test
546         * @tc.size MediumTest
547         * @tc.type Function
548         * @tc.level Level 2
549         */
550        it('testRemovePreferencesFromCache0001', 0, async function (done) {
551            await dataPreferences.getPreferences(context, NAME, (err, preferences) => {
552                if(err != null){
553                    console.info(TAG + "Get preferences err: " + err)
554                    expect(false).assertTrue();
555                }else{
556                    console.info(TAG + "Get preferences success")
557                    expect(preferences != null).assertTrue();
558                }
559            })
560            await dataPreferences.removePreferencesFromCache(context, NAME, (err ,data) => {
561                if(err != null){
562                    console.info(TAG + "Remove preferences from cache error: " + err)
563                    expect(false).assertTrue();
564                }else{
565                    console.info(TAG + "Remove preferences from cache success")
566                    expect(data==null).assertTrue();
567                }
568            })
569            done();
570        })
571
572        /**
573         * @tc.name get defaultValue callback interface test
574         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiCallbackTest_1300
575         * @tc.desc get defaultValue callback interface test
576         * @tc.size MediumTest
577         * @tc.type Function
578         * @tc.level Level 2
579         */
580        it('testPreferencesGetDefValue0173', 0, async function (done) {
581            await mPreferences.clear();
582            await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, true, function (err, ret) {
583                expect(true).assertEqual(ret);
584                done();
585            })
586        })
587
588    })
589}