• 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 = 'v9_test_preferences_callback'
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 mPreference = undefined
29var context
30
31const ILLEGAL_CHAR_8 = '12345678'
32const ILLEGAL_CHAR_1024 = ILLEGAL_CHAR_8.repeat(128);
33const ILLEGAL_CHAR_1025 = ILLEGAL_CHAR_1024 + '1';
34const ILLEGAL_CHAR_LARGEST = ILLEGAL_CHAR_1024.repeat(16 * 1024);
35const ILLEGAL_CHAR_INVALID = ILLEGAL_CHAR_LARGEST + '1';
36
37describe('V9_PreferencesCallBackJsunit', async function () {
38    beforeAll(async function () {
39        console.info('beforeAll')
40        context = featureAbility.getContext()
41        mPreference = await data_preferences.getPreferences(context, NAME)
42    })
43
44    afterAll(async function () {
45        console.info('afterAll')
46        await data_preferences.deletePreferences(context, NAME)
47    })
48
49     /**
50     * @tc.name has、delete、get、flush String callback interface test
51     * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120
52     * @tc.desc flush String callback interface test
53     */
54
55    it('testPreferencesCallback001', 0, function (done) {
56        console.log("testPreferencesCallback001 begin.")
57        try{
58            mPreference.clear(function (err, val) {
59                if(err){
60                    console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message)
61                    expect(false).assertTrue()
62                }
63                mPreference.put(KEY_TEST_STRING_ELEMENT, 'abc', function (err, ret) {
64                    if(err){
65                        console.log("put err =" + err + ", code =" + err.code +", message =" + err.message)
66                        expect(false).assertTrue()
67                    }
68                    mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) {
69                        if(err){
70                            console.log("get err =" + err + ", code =" + err.code +", message =" + err.message)
71                            expect(false).assertTrue()
72                        }
73                        expect('abc').assertEqual(pre)
74                        mPreference.flush(function (err, val) {
75                            if(err){
76                                console.log("flush err =" + err + ", code =" + err.code +", message =" + err.message)
77                                expect(false).assertTrue()
78                            }
79                            data_preferences.removePreferencesFromCache(context, NAME,(err)=>{
80                                if(err){
81                                    console.log("removePreferencesFromCache err =" + err + ", code =" + err.code +", message =" + err.message)
82                                    expect(false).assertTrue()
83                                }
84                                mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) {
85                                    if(err){
86                                        console.log("get err =" + err + ", code =" + err.code +", message =" + err.message)
87                                        expect(false).assertTrue()
88                                    }
89                                    expect('abc').assertEqual(pre2)
90                                    done()
91                                    console.log("testPreferencesCallback001 end.")
92                                })
93                            })
94                        })
95                    })
96                })
97            })
98        } catch(err) {
99            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
100            expect(false).assertTrue()
101        }
102    })
103
104    // get err parsers
105    it('testPreferencesCallback002', 0, function (done) {
106        console.log("testPreferencesCallback002 begin.")
107        try {
108            mPreference.get(123, function (err, val) {
109                if (err) {
110                    console.log("get err =" + err + ", code =" + err.code + ", message =" + err.message)
111                    expect(false).assertTrue()
112                }
113                expect(true).assertEqual(val)
114            })
115        } catch (err) {
116            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
117            done()
118            console.log("testPreferencesCallback002 end.")
119        }
120    })
121
122    // get OK parsers
123    it('testPreferencesCallback003', 0, function (done) {
124        console.log("testPreferencesCallback003 begin.")
125        try {
126            mPreference.get(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT, function (err, val) {
127                if (err) {
128                    console.log("get err =" + err + ", code =" + err.code + ", message =" + err.message)
129                    expect(false).assertTrue()
130                }
131                expect('abc').assertEqual(val)
132                done()
133                console.log("testPreferencesCallback003 end.")
134            })
135        } catch (err) {
136            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
137            expect(false).assertTrue()
138        }
139    })
140
141    // getAll
142    it('testPreferencesCallback004', 0, function (done) {
143        console.log("testPreferencesCallback004 begin.")
144        try {
145            mPreference.getAll(function (err, val) {
146                if (err) {
147                    console.log("getAll err =" + err + ", code =" + err.code + ", message =" + err.message)
148                    expect(false).assertTrue()
149                }
150                console.log("getAll val = " + JSON.stringify(val))
151                done()
152                console.log("testPreferencesCallback004 end.")
153            })
154        } catch (err) {
155            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
156            expect(false).assertTrue()
157        }
158        done()
159    })
160
161    // has Error parsers
162    it('testPreferencesCallback005', 0, function (done) {
163        console.log("testPreferencesCallback005 begin.")
164        try{
165            mPreference.has(123,function (err, val) {
166                console.log("has err")
167                expect(false).assertTrue()
168            })
169        } catch(err) {
170            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
171            done()
172            console.log("testPreferencesCallback005 end.")
173        }
174    })
175
176    // has OK parsers
177    it('testPreferencesCallback006', 0, function (done) {
178        console.log("testPreferencesCallback006 begin.")
179        try{
180            mPreference.has(KEY_TEST_STRING_ELEMENT, function (err, val) {
181                if (err) {
182                    console.log("has err =" + err + ", code =" + err.code +", message =" + err.message)
183                    expect(false).assertTrue()
184                }
185                expect(true).assertEqual(val)
186                done()
187                console.log("testPreferencesCallback006 end.")
188            })
189        } catch(err) {
190            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
191            expect(false).assertTrue()
192        }
193    })
194
195    // put Error parsers
196    it('testPreferencesCallback007', 0, function (done) {
197        console.log("testPreferencesCallback007 begin.")
198        try{
199            mPreference.put(123, function (err) {
200                console.log("put err")
201                expect(false).assertTrue()
202            })
203        } catch(err) {
204            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
205            done()
206            console.log("testPreferencesCallback007 end.")
207        }
208    })
209
210    // put OK parsers
211    it('testPreferencesCallback008', 0, function (done) {
212        console.log("testPreferencesCallback008 begin.")
213        try{
214            mPreference.put(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT, function (err) {
215                if (err) {
216                    console.log("put err =" + err + ", code =" + err.code +", message =" + err.message)
217                    expect(false).assertTrue()
218                }
219                done()
220                console.log("testPreferencesCallback008 end.")
221            })
222        } catch(err) {
223            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
224            expect(false).assertTrue()
225        }
226    })
227
228    //delete Error parsers
229    it('testPreferencesCallback009', 0, function (done) {
230        console.log("testPreferencesCallback009 begin.")
231        try{
232            mPreference.delete(1233, function(err) {
233                if (err) {
234                    console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message)
235                    expect(false).assertTrue()
236                }
237                console.log("delete err")
238                expect(false).assertTrue()
239            })
240        } catch(err) {
241            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
242            done()
243            console.log("testPreferencesCallback009 end.")
244        }
245    })
246
247    //delete OK parsers
248    it('testPreferencesCallback010', 0, function (done) {
249        console.log("testPreferencesCallback010 begin.")
250        try{
251            mPreference.delete(KEY_TEST_STRING_ELEMENT, function(err) {
252                if (err) {
253                    console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message)
254                    expect(false).assertTrue()
255                }
256                done()
257                console.log("testPreferencesCallback010 end.")
258            })
259        } catch(err) {
260            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
261            expect(false).assertTrue()
262        }
263    })
264
265    // clear
266    it('testPreferencesCallback011', 0, function (done) {
267        console.log("testPreferencesCallback011 begin.")
268        try{
269            mPreference.clear(function (err) {
270                if (err) {
271                    console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message)
272                    expect(false).assertTrue()
273                }
274                done()
275                console.log("testPreferencesCallback011 end.")
276            })
277        } catch(err) {
278            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
279            expect(false).assertTrue()
280        }
281    })
282
283    // flush
284    it('testPreferencesCallback012', 0, function (done) {
285        console.log("testPreferencesCallback012 begin.")
286        try{
287            mPreference.flush(function (err) {
288                if (err) {
289                    console.log("flush err =" + err + ", code =" + err.code +", message =" + err.message)
290                    expect(false).assertTrue()
291                }
292                done()
293                console.log("testPreferencesCallback012 end.")
294            })
295        } catch(err) {
296            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
297            expect(false).assertTrue()
298        }
299    })
300
301    /**
302     * @tc.name test put interface
303     * @tc.desc test put interface input parameter is illegal.
304     */
305    it('testPreferencesPutIllegal0001', 0, async function (done) {
306        let illegalKey = 123;
307        let legalValue = "test";
308        try {
309            mPreference.put(illegalKey, legalValue, (ret) => {
310                done();
311            });
312        } catch (err) {
313            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
314            expect("401").assertEqual(err.code.toString());
315            done();
316        }
317    })
318
319    /**
320     * @tc.name test put interface
321     * @tc.desc test put interface input parameter is illegal.
322     */
323    it('testPreferencesPutIllegal0002', 0, async function (done) {
324        let illegalKey = true;
325        let legalValue = "test";
326        try {
327            mPreference.put(illegalKey, legalValue, (ret) => {
328                done();
329            });
330        } catch (err) {
331            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
332            expect("401").assertEqual(err.code.toString());
333            done();
334        }
335    })
336
337    /**
338     * @tc.name test put interface
339     * @tc.desc test put interface input parameter key exceed 1024 bytes.
340     */
341    it('testPreferencesPutIllegal0003', 0, async function (done) {
342        try {
343            mPreference.put(ILLEGAL_CHAR_1025, "123456", (ret) => {
344                done();
345            });
346        } catch (err) {
347            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
348            expect("401").assertEqual(err.code.toString());
349            done();
350        }
351    })
352
353    /**
354     * @tc.name test put interface
355     * @tc.desc test put interface input parameter key is legal.
356     */
357    it('testPreferencesPutIllegal0004', 0, async function (done) {
358        try {
359            mPreference.put(ILLEGAL_CHAR_1024, "123456", (ret) => {
360                done();
361            });
362        } catch (err) {
363            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
364            expect(false).assertEqual(true);
365            done();
366        }
367    })
368
369    /**
370     * @tc.name test put interface
371     * @tc.desc test put interface input parameter value exceed 16 * 1024 * 1024 bytes.
372     */
373    it('testPreferencesPutIllegal0005', 0, async function (done) {
374        try {
375            mPreference.put("test", ILLEGAL_CHAR_INVALID, (ret) => {
376                done();
377            });
378        } catch (err) {
379            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
380            expect("401").assertEqual(err.code.toString());
381            done();
382        }
383    })
384
385    /**
386     * @tc.name test put interface
387     * @tc.desc test put interface input parameter value is legal.
388     */
389    it('testPreferencesPutIllegal0006', 0, async function (done) {
390        try {
391            mPreference.put("test", ILLEGAL_CHAR_LARGEST, (ret) => {
392                done();
393            });
394        } catch (err) {
395            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
396            expect(false).assertEqual(true);
397            done();
398        }
399    })
400
401    /**
402     * @tc.name test get interface
403     * @tc.desc test get interface input parameter is illegal.
404     */
405    it('testPreferencesGetIllegal0001', 0, async function (done) {
406        let illegalKey = true;
407        try {
408            mPreference.get(illegalKey, "defaultValue", (ret) => {
409                done();
410            });
411        } catch (err) {
412            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
413            expect("401").assertEqual(err.code.toString());
414            done();
415        }
416    })
417
418    /**
419     * @tc.name test get interface
420     * @tc.desc test get interface input parameter is illegal.
421     */
422    it('testPreferencesGetIllegal0002', 0, async function (done) {
423        let illegalKey = 123;
424        try {
425            mPreference.get(illegalKey, "defaultValue", (ret) => {
426                done();
427            });
428        } catch (err) {
429            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
430            expect("401").assertEqual(err.code.toString());
431            done();
432        }
433    })
434
435    /**
436     * @tc.name test get interface
437     * @tc.desc test get interface input parameter key exceed 1024 bytes.
438     */
439    it('testPreferencesGetIllegal0003', 0, async function (done) {
440        try {
441            mPreference.get(ILLEGAL_CHAR_1025, "defaultValue", (ret) => {
442                done();
443            });
444        } catch (err) {
445            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
446            expect("401").assertEqual(err.code.toString());
447            done();
448        }
449    })
450
451    /**
452     * @tc.name test get interface
453     * @tc.desc test get interface input parameter key is legal.
454     */
455    it('testPreferencesGetIllegal0004', 0, async function (done) {
456        try {
457            mPreference.get(ILLEGAL_CHAR_1024, "defaultValue", (ret) => {
458                done();
459            });
460        } catch (err) {
461            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
462            expect(false).assertEqual(true);
463            done();
464        }
465    })
466
467    /**
468     * @tc.name test delete interface
469     * @tc.desc test delete interface input parameter is illegal.
470     */
471    it('testPreferencesDeleteIllegal0001', 0, async function (done) {
472        let illegalKey = 123;
473        try {
474            mPreference.delete(illegalKey, (ret) => {
475                done();
476            });
477        } catch (err) {
478            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
479            expect("401").assertEqual(err.code.toString());
480            done();
481        }
482    })
483
484    /**
485     * @tc.name test delete interface
486     * @tc.desc test delete interface input parameter is illegal.
487     */
488    it('testPreferencesDeleteIllegal0002', 0, async function (done) {
489        let illegalKey = false;
490        try {
491            mPreference.delete(illegalKey, (ret) => {
492                done();
493            });
494        } catch (err) {
495            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
496            expect("401").assertEqual(err.code.toString());
497            done();
498        }
499    })
500
501    /**
502     * @tc.name test delete interface
503     * @tc.desc test delete interface input parameter key exceed 1024 bytes.
504     */
505    it('testPreferencesDeleteIllegal0003', 0, async function (done) {
506        try {
507            mPreference.delete(ILLEGAL_CHAR_1025, (ret) => {
508                done();
509            });
510        } catch (err) {
511            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
512            expect("401").assertEqual(err.code.toString());
513            done();
514        }
515    })
516
517    /**
518     * @tc.name test delete interface
519     * @tc.desc test delete interface input parameter key is legal.
520     */
521    it('testPreferencesDeleteIllegal0004', 0, async function (done) {
522        try {
523            mPreference.delete(ILLEGAL_CHAR_1024, (ret) => {
524                done();
525            });
526        } catch (err) {
527            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
528            expect(false).assertEqual(true);
529            done();
530        }
531    })
532
533    /**
534     * @tc.name test has interface
535     * @tc.desc test has interface input parameter is illegal.
536     */
537    it('testPreferencesHasIllegal0001', 0, async function (done) {
538        let illegalKey = false;
539        try {
540            mPreference.has(illegalKey, (ret) => {
541                done();
542            });
543        } catch (err) {
544            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
545            expect("401").assertEqual(err.code.toString());
546            done();
547        }
548    })
549
550    /**
551     * @tc.name test has interface
552     * @tc.desc test has interface input parameter is illegal.
553     */
554    it('testPreferencesHasIllegal0002', 0, async function (done) {
555        let illegalKey = 123;
556        try {
557            mPreference.has(illegalKey, (ret) => {
558                done();
559            });
560        } catch (err) {
561            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
562            expect("401").assertEqual(err.code.toString());
563            done();
564        }
565    })
566
567    /**
568     * @tc.name test has interface
569     * @tc.desc test has interface input parameter key exceed 1024 bytes.
570     */
571    it('testPreferencesHasIllegal0003', 0, async function (done) {
572        try {
573            mPreference.has(ILLEGAL_CHAR_1025, (ret) => {
574                done();
575            });
576        } catch (err) {
577            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
578            expect("401").assertEqual(err.code.toString());
579            done();
580        }
581    })
582
583    /**
584     * @tc.name test has interface
585     * @tc.desc test has interface input parameter key is legal.
586     */
587    it('testPreferencesHasIllegal0004', 0, async function (done) {
588        try {
589            mPreference.has(ILLEGAL_CHAR_1024, (ret) => {
590                done();
591            });
592        } catch (err) {
593            console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message);
594            expect(false).assertEqual(true);
595            done();
596        }
597    })
598})