• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (c) 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 dataPreferences from '@ohos.data.preferences';
16import featureAbility from '@ohos.ability.featureAbility';
17import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
18const NAME = "test_preferences";
19const KEY_TEST_INT_ELEMENT = 'key_test_int';
20const KEY_TEST_LONG_ELEMENT = 'key_test_long';
21const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
22const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean';
23const KEY_TEST_STRING_ELEMENT = 'key_test_string';
24const KEY_TEST_NUMBER_ARRAY_ELEMENT = 'key_test_number_array';
25const KEY_TEST_STRING_ARRAY_ELEMENT = 'key_test_string_array';
26const KEY_TEST_BOOL_ARRAY_ELEMENT = 'key_test_bool_array';
27var mPreferences;
28var context;
29
30const TAG = '[TEST_PREFERENCES_FLUSH]'
31
32export default function preferencesFlushTest(){
33    describe('preferencesFlushTest', 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         * @tc.name testPreferences_put_flush_remove_get_0100
54         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0100
55         * @tc.desc put get flush removePreferencesFromCache get promise interface test
56         * @tc.size MediumTest
57         * @tc.type Function
58         * @tc.level Level 2
59         */
60        it('testPreferences_put_flush_remove_get_0100', 0, async function (done) {
61            console.log(TAG + "start_test_0100");
62            await mPreferences.clear();
63
64            await mPreferences.put(KEY_TEST_INT_ELEMENT, 1).then(() => {
65                console.log(TAG + "put succeed");
66            }).catch((err) => {
67                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
68            })
69
70            await mPreferences.get(KEY_TEST_INT_ELEMENT, 1).then((res1) => {
71                expect(1).assertEqual(res1);
72                console.log(TAG + "res1 = " + res1 + "get res1 succeed");
73            }).catch((err) => {
74                console.log(TAG + "get res1 failed error message = " + err + "error code = " + err.code);
75            })
76
77            await mPreferences.flush().then(() => {
78                console.log(TAG + "flush succeed");
79            }).catch((err) => {
80                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
81            })
82
83            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
84                console.log(TAG + "remove succeed");
85            }).catch((err) => {
86                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
87            })
88
89            mPreferences = null;
90            mPreferences = await dataPreferences.getPreferences(context, NAME);
91
92            await mPreferences.get(KEY_TEST_INT_ELEMENT, 1).then((res2) => {
93                expect(1).assertEqual(res2);
94                console.log(TAG + "res2 = " + res2 + "get res2 succeed. test0100end");
95                done();
96            }).catch((err) => {
97                console.log(TAG + "get res2 failed error message = " + err + "error code = " + err.code);
98            })
99        })
100        /**
101         * @tc.name testPreferences_put_flush_remove_get_0200
102         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0200
103         * @tc.desc put get flush removePreferencesFromCache get promise interface test
104         * @tc.size MediumTest
105         * @tc.type Function
106         * @tc.level Level 2
107         */
108        it('testPreferences_put_flush_remove_get_0200', 0, async function (done){
109            console.log(TAG + "start_test_0200");
110            await mPreferences.clear();
111            await mPreferences.put(KEY_TEST_LONG_ELEMENT, 111).then(() => {
112                console.log(TAG + "put succeed");
113            }).catch((err) => {
114                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
115            })
116
117            await mPreferences.get(KEY_TEST_LONG_ELEMENT, 111).then((res1) => {
118                expect(111).assertEqual(res1);
119                console.log(TAG + "res1 = " + res1 + "get res1 succeed");
120            }).catch((err) => {
121                console.log(TAG + "get res1 failed error message = " + err + "error code = " + err.code);
122            })
123
124            await mPreferences.flush().then(() => {
125                console.log(TAG + "flush succeed");
126            }).catch((err) => {
127                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
128            })
129
130            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
131                console.log(TAG + "remove succeed");
132            }).catch((err) => {
133                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
134            })
135
136            mPreferences = null;
137            mPreferences = await dataPreferences.getPreferences(context, NAME);
138
139            await mPreferences.get(KEY_TEST_LONG_ELEMENT, 111).then((res2) => {
140                expect(111).assertEqual(res2);
141                console.log(TAG + "res2 = " + res2 + "get res2 succeed. test0200end");
142                done();
143            }).catch((err) => {
144                console.log(TAG + "get res2 failed error message = " + err + "error code = " + err.code);
145            })
146        })
147        /**
148         * @tc.name testPreferences_put_flush_remove_get_0300
149         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0300
150         * @tc.desc put get flush removePreferencesFromCache get promise interface test
151         * @tc.size MediumTest
152         * @tc.type Function
153         * @tc.level Level 2
154         */
155        it('testPreferences_put_flush_remove_get_0300', 0, async function (done){
156            console.log(TAG + "start_test_0300");
157            await mPreferences.clear();
158            await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 111.2).then(() => {
159                console.log(TAG + "put succeed");
160            }).catch((err) => {
161                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
162            })
163
164            await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 111.2).then((res1) => {
165                expect(111.2).assertEqual(res1);
166                console.log(TAG + "res1 = " + res1 + "get res1 succeed");
167            }).catch((err) => {
168                console.log(TAG + "get res1 failed error message = " + err + "error code = " + err.code);
169            })
170
171            await mPreferences.flush().then(() => {
172                console.log(TAG + "flush succeed");
173            }).catch((err) => {
174                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
175            })
176
177            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
178                console.log(TAG + "remove succeed");
179            }).catch((err) => {
180                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
181            })
182
183            mPreferences = null;
184            mPreferences = await dataPreferences.getPreferences(context, NAME);
185
186            await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 111.2).then((res2) => {
187                expect(111.2).assertEqual(res2);
188                console.log(TAG + "res2 = " + res2 + "get res2 succeed. test0300end");
189                done();
190            }).catch((err) => {
191                console.log(TAG + "get res2 failed error message = " + err + "error code = " + err.code);
192            })
193        })
194        /**
195         * @tc.name testPreferences_put_flush_remove_get_0400
196         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0400
197         * @tc.desc put get flush removePreferencesFromCache get promise interface test
198         * @tc.size MediumTest
199         * @tc.type Function
200         * @tc.level Level 2
201         */
202        it('testPreferences_put_flush_remove_get_0400', 0, async function (done){
203            console.log(TAG + "start_test_0400");
204            await mPreferences.clear();
205            await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true).then(() => {
206                console.log(TAG + "put succeed");
207            }).catch((err) => {
208                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
209            })
210
211            await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, true).then((res1) => {
212                expect(true).assertEqual(res1);
213                console.log(TAG + "res1 = " + res1 + "get res1 succeed");
214            }).catch((err) => {
215                console.log(TAG + "get res1 failed error message = " + err + "error code = " + err.code);
216            })
217
218            await mPreferences.flush().then(() => {
219                console.log(TAG + "flush succeed");
220            }).catch((err) => {
221                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
222            })
223
224            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
225                console.log(TAG + "remove succeed");
226            }).catch((err) => {
227                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
228            })
229
230            mPreferences = null;
231            mPreferences = await dataPreferences.getPreferences(context, NAME);
232
233            await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, true).then((res2) => {
234                expect(true).assertEqual(res2);
235                console.log(TAG + "res2 = " + res2 + "get res2 succeed. test0400end");
236                done();
237            }).catch((err) => {
238                console.log(TAG + "get res2 failed error message = " + err + "error code = " + err.code);
239            })
240        })
241        /**
242         * @tc.name testPreferences_put_flush_remove_get_0500
243         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0500
244         * @tc.desc put get flush removePreferencesFromCacheget get promise interface test
245         * @tc.size MediumTest
246         * @tc.type Function
247         * @tc.level Level 2
248         */
249        it('testPreferences_put_flush_remove_get_0500', 0, async function (done){
250            console.log(TAG + "start_test_0500");
251            await mPreferences.clear();
252            await mPreferences.put(KEY_TEST_STRING_ELEMENT, 'abc').then(() => {
253                console.log(TAG + "put succeed");
254            }).catch((err) => {
255                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
256            })
257
258            await mPreferences.get(KEY_TEST_STRING_ELEMENT, 'abc').then((res1) => {
259                expect("abc").assertEqual(res1);
260                console.log(TAG + "res1 = " + res1 + "get res1 succeed");
261            }).catch((err) => {
262                console.log(TAG + "get res1 failed error message = " + err + "error code = " + err.code);
263            })
264
265            await mPreferences.flush().then(() => {
266                console.log(TAG + "flush succeed");
267            }).catch((err) => {
268                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
269            })
270
271            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
272                console.log(TAG + "remove succeed");
273            }).catch((err) => {
274                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
275            })
276
277            mPreferences = null;
278            mPreferences = await dataPreferences.getPreferences(context, NAME);
279
280            await mPreferences.get(KEY_TEST_STRING_ELEMENT, "abc").then((res2) => {
281                expect("abc").assertEqual(res2);
282                console.log(TAG + "res2 = " + res2 + "get res2 succeed. test0500end");
283                done();
284            }).catch((err) => {
285                console.log(TAG + "get res2 failed error message = " + err + "error code = " + err.code);
286            })
287        })
288
289        /**
290         * @tc.name testPreferences_put_flush_remove_get_0600
291         * @tc.number SUB_DistributedData_Preference_SDK_PutGetFlushRemoveJsApiTest_0600
292         * @tc.desc put getAll flush removePreferencesFromCache getAll promise interface test
293         * @tc.size MediumTest
294         * @tc.type Function
295         * @tc.level Level 2
296         */
297
298        it('testPreferences_put_flush_remove_get_0600', 0, async function (done){
299            console.log(TAG + "start_test_0600");
300            await mPreferences.clear();
301            let numberArr = [11, 22, 33];
302            let stringArr = ['11', '22', '33'];
303            let boolArr = [true, false, false, true];
304            await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, numberArr).then(() => {
305                console.log(TAG + "put numberArr succeed");
306            }).catch((err) => {
307                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
308            })
309            await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr).then(() => {
310                console.log(TAG + "put stringArr numberArr succeed");
311            }).catch((err) => {
312                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
313            })
314            await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr).then(() => {
315                console.log(TAG + "put boolArr numberArr succeed");
316            }).catch((err) => {
317                console.log(TAG + "put failed error message = " + err + "error code = " + err.code);
318            })
319
320            await mPreferences.getAll().then((obj1) => {
321                for (let i = 0; i < obj1.key_test_number_array.length; i++) {
322                    expect(numberArr[i]).assertEqual(obj1.key_test_number_array[i]);
323                }
324                for (let i = 0; i < obj1.key_test_string_array.length; i++) {
325                    expect(stringArr[i]).assertEqual(obj1.key_test_string_array[i]);
326                }
327                for (let i = 0; i < obj1.key_test_bool_array.length; i++) {
328                    expect(boolArr[i]).assertEqual(obj1.key_test_bool_array[i]);
329                }
330                console.log(TAG + "obj1 = " + obj1 + "get res1 succeed");
331            }).catch((err) => {
332                console.log(TAG + "get obj1 failed error message = " + err + "error code = " + err.code);
333            })
334
335            await mPreferences.flush().then(() => {
336                console.log(TAG + "flush succeed");
337            }).catch((err) => {
338                console.log(TAG + "flush failed error message = " + err + "error code = " + err.code);
339            })
340
341            await dataPreferences.removePreferencesFromCache(context, NAME).then(() => {
342                console.log(TAG + "remove succeed");
343            }).catch((err) => {
344                console.log(TAG + "remove failed error message = " + err + "error code = " + err.code);
345            })
346
347            mPreferences = null;
348            mPreferences = await dataPreferences.getPreferences(context, NAME);
349
350            await mPreferences.getAll().then((obj2) => {
351                for (let i = 0; i < numberArr.length; i++) {
352                    expect(numberArr[i]).assertEqual(obj2.key_test_number_array[i]);
353                }
354                for (let i = 0; i < stringArr.length; i++) {
355                    expect(stringArr[i]).assertEqual(obj2.key_test_string_array[i]);
356                }
357                for (let i = 0; i < boolArr.length; i++) {
358                    expect(boolArr[i]).assertEqual(obj2.key_test_bool_array[i]);
359                }
360                console.log(TAG + "obj2 = " + obj2 + "get res1 succeed");
361                done();
362            }).catch((err) => {
363                console.log(TAG + "get obj2 failed error message = " + err + "error code = " + err.code);
364            })
365        })
366
367    })
368}