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