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}