• 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 '@ohos/hypium'
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_STRING_ELEMENT = 'key_test_string'
22var mPreference = undefined
23var context
24export default function preferencesV9CallbackTest(){
25describe('preferencesV9CallbackTest', async function () {
26    beforeAll(async function () {
27        console.info('beforeAll')
28        context = featureAbility.getContext()
29        mPreference = await data_preferences.getPreferences(context, NAME)
30    })
31
32    afterAll(async function () {
33        console.info('afterAll')
34        await data_preferences.deletePreferences(context, NAME)
35    })
36
37     /**
38     * @tc.name has、delete、get、flush String callback interface test
39     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0100
40     * @tc.desc flush String callback interface test
41     */
42    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0100', 0, function (done) {
43        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0100 begin.")
44        try{
45            mPreference.clear(function (err, val) {
46                if(err){
47                    console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message)
48                    expect(false).assertTrue()
49                }
50                mPreference.put(KEY_TEST_STRING_ELEMENT, 'abc', function (err, ret) {
51                    if(err){
52                        console.log("put err =" + err + ", code =" + err.code +", message =" + err.message)
53                        expect(false).assertTrue()
54                    }
55                    mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) {
56                        if(err){
57                            console.log("get err =" + err + ", code =" + err.code +", message =" + err.message)
58                            expect(false).assertTrue()
59                        }
60                        expect('abc').assertEqual(pre)
61                        mPreference.flush(function (err, val) {
62                            if(err){
63                                console.log("flush err =" + err + ", code =" + err.code +", message =" + err.message)
64                                expect(false).assertTrue()
65                            }
66                            data_preferences.removePreferencesFromCache(context, NAME,(err)=>{
67                                if(err){
68                                    console.log("removePreferencesFromCache err =" + err + ", code =" + err.code +", message =" + err.message)
69                                    expect(false).assertTrue()
70                                }
71                                mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) {
72                                    if(err){
73                                        console.log("get err =" + err + ", code =" + err.code +", message =" + err.message)
74                                        expect(false).assertTrue()
75                                    }
76                                    expect('abc').assertEqual(pre2)
77                                    done()
78                                    console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0100 end.")
79                                })
80                            })
81                        })
82                    })
83                })
84            })
85        } catch(err) {
86            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
87            expect(false).assertTrue()
88        }
89    })
90
91    /**
92     * @tc.name mPreference.get()
93     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0200
94     * @tc.desc mPreference.get()
95     */
96    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0200', 0, function (done) {
97        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0200 begin.")
98        try {
99            mPreference.get(123, function (err, val) {
100                if (err) {
101                    console.log("get err =" + err + ", code =" + err.code + ", message =" + err.message)
102                    expect(false).assertTrue()
103                }
104                expect(true).assertEqual(val)
105            })
106        } catch (err) {
107            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
108            done()
109            console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0200 end.")
110        }
111    })
112
113    /**
114     * @tc.name mPreference.get()
115     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0300
116     * @tc.desc mPreference.get()
117     */
118    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0300', 0, function (done) {
119        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0300 begin.")
120        try {
121            mPreference.get(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT, function (err, val) {
122                if (err) {
123                    console.log("get err =" + err + ", code =" + err.code + ", message =" + err.message)
124                    expect(false).assertTrue()
125                }
126                expect('abc').assertEqual(val)
127                done()
128                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0300 end.")
129            })
130        } catch (err) {
131            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
132            expect(false).assertTrue()
133        }
134    })
135
136    /**
137     * @tc.name mPreference.getAll()
138     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0400
139     * @tc.desc mPreference.getAll()
140     */
141    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0400', 0, function (done) {
142        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0400 begin.")
143        try {
144            mPreference.getAll(function (err, val) {
145                if (err) {
146                    console.log("getAll err =" + err + ", code =" + err.code + ", message =" + err.message)
147                    expect(false).assertTrue()
148                }
149                console.log("getAll val = " + JSON.stringify(val))
150                done()
151                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0400 end.")
152            })
153        } catch (err) {
154            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
155            expect(false).assertTrue()
156        }
157        done()
158    })
159
160    /**
161     * @tc.name mPreference.has()
162     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0500
163     * @tc.desc mPreference.has()
164     */
165    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0500', 0, function (done) {
166        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0500 begin.")
167        try{
168            mPreference.has(123,function (err, val) {
169                console.log("has err")
170                expect(false).assertTrue()
171            })
172        } catch(err) {
173            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
174            done()
175            console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0500 end.")
176        }
177    })
178
179    /**
180     * @tc.name mPreference.has()
181     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0600
182     * @tc.desc mPreference.has()
183     */
184    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0600', 0, function (done) {
185        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0600 begin.")
186        try{
187            mPreference.has(KEY_TEST_STRING_ELEMENT, function (err, val) {
188                if (err) {
189                    console.log("has err =" + err + ", code =" + err.code +", message =" + err.message)
190                    expect(false).assertTrue()
191                }
192                expect(true).assertEqual(val)
193                done()
194                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0600 end.")
195            })
196        } catch(err) {
197            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
198            expect(false).assertTrue()
199        }
200    })
201
202    /**
203     * @tc.name mPreference.put()
204     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0700
205     * @tc.desc mPreference.put()
206     */
207    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0700', 0, function (done) {
208        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0700 begin.")
209        try{
210            mPreference.put(123, function (err) {
211                console.log("put err")
212                expect(false).assertTrue()
213            })
214        } catch(err) {
215            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
216            done()
217            console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0700 end.")
218        }
219    })
220
221    /**
222     * @tc.name mPreference.put()
223     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0800
224     * @tc.desc mPreference.put()
225     */
226    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0800', 0, function (done) {
227        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0800 begin.")
228        try{
229            mPreference.put(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT, function (err) {
230                if (err) {
231                    console.log("put err =" + err + ", code =" + err.code +", message =" + err.message)
232                    expect(false).assertTrue()
233                }
234                done()
235                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0800 end.")
236            })
237        } catch(err) {
238            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
239            expect(false).assertTrue()
240        }
241    })
242
243    /**
244     * @tc.name mPreference.delete()
245     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_0900
246     * @tc.desc mPreference.delete()
247     */
248    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_0900', 0, function (done) {
249        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0900 begin.")
250        try{
251            mPreference.delete(1233, function(err) {
252                if (err) {
253                    console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message)
254                    expect(false).assertTrue()
255                }
256                console.log("delete err")
257                expect(false).assertTrue()
258            })
259        } catch(err) {
260            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
261            done()
262            console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_0900 end.")
263        }
264    })
265
266    /**
267     * @tc.name mPreference.delete()
268     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1000
269     * @tc.desc mPreference.delete()
270     */
271    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1000', 0, function (done) {
272        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1000 begin.")
273        try{
274            mPreference.delete(KEY_TEST_STRING_ELEMENT, function(err) {
275                if (err) {
276                    console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message)
277                    expect(false).assertTrue()
278                }
279                done()
280                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1000 end.")
281            })
282        } catch(err) {
283            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
284            expect(false).assertTrue()
285        }
286    })
287
288    /**
289     * @tc.name mPreference.clear()
290     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1100
291     * @tc.desc mPreference.clear()
292     */
293    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1100', 0, function (done) {
294        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1100 begin.")
295        try{
296            mPreference.clear(function (err) {
297                if (err) {
298                    console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message)
299                    expect(false).assertTrue()
300                }
301                done()
302                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1100 end.")
303            })
304        } catch(err) {
305            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
306            expect(false).assertTrue()
307        }
308    })
309
310    /**
311     * @tc.name mPreference.flush()
312     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1200
313     * @tc.desc mPreference.flush()
314     */
315    it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1200', 0, function (done) {
316        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1200 begin.")
317        try{
318            mPreference.flush(function (err) {
319                if (err) {
320                    console.log("flush err =" + err + ", code =" + err.code +", message =" + err.message)
321                    expect(false).assertTrue()
322                }
323                done()
324                console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1200 end.")
325            })
326        } catch(err) {
327            console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message)
328            expect(false).assertTrue()
329        }
330    })
331
332     /**
333     * @tc.name mPreference.on()
334     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1300
335     * @tc.desc mPreference.on()
336     */
337      it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1300', 0, async function () {
338        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1300 begin.")
339        try {
340            mPreference.clear();
341            var observer = function (key) {
342                if (key) {
343                    console.info('SUB_DDM_JSPREFERENCEV9_CALLBACK_1300 key' + key);
344                    expect(false).assertTrue()
345                }
346                expect("abcd").assertEqual(key);
347            };
348            await mPreference.on('change', observer);
349            await mPreference.put(KEY_TEST_STRING_ELEMENT, "abcd");
350            mPreference.off('change', observer);
351        } catch (error) {
352            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
353            expect(false).assertTrue()
354        }
355    })
356
357     /**
358     * @tc.name mPreference.on()
359     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1400
360     * @tc.desc mPreference.on()
361     */
362      it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1400', 0, async function (done) {
363        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1400 begin.")
364        await mPreference.clear();
365        try {
366            var observer = function (key) {
367                console.info('SUB_DDM_JSPREFERENCEV9_CALLBACK_1400 key' + key);
368                done();
369                expect(KEY_TEST_STRING_ELEMENT).assertEqual(key);
370            };
371            mPreference.on('change', observer);
372            await mPreference.put(KEY_TEST_STRING_ELEMENT, "abc");
373            await mPreference.flush();
374        } catch (err) {
375            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
376            expect(false).assertTrue()
377        } finally {
378            mPreference.off('change', observer);
379        }
380    })
381
382     /**
383     * @tc.name mPreference.off()
384     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1500
385     * @tc.desc mPreference.off()
386     */
387      it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1500', 0, async function (done) {
388        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1500 begin.")
389        await mPreference.clear();
390        try {
391            var observer = function (key) {
392                console.info('SUB_DDM_JSPREFERENCEV9_CALLBACK_1500 key' + key);
393                expect(KEY_TEST_STRING_ELEMENT).assertEqual(key);
394            };
395            mPreference.on('sschange', observer);
396            expect(false).assertTrue()
397        } catch (err) {
398            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
399            done();
400        }
401    })
402
403     /**
404     * @tc.name  mPreference.off()
405     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1600
406     * @tc.desc  mPreference.off()
407     */
408      it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1600', 0, async function (done) {
409        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1600 begin.")
410        try {
411            var observer = function (key) {
412                console.info('SUB_DDM_JSPREFERENCEV9_CALLBACK_1600 key' + key);
413            };
414            mPreference.on('change', observer);
415            mPreference.off('sschange', observer);
416            expect(false).assertTrue()
417            await mPreference.put(KEY_TEST_STRING_ELEMENT, "abb");
418            await mPreference.flush();
419        } catch (err) {
420            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
421            mPreference.off('change', observer);
422        }
423        done();
424    })
425
426    /**
427     * @tc.name  mPreference.off()
428     * @tc.number SUB_DDM_JSPREFERENCEV9_CALLBACK_1700
429     * @tc.desc  mPreference.off()
430     */
431     it('SUB_DDM_JSPREFERENCEV9_CALLBACK_1700', 0, async function (done) {
432        console.log("SUB_DDM_JSPREFERENCEV9_CALLBACK_1700 begin.")
433        try {
434            var observer = function (key) {
435                console.info('SUB_DDM_JSPREFERENCEV9_CALLBACK_1700 key' + key);
436            };
437            mPreference.on('change', observer);
438            mPreference.off('change', "observer");
439            expect(false).assertTrue()
440            await mPreference.put(KEY_TEST_STRING_ELEMENT, "abb");
441            await mPreference.flush();
442        } catch (err) {
443            console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message)
444            mPreference.off('change', observer);
445        }
446        done();
447    })
448})
449}