• 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 storage from '@ohos.data.storage'
17
18const PATH = "/data/storage/el2/database/test_storage";
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';
24
25var mPref;
26
27describe('StorageSyncJsunit', function () {
28    beforeAll(function() {
29        console.info('beforeAll')
30        mPref = storage.getStorageSync(PATH);
31    })
32
33    afterAll(function () {
34        console.info('afterAll')
35        storage.deleteStorageSync(PATH);
36    })
37
38    it('testClear001', 0, function () {
39        mPref.putSync(KEY_TEST_STRING_ELEMENT, "test");
40        mPref.putSync(KEY_TEST_INT_ELEMENT, 3);
41        mPref.flushSync();
42        mPref.clearSync();
43        expect("defaultvalue").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue"));
44        expect(0).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0));
45    })
46
47    /**
48     * @tc.name Constructor test
49     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0010
50     * @tc.desc Constructor test
51     */
52    it('testConstructor002', 0, function () {
53        expect('to:' + mPref).assertEqual('to:[object Object]');
54    })
55
56    /**
57     * @tc.name put string sync interface test
58     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0020
59     * @tc.desc put string sync interface test
60     */
61    it('testHasKey003', 0, function () {
62        mPref.putSync(KEY_TEST_STRING_ELEMENT, "test");
63        expect(true).assertEqual(mPref.hasSync(KEY_TEST_STRING_ELEMENT));
64    })
65
66    /**
67     * @tc.name put int sync interface test
68     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0170
69     * @tc.desc put int sync interface test
70     */
71    it('testHasKey004', 0, function () {
72        mPref.putSync(KEY_TEST_INT_ELEMENT, 1);
73        expect(true).assertEqual(mPref.hasSync(KEY_TEST_INT_ELEMENT));
74    })
75
76    /**
77     * @tc.name put boolean sync interface test
78     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180
79     * @tc.desc put boolean sync interface test
80     */
81    it('testHasKey005', 0, function () {
82        mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, false);
83        expect(true).assertEqual(mPref.hasSync(KEY_TEST_BOOLEAN_ELEMENT));
84    })
85
86    /**
87     * @tc.name put long sync interface test
88     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190
89     * @tc.desc put long sync interface test
90     */
91    it('testHasKey006', 0, function () {
92        mPref.putSync(KEY_TEST_LONG_ELEMENT, 0);
93        expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT));
94    })
95
96    /**
97     * @tc.name put float sync interface test
98     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200
99     * @tc.desc put float sync interface test
100     */
101    it('testHasKey007', 0, function () {
102        mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 1.1);
103        expect(true).assertEqual(mPref.hasSync(KEY_TEST_FLOAT_ELEMENT));
104    })
105
106    /**
107     * @tc.name put boolean sync interface test
108     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0030
109     * @tc.desc put boolean sync interface test
110     */
111    it('testGetBoolean005', 0, function () {
112        mPref.putSync(KEY_TEST_LONG_ELEMENT, true);
113        expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT));
114    })
115
116    /**
117     * @tc.name get defaultValue sync interface test
118     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0040
119     * @tc.desc get defaultValue sync interface test
120     */
121    it('testGetDefValue006', 0, function () {
122        mPref.clearSync();
123        expect(-1).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, -1));
124        expect(1.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 1.0));
125        expect(10000).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 10000));
126        expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, true));
127        expect('defaultValue').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultValue"));
128    })
129
130    /**
131     * @tc.name put float sync interface test
132     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0050
133     * @tc.desc put float sync interface test
134     */
135    it('testGetFloat007', 0, function () {
136        mPref.clearSync();
137        mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 3.0);
138        expect(3.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0));
139        expect(0.0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0.0));
140    })
141
142    /**
143     * @tc.name put int sync interface test
144     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0060
145     * @tc.desc put int sync interface test
146     */
147    it('testGetInt008', 0, function () {
148        mPref.clearSync();
149        mPref.putSync(KEY_TEST_INT_ELEMENT, 3);
150        expect(3).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0.0));
151    })
152
153    /**
154     * @tc.name put long sync interface test
155     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0070
156     * @tc.desc put long sync interface test
157     */
158    it('testGetLong009', 0, function () {
159        mPref.clearSync();
160        mPref.putSync(KEY_TEST_LONG_ELEMENT, 3);
161        expect(3).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0));
162        expect(0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0));
163    })
164
165    /**
166     * @tc.name put String & int sync interface test
167     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0080
168     * @tc.desc put String & int sync interface test
169     */
170    it('testGetString10', 0, function () {
171        mPref.clearSync();
172        mPref.putSync(KEY_TEST_STRING_ELEMENT, "test");
173        mPref.putSync(KEY_TEST_INT_ELEMENT, 3);
174        mPref.flushSync();
175        expect('test').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue"));
176        expect('defaultvalue').assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, "defaultvalue"));
177    })
178
179    /**
180     * @tc.name put boolean sync interface test
181     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0090
182     * @tc.desc put boolean sync interface test
183     */
184    it('testPutBoolean012', 0, function () {
185        mPref.clearSync();
186        mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, true);
187        expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false));
188        mPref.flushSync();
189        expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false));
190    })
191
192    /**
193     * @tc.name put float sync interface test
194     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0100
195     * @tc.desc put float sync interface test
196     */
197    it('testPutFloat013', 0, function () {
198        mPref.clearSync();
199        mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 4.0);
200        expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0));
201        mPref.flushSync();
202        expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0));
203    })
204
205    /**
206     * @tc.name put int sync interface test
207     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0110
208     * @tc.desc put int sync interface test
209     */
210    it('testPutInt014', 0, function () {
211        mPref.clearSync();
212        mPref.putSync(KEY_TEST_INT_ELEMENT, 4);
213        expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0));
214        mPref.flushSync();
215        expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0));
216    })
217
218    /**
219     * @tc.name put long sync interface test
220     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0120
221     * @tc.desc put long sync interface test
222     */
223    it('testPutLong015', 0, function () {
224        mPref.clearSync();
225        mPref.putSync(KEY_TEST_LONG_ELEMENT, 4);
226        expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0));
227        mPref.flushSync();
228        expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0));
229    })
230
231    /**
232     * @tc.name put String sync interface test
233     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0130
234     * @tc.desc put String sync interface test
235     */
236    it('testPutString016', 0, function () {
237        mPref.clearSync();
238        mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc");
239        mPref.putSync(KEY_TEST_STRING_ELEMENT, '');
240        expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue"));
241        mPref.flushSync();
242        expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue"));
243    })
244
245    /**
246     * @tc.name put interface test
247     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0140
248     * @tc.desc put interface test
249     */
250    it('testRegisterObserver001', 0, function () {
251        mPref.clearSync();
252        var observer = function (key) {
253            expect('abcd').assertEqual(key);
254        };
255        mPref.on('change', observer);
256        mPref.putSync(KEY_TEST_STRING_ELEMENT, "abcd");
257    })
258
259    /**
260     * @tc.name repeat on interface test
261     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0150
262     * @tc.desc repeat on interface test
263     */
264    it('testRegisterObserver002', 0, function () {
265        mPref.clearSync();
266        var observer = function (key) {
267            console.info('testRegisterObserver001 key' + key);
268            expect('abc').assertEqual(key);
269        };
270        mPref.on('change', observer);
271        mPref.on('change', observer);
272        mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc");
273    })
274
275    /**
276     * @tc.name off interface test
277     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0160
278     * @tc.desc off interface test
279     */
280    it('testUnRegisterObserver001', 0, function () {
281        var observer = function (key) {
282            console.info('testUnRegisterObserver001 key' + key);
283            expect('').assertEqual(key);
284        };
285        mPref.on('change', observer);
286        mPref.off('change', observer);
287        mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc");
288    })
289
290    /**
291     * @tc.name test putSync interface
292     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0170
293     * @tc.desc test put interface input parameter key exceed 80byte.
294     */
295    it('testputSyncIllegal001', 0, function () {
296        let illegalKey = "1";
297        illegalKey = illegalKey.repeat(81);
298        try {
299            mPref.putSync(illegalKey, "123456");
300            expect(false).assertTrue();
301        } catch (err) {
302            console.log("try catch err =" + err);
303        }
304    })
305
306    /**
307     * @tc.name test putSync interface
308     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180
309     * @tc.desc test put interface input parameter key is legal.
310     */
311    it('testputSyncIllegal002', 0, function () {
312        let legalKey = "1";
313        legalKey = legalKey.repeat(80);
314        try {
315            mPref.putSync(legalKey, "123456");
316        } catch (err) {
317            console.log("try catch err =" + err);
318            expect(false).assertTrue();
319        }
320    })
321
322    /**
323     * @tc.name test putSync interface
324     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180
325     * @tc.desc test put interface input parameter value exceed 8192byte.
326     */
327    it('testputSyncIllegal003', 0, function () {
328        let illegalValue = "1";
329        illegalValue = illegalValue.repeat(8193);
330        try {
331            mPref.putSync("test", illegalValue);
332            expect(false).assertTrue();
333        } catch (err) {
334            console.log("try catch err =" + err);
335        }
336    })
337
338    /**
339     * @tc.name test putSync interface
340     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180
341     * @tc.desc test put interface input parameter value is legal.
342     */
343    it('testputSyncIllegal004', 0, function () {
344        let legalValue = "1";
345        legalValue = legalValue.repeat(8192);
346        try {
347            mPref.putSync("test", legalValue);
348        } catch (err) {
349            console.log("try catch err =" + err);
350            expect(false).assertTrue();
351        }
352    })
353
354    /**
355     * @tc.name test getSync interface
356     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190
357     * @tc.desc test getSync interface input parameter key exceed 80byte.
358     */
359    it('testgetSyncIllegal001', 0, function () {
360        let illegalkey = "1";
361        illegalkey = illegalkey.repeat(81);
362        try {
363            mPref.getSync(illegalkey, "defaultValue");
364            expect(false).assertTrue();
365        } catch (err) {
366            console.log("try catch err =" + err);
367        }
368    })
369
370    /**
371     * @tc.name test getSync interface
372     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190
373     * @tc.desc test getSync interface input parameter key is legal.
374     */
375    it('testgetSyncIllegal002', 0, function () {
376        let legalkey = "1";
377        legalkey = legalkey.repeat(80);
378        try {
379            mPref.getSync(legalkey, "defaultValue");
380        } catch (err) {
381            console.log("try catch err =" + err);
382            expect(false).assertTrue();
383        }
384    })
385
386    /**
387     * @tc.name test deleteSync interface
388     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200
389     * @tc.desc test deleteSync interface input parameter key exceed 80byte.
390     */
391    it('testdeleteSyncIllegal001', 0, function () {
392        let illegalkey = "1";
393        illegalkey = illegalkey.repeat(81);
394        try {
395            mPref.deleteSync(illegalkey);
396            expect(false).assertTrue();
397        } catch (err) {
398            console.log("try catch err =" + err);
399        }
400    })
401
402    /**
403     * @tc.name test deleteSync interface
404     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200
405     * @tc.desc test deleteSync interface input parameter key is legal.
406     */
407    it('testdeleteSyncIllegal002', 0, function () {
408        let legalkey = "1";
409        legalkey = legalkey.repeat(80);
410        try {
411            mPref.deleteSync(legalkey);
412        } catch (err) {
413            console.log("try catch err =" + err);
414            expect(false).assertTrue();
415        }
416    })
417
418    /**
419     * @tc.name test hasSync interface
420     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0210
421     * @tc.desc test hasSync interface input parameter key exceed 80byte.
422     */
423    it('testhasSyncIllegal001', 0, function () {
424        let illegalkey = "1";
425        illegalkey = illegalkey.repeat(81);
426        try {
427            mPref.hasSync(illegalkey);
428            expect(false).assertTrue();
429        } catch (err) {
430            console.log("try catch err =" + err);
431        }
432    })
433
434    /**
435     * @tc.name test hasSync interface
436     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0210
437     * @tc.desc test hasSync interface input parameter key is legal.
438     */
439    it('testhasSyncIllegal002', 0, function () {
440        let legalkey = "1";
441        legalkey = legalkey.repeat(80);
442        try {
443            mPref.hasSync(legalkey);
444        } catch (err) {
445            console.log("try catch err =" + err);
446            expect(false).assertTrue();
447        }
448    })
449})
450