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