• 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
31const TAG = '[PREFERENCES_CALLBACK_JSUNIT_TEST]'
32
33describe('preferencesTest', function () {
34    beforeAll(async function () {
35        console.info('beforeAll')
36        context = featureAbility.getContext()
37        mPreferences = await data_preferences.getPreferences(context, NAME);
38    })
39
40    afterAll(async function () {
41        console.info('afterAll')
42        await data_preferences.deletePreferences(context, NAME);
43    })
44
45    /**
46     * @tc.name clear callback interface test
47     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0010
48     * @tc.desc clear callback interface test
49     */
50    it('testPreferencesClear0012', 0, async function (done) {
51        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
52        await mPreferences.flush();
53        await mPreferences.clear(async function (err, ret) {
54            let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
55            expect("defaultvalue").assertEqual(pre);
56            done();
57        });
58    })
59
60    /**
61     * @tc.name has string callback interface test
62     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0020
63     * @tc.desc has string callback interface test
64     */
65    it('testPreferencesHasKey0032', 0, async function (done) {
66        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
67        await mPreferences.has(KEY_TEST_STRING_ELEMENT, function (err, ret) {
68            expect(true).assertEqual(ret);
69            done();
70        })
71    })
72
73    /**
74     * @tc.name has int callback interface test
75     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0130
76     * @tc.desc has int callback interface test
77     */
78    it('testPreferencesHasKey0033', 0, async function (done) {
79        await mPreferences.put(KEY_TEST_INT_ELEMENT, 1);
80        await mPreferences.has(KEY_TEST_INT_ELEMENT, function (err, ret) {
81            expect(true).assertEqual(ret);
82            done();
83        })
84    })
85
86    /**
87     * @tc.name has float callback interface test
88     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140
89     * @tc.desc has float callback interface test
90     */
91    it('testPreferencesHasKey0034', 0, async function (done) {
92        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 1.1);
93        await mPreferences.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) {
94            expect(true).assertEqual(ret);
95            done();
96        })
97    })
98
99    /**
100     * @tc.name has long callback interface test
101     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0150
102     * @tc.desc has long callback interface test
103     */
104    it('testPreferencesHasKey0035', 0, async function (done) {
105        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0);
106        await mPreferences.has(KEY_TEST_LONG_ELEMENT, function (err, ret) {
107            expect(true).assertEqual(ret);
108            done();
109        })
110    })
111
112    /**
113     * @tc.name has boolean callback interface test
114     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0160
115     * @tc.desc has boolean callback interface test
116     */
117    it('testPreferencesHasKey0036', 0, async function (done) {
118        await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false);
119        await mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) {
120            expect(true).assertEqual(ret);
121            done();
122        })
123    })
124
125    /**
126     * @tc.name get defaultValue callback interface test
127     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0030
128     * @tc.desc get defaultValue callback interface test
129     */
130    it('testPreferencesGetDefValue0062', 0, async function (done) {
131        await mPreferences.clear();
132        await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) {
133            expect('defaultValue').assertEqual(ret);
134            done();
135        })
136    })
137
138    /**
139     * @tc.name get float callback interface test
140     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0040
141     * @tc.desc get float callback interface test
142     */
143    it('testPreferencesGetFloat0072', 0, async function (done) {
144        await mPreferences.clear();
145        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0);
146        await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) {
147            expect(3.0).assertEqual(ret);
148            done();
149        })
150    })
151
152    /**
153     * @tc.name get int callback interface test
154     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0050
155     * @tc.desc get int callback interface test
156     */
157    it('testPreferencesGetInt0082', 0, async function (done) {
158        await mPreferences.clear();
159        await mPreferences.put(KEY_TEST_INT_ELEMENT, 3);
160        await mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) {
161            expect(3).assertEqual(ret);
162            done();
163        })
164    })
165
166    /**
167     * @tc.name get long callback interface test
168     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0060
169     * @tc.desc get long callback interface test
170     */
171    it('testPreferencesGetLong0092', 0, async function (done) {
172        await mPreferences.clear();
173        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3);
174        let pref = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0)
175        expect(3).assertEqual(pref);
176        await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) {
177            expect(3).assertEqual(ret);
178            done();
179        });
180    })
181
182    /**
183     * @tc.name get String callback interface test
184     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0070
185     * @tc.desc get String callback interface test
186     */
187    it('testPreferencesGetString102', 0, async function (done) {
188        await mPreferences.clear();
189        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test");
190        await mPreferences.flush();
191        await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) {
192            expect('test').assertEqual(ret);
193            done();
194        });
195    })
196
197    /**
198     * @tc.name put boolean callback interface test
199     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080
200     * @tc.desc put boolean callback interface test
201     */
202    it('testPreferencesPutBoolean0122', 0, async function (done) {
203        await mPreferences.clear();
204        await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true, async function (err, ret) {
205            let pre = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false);
206            expect(true).assertEqual(pre);
207            await mPreferences.flush();
208            let pre2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false)
209            expect(true).assertEqual(pre2);
210            done();
211        });
212    })
213
214    /**
215     * @tc.name put float callback interface test
216     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0090
217     * @tc.desc put float callback interface test
218     */
219    it('testPreferencesPutFloat0132', 0, async function (done) {
220        await mPreferences.clear();
221        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0, async function (err, ret) {
222            let pre = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
223            expect(4.0).assertEqual(pre);
224            await mPreferences.flush();
225            let pre2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0);
226            expect(4.0).assertEqual(pre2);
227            done();
228        });
229    })
230
231    /**
232     * @tc.name put int callback interface test
233     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0100
234     * @tc.desc put int callback interface test
235     */
236    it('testPreferencesPutInt0142', 0, async function (done) {
237        await mPreferences.clear();
238        await mPreferences.put(KEY_TEST_INT_ELEMENT, 4, async function (err, ret) {
239            let pre = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
240            expect(4).assertEqual(pre);
241            await mPreferences.flush();
242            let pre2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0);
243            expect(4).assertEqual(pre2);
244            done();
245        });
246    })
247
248    /**
249     * @tc.name put long callback interface test
250     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0110
251     * @tc.desc put long callback interface test
252     */
253    it('testPreferencesPutLong0152', 0, async function (done) {
254        await mPreferences.clear();
255        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4);
256        await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4, async function (err, ret) {
257            let pre = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
258            expect(4).assertEqual(pre);
259            await mPreferences.flush();
260            let pre2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0);
261            expect(4).assertEqual(pre2);
262            done();
263        });
264    })
265
266    /**
267     * @tc.name put String callback interface test
268     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120
269     * @tc.desc put String callback interface test
270     */
271    it('testPreferencesPutString0162', 0, async function (done) {
272        await mPreferences.clear();
273        await mPreferences.put(KEY_TEST_STRING_ELEMENT, '', async function (err, ret) {
274            let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
275            expect('').assertEqual(pre);
276            await mPreferences.flush();
277            let pre2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue")
278            expect('').assertEqual(pre2);
279            done();
280        });
281    })
282
283    /**
284     * @tc.name clear、put、get、flush String callback interface test
285     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120
286     * @tc.desc flush String callback interface test
287     */
288     it('testPreferencesCallback0172', 0, function (done) {
289        console.log(TAG + "testPreferencesCallback0172 begin.");
290        mPreferences.clear(function (err, val) {
291            if(err){
292                expect(null).assertEqual();
293            }
294            mPreferences.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) {
295                if(err){
296                    expect(null).assertEqual();
297                }
298                mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) {
299                    if(err){
300                        expect(null).assertEqual();
301                    }
302                    expect('').assertEqual(pre);
303                    mPreferences.flush(function (err, val) {
304                        if(err){
305                            expect(null).assertEqual();
306                        }
307                        mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) {
308                            if(err){
309                                expect(null).assertEqual();
310                            }
311                            expect('').assertEqual(pre2);
312                            done();
313                            console.log(TAG + "testPreferencesCallback0172 end.");
314                        })
315                    });
316                })
317            });
318        });
319    })
320
321    /**
322     * @tc.name put StringArray callback interface test
323     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0001
324     * @tc.desc put String callback interface test
325     */
326    it('testPreferencesPutStringArray0001', 0, async function (done) {
327        await mPreferences.clear();
328        var stringArr = ['11', '22', '33']
329        await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr, async function (err, ret) {
330            let pre = await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321'])
331            for (let i = 0; i < stringArr.length; i++) {
332                expect(stringArr[i]).assertEqual(pre[i]);
333            }
334
335            done();
336        });
337    })
338
339    /**
340     * @tc.name put NumberArray callback interface test
341     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0002
342     * @tc.desc put String callback interface test
343     */
344    it('testPreferencesPutNumArray0001', 0, async function (done) {
345        await mPreferences.clear();
346        var doubleArr = [11, 22, 33]
347        await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr, async function (err, ret) {
348            let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321])
349            for (let i = 0; i < doubleArr.length; i++) {
350                expect(doubleArr[i]).assertEqual(pre[i]);
351            }
352
353            done();
354        });
355    })
356
357    /**
358     * @tc.name put BoolArray callback interface test
359     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0003
360     * @tc.desc put String callback interface test
361     */
362    it('testPreferencesPutBoolArray0001', 0, async function (done) {
363        await mPreferences.clear();
364        let boolArr = [true, false, false, true]
365        await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr, async function (err, ret) {
366            let pre = await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [true, false])
367            for (let i = 0; i < boolArr.length; i++) {
368                expect(boolArr[i]).assertEqual(pre[i]);
369            }
370
371            done();
372        });
373    })
374
375    /**
376     * @tc.name getAll callback interface test
377     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004
378     * @tc.desc getAll callback interface test
379     */
380    it('testPreferencesGetAll0001', 0, async function (done) {
381        await mPreferences.clear();
382        let doubleArr = [11, 22, 33]
383        let stringArr = ['11', '22', '33']
384        let boolArr = [true, false, false, true]
385        await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr)
386        await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr)
387        await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr)
388        await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false)
389        await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123")
390        await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1)
391
392        await mPreferences.flush()
393
394        await mPreferences.getAll(function (err, obj) {
395            expect(false).assertEqual(obj.key_test_boolean)
396            expect("123").assertEqual(obj.key_test_string)
397            expect(123.1).assertEqual(obj.key_test_float)
398            let sArr = obj.key_test_string_array
399            for (let i = 0; i < sArr.length; i++) {
400                expect(sArr[i]).assertEqual(stringArr[i]);
401            }
402
403            let bArr = obj.key_test_bool_array
404            for (let i = 0; i < bArr.length; i++) {
405                expect(bArr[i]).assertEqual(boolArr[i]);
406            }
407
408            let nArr = obj.key_test_number_array
409            for (let i = 0; i < nArr.length; i++) {
410                expect(nArr[i]).assertEqual(doubleArr[i]);
411            }
412
413            done()
414        })
415    })
416})