• 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';
28let mPreferences;
29let context;
30
31export default function preferencesPromiseTest(){
32    describe('preferencesPromiseTest', function () {
33        beforeAll(async function () {
34            console.info('beforeAll')
35            context = featureAbility.getContext()
36        })
37
38        afterAll(async function () {
39            console.info('afterAll')
40        })
41
42        beforeEach(async function () {
43            console.info('beforeEach')
44            mPreferences = await dataPreferences.getPreferences(context, NAME);
45        })
46
47        afterEach(async function () {
48            console.info('afterEach')
49            await dataPreferences.deletePreferences(context, NAME);
50        })
51
52        /**
53         * @tc.name put StringArray promise interface test
54         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0800
55         * @tc.desc put StringArray promise interface test
56         * @tc.size MediumTest
57         * @tc.type Function
58         * @tc.level Level 2
59         */
60        it('testPreferencesPutStringArray0131', 0, async function (done) {
61            await mPreferences.clear();
62            var stringArr = ['1', '2', '3'];
63            await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr);
64            await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321']).then((pre) => {
65                for (let i = 0; i < stringArr.length; i++) {
66                    expect(stringArr[i]).assertEqual(pre[i]);
67                }
68                done();
69            }).catch((err) => {
70                expect(null).assertFail();
71                done();
72            })
73        });
74
75        /**
76         * @tc.name put NumberArray promise interface test
77         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0700
78         * @tc.desc put NumberArray promise interface test
79         * @tc.size MediumTest
80         * @tc.type Function
81         * @tc.level Level 2
82         */
83        it('testPreferencesPutNumberArray0132', 0, async function (done) {
84            await mPreferences.clear();
85            var numberArr = [11, 22, 33, 44, 55];
86            await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, numberArr);
87            await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321]).then((pre) => {
88                for (let i = 0; i < numberArr.length; i++) {
89                    expect(numberArr[i]).assertEqual(pre[i]);
90                }
91                done();
92            }).catch((err) => {
93                expect(null).assertFail();
94                done();
95            })
96        });
97
98        /**
99         * @tc.name put BoolArray promise interface test
100         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0600
101         * @tc.desc put BoolArray promise interface test
102         * @tc.size MediumTest
103         * @tc.type Function
104         * @tc.level Level 2
105         */
106        it('testPreferencesPutBoolArray0133', 0, async function (done) {
107            await mPreferences.clear();
108            var boolArr = [true, true, false];
109            await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr);
110            await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [false, true]).then((pre) => {
111                for (let i = 0; i < boolArr.length; i++) {
112                    expect(boolArr[i]).assertEqual(pre[i]);
113                }
114                done();
115            }).catch((err) => {
116                expect(null).assertFail();
117                done();
118            })
119        });
120
121        /**
122         * @tc.name getAll promise interface test
123         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1000
124         * @tc.desc getAll promise interface test
125         * @tc.size MediumTest
126         * @tc.type Function
127         * @tc.level Level 2
128         */
129        it('testPreferencesGetAll0001', 0, async function (done) {
130            await mPreferences.clear();
131            let doubleArr = [11, 22, 33];
132            let stringArr = ['11', '22', '33'];
133            let boolArr = [true, false, false, true];
134            await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr);
135            await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr);
136            await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr);
137            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false);
138            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123");
139            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1);
140
141            await mPreferences.flush();
142
143            await mPreferences.getAll().then((obj) => {
144                expect(false).assertEqual(obj.key_test_boolean);
145                expect("123").assertEqual(obj.key_test_string);
146                expect(123.1).assertEqual(obj.key_test_float);
147                let sArr = obj.key_test_string_array;
148                for (let i = 0; i < sArr.length; i++) {
149                    expect(sArr[i]).assertEqual(stringArr[i]);
150                }
151
152                let bArr = obj.key_test_bool_array;
153                for (let i = 0; i < bArr.length; i++) {
154                    expect(bArr[i]).assertEqual(boolArr[i]);
155                }
156
157                let nArr = obj.key_test_number_array
158                for (let i = 0; i < nArr.length; i++) {
159                    expect(nArr[i]).assertEqual(doubleArr[i]);
160                }
161                done();
162            }).catch((err) => {
163                expect(null).assertFail();
164                done();
165            })
166        })
167
168        /**
169         * @tc.name clear promise interface test
170         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_2100
171         * @tc.desc clear promise interface test
172         * @tc.size MediumTest
173         * @tc.type Function
174         * @tc.level Level 2
175         */
176        it('testPreferencesClear0011', 0, async function (done) {
177            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
178            await mPreferences.flush();
179            await mPreferences.clear().then(async (ret) => {
180                let per = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue");
181                expect("defaultvalue").assertEqual(per);
182                done();
183            }).catch((err) => {
184                expect(null).assertFail();
185                done();
186            });
187        })
188
189        /**
190         * @tc.name has string interface test
191         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0900
192         * @tc.desc has string interface test
193         * @tc.size MediumTest
194         * @tc.type Function
195         * @tc.level Level 2
196         */
197        it('testPreferencesHasKey0031', 0, async function (done) {
198            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
199            await mPreferences.has(KEY_TEST_STRING_ELEMENT).then((ret) => {
200                expect(true).assertEqual(ret);
201                done();
202            }).catch((err) => {
203                expect(null).assertFail();
204                done();
205            });
206        })
207
208        /**
209         * @tc.name has int interface test
210         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1700
211         * @tc.desc has int interface test
212         * @tc.size MediumTest
213         * @tc.type Function
214         * @tc.level Level 2
215         */
216        it('testPreferencesHasKey0032', 0, async function (done) {
217            await mPreferences.put(KEY_TEST_INT_ELEMENT, 1);
218            await mPreferences.has(KEY_TEST_INT_ELEMENT).then((ret) => {
219                expect(true).assertEqual(ret);
220                done();
221            }).catch((err) => {
222                expect(null).assertFail();
223                done();
224            });
225            done();
226        })
227
228        /**
229         * @tc.name has float interface test
230         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1500
231         * @tc.desc has float interface test
232         * @tc.size MediumTest
233         * @tc.type Function
234         * @tc.level Level 2
235         */
236        it('testPreferencesHasKey0033', 0, async function (done) {
237            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 2.0);
238            await mPreferences.has(KEY_TEST_FLOAT_ELEMENT).then((ret) => {
239                expect(true).assertEqual(ret);
240                done();
241            }).catch((err) => {
242                expect(null).assertFail();
243                done();
244            });
245        })
246
247        /**
248         * @tc.name has boolean interface test
249         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1300
250         * @tc.desc has boolean interface test
251         * @tc.size MediumTest
252         * @tc.type Function
253         * @tc.level Level 2
254         */
255        it('testPreferencesHasKey0034', 0, async function (done) {
256            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false);
257            await mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT).then((ret) => {
258                expect(true).assertEqual(ret);
259                done();
260            }).catch((err) => {
261                expect(null).assertFail();
262                done();
263            });
264        })
265
266        /**
267         * @tc.name has long interface test
268         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1800
269         * @tc.desc has long interface test
270         * @tc.size MediumTest
271         * @tc.type Function
272         * @tc.level Level 2
273         */
274        it('testPreferencesHasKey0035', 0, async function (done) {
275            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0);
276            await mPreferences.has(KEY_TEST_LONG_ELEMENT).then((ret) => {
277                expect(true).assertEqual(ret);
278                done();
279            }).catch((err) => {
280                expect(null).assertFail();
281                done();
282            });
283
284        })
285
286        /**
287         * @tc.name get string promise interface test
288         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1100
289         * @tc.desc get string promise interface test
290         * @tc.size MediumTest
291         * @tc.type Function
292         * @tc.level Level 2
293         */
294        it('testPreferencesGetDefValue0061', 0, async function (done) {
295            await mPreferences.clear();
296            await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue").then((ret) => {
297                expect('defaultValue').assertEqual(ret);
298                done();
299            }).catch((err) => {
300                expect(null).assertFail();
301                done();
302            });
303        })
304
305        /**
306         * @tc.name get float promise interface test
307         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1400
308         * @tc.desc get float promise interface test
309         * @tc.size MediumTest
310         * @tc.type Function
311         * @tc.level Level 2
312         */
313        it('testPreferencesGetFloat0071', 0, async function (done) {
314            await mPreferences.clear();
315            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0);
316            await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0).then((ret) => {
317                expect(3.0).assertEqual(ret);
318                done();
319            }).catch((err) => {
320                expect(null).assertFail();
321                done();
322            });
323        })
324
325        /**
326         * @tc.name get int promise interface test
327         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1600
328         * @tc.desc get int promise interface test
329         * @tc.size MediumTest
330         * @tc.type Function
331         * @tc.level Level 2
332         */
333        it('testPreferencesGetInt0081', 0, async function (done) {
334            await mPreferences.clear();
335            await mPreferences.put(KEY_TEST_INT_ELEMENT, 3);
336            await mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0).then((ret) => {
337                expect(3).assertEqual(ret);
338                done();
339            }).catch((err) => {
340                expect(null).assertFail();
341                done();
342            });
343        })
344
345        /**
346         * @tc.name get long promise interface test
347         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1900
348         * @tc.desc get long promise interface test
349         * @tc.size MediumTest
350         * @tc.type Function
351         * @tc.level Level 2
352         */
353        it('testPreferencesGetLong0091', 0, async function (done) {
354            await mPreferences.clear();
355            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3);
356            await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0).then((ret) => {
357                expect(3).assertEqual(ret);
358                done();
359            }).catch((err) => {
360                expect(null).assertFail();
361                done();
362            });
363        })
364
365        /**
366         * @tc.name get String promise interface test
367         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_2000
368         * @tc.desc get String promise interface test
369         * @tc.size MediumTest
370         * @tc.type Function
371         * @tc.level Level 2
372         */
373        it('tesPreferencesGetString101', 0, async function (done) {
374            await mPreferences.clear();
375            await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
376            await mPreferences.flush();
377            await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue").then((ret) => {
378                expect('test').assertEqual(ret);
379                done();
380            }).catch((err) => {
381                expect(null).assertFail();
382                done();
383            });
384        })
385
386        /**
387         * @tc.name put boolean promise interface test
388         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0100
389         * @tc.desc put boolean promise interface test
390         * @tc.size MediumTest
391         * @tc.type Function
392         * @tc.level Level 2
393         */
394        it('testPreferencesPutBoolean0121', 0, async function (done) {
395            await mPreferences.clear();
396            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true);
397            let per = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
398            expect(true).assertEqual(per);
399            await mPreferences.flush();
400            let per2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
401            expect(true).assertEqual(per2);
402            done();
403        })
404
405        /**
406         * @tc.name put float promise interface test
407         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0200
408         * @tc.desc put float promise interface test
409         * @tc.size MediumTest
410         * @tc.type Function
411         * @tc.level Level 2
412         */
413        it('testPreferencesPutFloat0131', 0, async function (done) {
414            await mPreferences.clear();
415            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0);
416            let per = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
417            expect(4.0).assertEqual(per);
418            await mPreferences.flush();
419            let per2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
420            expect(4.0).assertEqual(per2);
421            done();
422        })
423
424        /**
425         * @tc.name put int promise interface test
426         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0300
427         * @tc.desc put int promise interface test
428         * @tc.size MediumTest
429         * @tc.type Function
430         * @tc.level Level 2
431         */
432        it('testPreferencesPutInt0141', 0, async function (done) {
433            await mPreferences.clear();
434            await mPreferences.put(KEY_TEST_INT_ELEMENT, 4);
435            let per = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
436            expect(4).assertEqual(per);
437            await mPreferences.flush();
438            let per2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
439            expect(4).assertEqual(per2);
440            done();
441        })
442
443        /**
444         * @tc.name put long promise interface test
445         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0400
446         * @tc.desc put long promise interface test
447         * @tc.size MediumTest
448         * @tc.type Function
449         * @tc.level Level 2
450         */
451        it('testPreferencesPutLong0151', 0, async function (done) {
452            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4);
453            let per = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
454            expect(4).assertEqual(per);
455            await mPreferences.flush();
456            let per2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
457            expect(4).assertEqual(per2);
458            done();
459        })
460
461        /**
462         * @tc.name put String promise interface test
463         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0500
464         * @tc.desc put String promise interface test
465         * @tc.size MediumTest
466         * @tc.type Function
467         * @tc.level Level 2
468         */
469        it('testPreferencesPutString0161', 0, async function (done) {
470            await mPreferences.put(KEY_TEST_STRING_ELEMENT, '');
471            let per = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
472            expect('').assertEqual(per);
473            await mPreferences.flush();
474            let per2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
475            expect('').assertEqual(per2);
476            done();
477        })
478
479        /**
480         * @tc.name get string promise interface test
481         * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1200
482         * @tc.desc get string promise interface test
483         * @tc.size MediumTest
484         * @tc.type Function
485         * @tc.level Level 2
486         */
487        it('testPreferencesGetDefValue00162', 0, async function (done) {
488            await mPreferences.clear();
489            await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, true).then((ret) => {
490                expect(true).assertEqual(ret);
491                done();
492            }).catch((err) => {
493                expect(null).assertFail();
494                done();
495            });
496        })
497    })
498}