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 util from '@ohos.util'; 18import featureAbility from '@ohos.ability.featureAbility'; 19 20const NAME = 'test_preferences'; 21const KEY_TEST_INT_ELEMENT = 'key_test_int'; 22const KEY_TEST_LONG_ELEMENT = 'key_test_long'; 23const KEY_TEST_FLOAT_ELEMENT = 'key_test_float'; 24const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean'; 25const KEY_TEST_STRING_ELEMENT = 'key_test_string'; 26const KEY_TEST_NUMBER_ARRAY_ELEMENT = 'key_test_number_array'; 27const KEY_TEST_STRING_ARRAY_ELEMENT = 'key_test_string_array'; 28const KEY_TEST_BOOL_ARRAY_ELEMENT = 'key_test_bool_array'; 29const KEY_TEST_UINT8ARRAY = 'key_test_uint8array'; 30const KEY_TEST_BIGINT = 'key_test_bigint'; 31var mPreferences; 32var context; 33 34const TAG = '[PREFERENCES_CALLBACK_JSUNIT_TEST]' 35 36describe('PreferencesCallBackJsunit', function () { 37 beforeAll(function () { 38 console.info('beforeAll') 39 context = featureAbility.getContext() 40 }) 41 42 beforeEach(async function () { 43 console.info('beforeEach'); 44 mPreferences = await data_preferences.getPreferences(context, NAME); 45 }) 46 47 afterEach(async function () { 48 console.info('afterEach'); 49 await data_preferences.deletePreferences(context, NAME); 50 }) 51 52 afterAll(function () { 53 console.info('afterAll') 54 }) 55 56 /** 57 * @tc.name clear callback interface test 58 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0010 59 * @tc.desc clear callback interface test 60 */ 61 it('testPreferencesClear0012', 0, async function (done) { 62 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 63 await mPreferences.flush(); 64 mPreferences.clear(async function (err, ret) { 65 let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 66 expect("defaultvalue").assertEqual(pre); 67 done(); 68 }); 69 }) 70 71 /** 72 * @tc.name has string callback interface test 73 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0020 74 * @tc.desc has string callback interface test 75 */ 76 it('testPreferencesHasKey0032', 0, async function (done) { 77 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 78 mPreferences.has(KEY_TEST_STRING_ELEMENT, function (err, ret) { 79 expect(true).assertEqual(ret); 80 done(); 81 }) 82 }) 83 84 /** 85 * @tc.name has int callback interface test 86 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0130 87 * @tc.desc has int callback interface test 88 */ 89 it('testPreferencesHasKey0033', 0, async function (done) { 90 await mPreferences.put(KEY_TEST_INT_ELEMENT, 1); 91 mPreferences.has(KEY_TEST_INT_ELEMENT, function (err, ret) { 92 expect(true).assertEqual(ret); 93 done(); 94 }) 95 }) 96 97 /** 98 * @tc.name has float callback interface test 99 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140 100 * @tc.desc has float callback interface test 101 */ 102 it('testPreferencesHasKey0034', 0, async function (done) { 103 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 1.1); 104 mPreferences.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) { 105 expect(true).assertEqual(ret); 106 done(); 107 }) 108 }) 109 110 /** 111 * @tc.name has long callback interface test 112 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0150 113 * @tc.desc has long callback interface test 114 */ 115 it('testPreferencesHasKey0035', 0, async function (done) { 116 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0); 117 mPreferences.has(KEY_TEST_LONG_ELEMENT, function (err, ret) { 118 expect(true).assertEqual(ret); 119 done(); 120 }) 121 }) 122 123 /** 124 * @tc.name has boolean callback interface test 125 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0160 126 * @tc.desc has boolean callback interface test 127 */ 128 it('testPreferencesHasKey0036', 0, async function (done) { 129 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false); 130 mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) { 131 expect(true).assertEqual(ret); 132 done(); 133 }) 134 }) 135 136 /** 137 * @tc.name get defaultValue callback interface test 138 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0030 139 * @tc.desc get defaultValue callback interface test 140 */ 141 it('testPreferencesGetDefValue0062', 0, async function (done) { 142 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) { 143 expect('defaultValue').assertEqual(ret); 144 done(); 145 }) 146 }) 147 148 /** 149 * @tc.name get float callback interface test 150 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0040 151 * @tc.desc get float callback interface test 152 */ 153 it('testPreferencesGetFloat0072', 0, async function (done) { 154 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0); 155 mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) { 156 expect(3.0).assertEqual(ret); 157 done(); 158 }) 159 }) 160 161 /** 162 * @tc.name get int callback interface test 163 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0050 164 * @tc.desc get int callback interface test 165 */ 166 it('testPreferencesGetInt0082', 0, async function (done) { 167 await mPreferences.put(KEY_TEST_INT_ELEMENT, 3); 168 mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) { 169 expect(3).assertEqual(ret); 170 done(); 171 }) 172 }) 173 174 /** 175 * @tc.name get long callback interface test 176 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0060 177 * @tc.desc get long callback interface test 178 */ 179 it('testPreferencesGetLong0092', 0, async function (done) { 180 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3); 181 let pref = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0) 182 expect(3).assertEqual(pref); 183 mPreferences.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) { 184 expect(3).assertEqual(ret); 185 done(); 186 }); 187 }) 188 189 /** 190 * @tc.name get String callback interface test 191 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0070 192 * @tc.desc get String callback interface test 193 */ 194 it('testPreferencesGetString102', 0, async function (done) { 195 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 196 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) { 197 expect('test').assertEqual(ret); 198 done(); 199 }); 200 }) 201 202 /** 203 * @tc.name get Uint8Array callback interface test 204 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140 205 * @tc.desc get Uint8Array callback interface test 206 */ 207 it('testPreferencesGetUint8Array103', 0, async function (done) { 208 let uInt8Array = new util.TextEncoder().encodeInto("π\\n\\b@.(){},"); 209 await mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array); 210 mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0), function (err, ret) { 211 expect(uInt8Array.toString() === ret.toString()).assertTrue(); 212 done(); 213 }); 214 }) 215 216 /** 217 * @tc.name put boolean callback interface test 218 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 219 * @tc.desc put boolean callback interface test 220 */ 221 it('testPreferencesPutBoolean0122', 0, async function (done) { 222 mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true, async function (err, ret) { 223 let pre = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false); 224 expect(true).assertEqual(pre); 225 await mPreferences.flush(); 226 await data_preferences.removePreferencesFromCache(context, NAME); 227 mPreferences = null; 228 mPreferences = await data_preferences.getPreferences(context, NAME); 229 let pre2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false); 230 done(); 231 expect(true).assertEqual(pre2); 232 }); 233 }) 234 235 /** 236 * @tc.name put float callback interface test 237 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0090 238 * @tc.desc put float callback interface test 239 */ 240 it('testPreferencesPutFloat0132', 0, async function (done) { 241 mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0, async function (err, ret) { 242 let pre = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 243 expect(4.0).assertEqual(pre); 244 await mPreferences.flush(); 245 await data_preferences.removePreferencesFromCache(context, NAME); 246 mPreferences = null; 247 mPreferences = await data_preferences.getPreferences(context, NAME); 248 let pre2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 249 done(); 250 expect(4.0).assertEqual(pre2); 251 }); 252 }) 253 254 /** 255 * @tc.name put int callback interface test 256 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0100 257 * @tc.desc put int callback interface test 258 */ 259 it('testPreferencesPutInt0142', 0, async function (done) { 260 await mPreferences.put(KEY_TEST_INT_ELEMENT, 4, async function (err, ret) { 261 let pre = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 262 expect(4).assertEqual(pre); 263 await mPreferences.flush(); 264 await data_preferences.removePreferencesFromCache(context, NAME); 265 mPreferences = null; 266 mPreferences = await data_preferences.getPreferences(context, NAME); 267 let pre2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 268 done(); 269 expect(4).assertEqual(pre2); 270 }); 271 }) 272 273 /** 274 * @tc.name put long callback interface test 275 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0110 276 * @tc.desc put long callback interface test 277 */ 278 it('testPreferencesPutLong0152', 0, async function (done) { 279 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4); 280 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4, async function (err, ret) { 281 let pre = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 282 expect(4).assertEqual(pre); 283 await mPreferences.flush(); 284 await data_preferences.removePreferencesFromCache(context, NAME); 285 mPreferences = null; 286 mPreferences = await data_preferences.getPreferences(context, NAME); 287 let pre2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 288 done(); 289 expect(4).assertEqual(pre2); 290 }); 291 }) 292 293 /** 294 * @tc.name put String callback interface test 295 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 296 * @tc.desc put String callback interface test 297 */ 298 it('testPreferencesPutString0162', 0, async function (done) { 299 await mPreferences.put(KEY_TEST_STRING_ELEMENT, '', async function (err, ret) { 300 let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 301 expect('').assertEqual(pre); 302 await mPreferences.flush(); 303 await data_preferences.removePreferencesFromCache(context, NAME); 304 mPreferences = null; 305 mPreferences = await data_preferences.getPreferences(context, NAME); 306 let pre2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 307 done(); 308 expect('').assertEqual(pre2); 309 }); 310 }) 311 312 /** 313 * @tc.name clear、put、get、flush String callback interface test 314 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 315 * @tc.desc flush String callback interface test 316 */ 317 it('testPreferencesCallback0172', 0, function (done) { 318 console.log(TAG + "testPreferencesCallback0172 begin."); 319 mPreferences.clear(function (err, val) { 320 if(err){ 321 expect(null).assertEqual(); 322 } 323 mPreferences.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 324 if(err){ 325 expect(null).assertEqual(); 326 } 327 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) { 328 if(err){ 329 expect(null).assertEqual(); 330 } 331 expect('').assertEqual(pre); 332 mPreferences.flush(function (err, val) { 333 if(err){ 334 expect(null).assertEqual(); 335 } 336 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) { 337 if(err){ 338 expect(null).assertEqual(); 339 } 340 expect('').assertEqual(pre2); 341 done(); 342 console.log(TAG + "testPreferencesCallback0172 end."); 343 }) 344 }); 345 }) 346 }); 347 }); 348 }) 349 350 /** 351 * @tc.name put Uint8Array callback interface test 352 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 353 * @tc.desc put Uint8Array callback interface test 354 */ 355 it('testPreferencesPutUint8Array0182', 0, async function (done) { 356 let uInt8Array = new util.TextEncoder().encodeInto("qweasdzxc@#$%123"); 357 mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array, async function (err, ret) { 358 let pre = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0)); 359 expect(uInt8Array.toString() === pre.toString()).assertTrue(); 360 await mPreferences.flush(); 361 await data_preferences.removePreferencesFromCache(context, NAME); 362 mPreferences = null; 363 mPreferences = await data_preferences.getPreferences(context, NAME); 364 let pre2 = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0)); 365 done(); 366 expect(uInt8Array.toString() === pre2.toString()).assertTrue(); 367 }); 368 }) 369 370 /** 371 * @tc.name put Uint8Array callback interface test 372 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 373 * @tc.desc put Uint8Array callback interface test 374 */ 375 it('testPreferencesPutUint8Array0183', 0, async function (done) { 376 console.log(TAG + "testPreferencesPutUint8Array0183 start."); 377 let uInt8Array = new Uint8Array(16 * 1024 * 1024); 378 uInt8Array.fill(100); 379 mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array, async function (err, ret) { 380 let pre = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0)); 381 expect(uInt8Array.length === pre.length).assertTrue(); 382 expect(100 === pre[0]).assertTrue(); 383 await mPreferences.flush(); 384 await data_preferences.removePreferencesFromCache(context, NAME); 385 mPreferences = null; 386 mPreferences = await data_preferences.getPreferences(context, NAME); 387 let pre2 = await mPreferences.get(KEY_TEST_UINT8ARRAY, new Uint8Array(0)); 388 expect(uInt8Array.length === pre2.length).assertTrue(); 389 expect(100 === pre2[0]).assertTrue(); 390 done(); 391 console.log(TAG + "testPreferencesPutUint8Array0183 end."); 392 }); 393 }) 394 395 /** 396 * @tc.name put Uint8Array callback interface test 397 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 398 * @tc.desc put Uint8Array callback interface test 399 */ 400 it('testPreferencesPutUint8Array0183', 0, async function (done) { 401 let uInt8Array = new Uint8Array(16 * 1024 * 1024 + 1); 402 uInt8Array.fill(100); 403 try { 404 await mPreferences.put(KEY_TEST_UINT8ARRAY, uInt8Array); 405 } catch (err) { 406 console.log("try catch err =" + err + ", code =" + err.code +", message =" + err.message); 407 expect("401").assertEqual(err.code.toString()); 408 done(); 409 } 410 }) 411 412 /** 413 * @tc.name put StringArray callback interface test 414 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0001 415 * @tc.desc put String callback interface test 416 */ 417 it('testPreferencesPutStringArray0001', 0, async function (done) { 418 var stringArr = ['11', '22', '33'] 419 mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr, async function (err, ret) { 420 let pre = await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321']) 421 for (let i = 0; i < stringArr.length; i++) { 422 expect(stringArr[i]).assertEqual(pre[i]); 423 } 424 done(); 425 }); 426 }) 427 428 /** 429 * @tc.name put NumberArray callback interface test 430 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0002 431 * @tc.desc put String callback interface test 432 */ 433 it('testPreferencesPutNumArray0001', 0, async function (done) { 434 var doubleArr = [11, 22, 33] 435 mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr, async function (err, ret) { 436 let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321]) 437 for (let i = 0; i < doubleArr.length; i++) { 438 expect(doubleArr[i]).assertEqual(pre[i]); 439 } 440 done(); 441 }); 442 }) 443 444 /** 445 * @tc.name put BoolArray callback interface test 446 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0003 447 * @tc.desc put String callback interface test 448 */ 449 it('testPreferencesPutBoolArray0001', 0, async function (done) { 450 let boolArr = [true, false, false, true] 451 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr, async function (err, ret) { 452 let pre = await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [true, false]) 453 for (let i = 0; i < boolArr.length; i++) { 454 expect(boolArr[i]).assertEqual(pre[i]); 455 } 456 done(); 457 }); 458 }) 459 460 /** 461 * @tc.name put BigInt callback interface test 462 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004 463 * @tc.desc put Bigint negative test 464 */ 465 it('testPreferencesPutBigInt0001', 0, async function (done) { 466 let bigint = BigInt("-12345678912345678912345678971234567123456"); 467 await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) { 468 let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 469 expect(bigint === pre).assertTrue(); 470 await mPreferences.flush(); 471 await data_preferences.removePreferencesFromCache(context, NAME); 472 mPreferences = null; 473 mPreferences = await data_preferences.getPreferences(context, NAME); 474 let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 475 done(); 476 expect(bigint === pre2).assertTrue(); 477 }); 478 }) 479 480 /** 481 * @tc.name put BigInt callback interface test 482 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0005 483 * @tc.desc put Bigint positive test 484 */ 485 it('testPreferencesPutBigInt0002', 0, async function (done) { 486 let bigint = BigInt("12345678912345678912345678971234567123456"); 487 await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) { 488 let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 489 expect(bigint === pre).assertTrue(); 490 await mPreferences.flush(); 491 await data_preferences.removePreferencesFromCache(context, NAME); 492 mPreferences = null; 493 mPreferences = await data_preferences.getPreferences(context, NAME); 494 let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 495 done(); 496 expect(bigint === pre2).assertTrue(); 497 }); 498 }) 499 500 /** 501 * @tc.name put BigInt callback interface test 502 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0006 503 * @tc.desc put Bigint boundary value test 504 */ 505 it('testPreferencesPutBigInt0003', 0, async function (done) { 506 let bigint = BigInt(Number.MAX_SAFE_INTEGER); 507 await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) { 508 let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 509 expect(bigint === pre).assertTrue(); 510 await mPreferences.flush(); 511 await data_preferences.removePreferencesFromCache(context, NAME); 512 mPreferences = null; 513 mPreferences = await data_preferences.getPreferences(context, NAME); 514 let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 515 done(); 516 expect(bigint === pre2).assertTrue(); 517 }); 518 }) 519 520 /** 521 * @tc.name put BigInt callback interface test 522 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0007 523 * @tc.desc put Bigint boundary value test 524 */ 525 it('testPreferencesPutBigInt0004', 0, async function (done) { 526 let bigint = BigInt(Number.MIN_SAFE_INTEGER); 527 await mPreferences.put(KEY_TEST_BIGINT, bigint, async function (err, ret) { 528 let pre = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 529 expect(bigint === pre).assertTrue(); 530 await mPreferences.flush(); 531 await data_preferences.removePreferencesFromCache(context, NAME); 532 mPreferences = null; 533 mPreferences = await data_preferences.getPreferences(context, NAME); 534 let pre2 = await mPreferences.get(KEY_TEST_BIGINT, BigInt(0)); 535 done(); 536 expect(bigint === pre2).assertTrue(); 537 }); 538 }) 539 540 /** 541 * @tc.name getAll callback interface test 542 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004 543 * @tc.desc getAll callback interface test 544 */ 545 it('testPreferencesGetAll0001', 0, async function (done) { 546 let doubleArr = [11, 22, 33] 547 let stringArr = ['11', '22', '33'] 548 let boolArr = [true, false, false, true] 549 await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr) 550 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr) 551 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr) 552 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false) 553 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123") 554 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1) 555 await mPreferences.getAll(function (err, obj) { 556 expect(false).assertEqual(obj.key_test_boolean) 557 expect("123").assertEqual(obj.key_test_string) 558 expect(123.1).assertEqual(obj.key_test_float) 559 let sArr = obj.key_test_string_array 560 for (let i = 0; i < sArr.length; i++) { 561 expect(sArr[i]).assertEqual(stringArr[i]); 562 } 563 let bArr = obj.key_test_bool_array 564 for (let i = 0; i < bArr.length; i++) { 565 expect(bArr[i]).assertEqual(boolArr[i]); 566 } 567 let nArr = obj.key_test_number_array 568 for (let i = 0; i < nArr.length; i++) { 569 expect(nArr[i]).assertEqual(doubleArr[i]); 570 } 571 done() 572 }) 573 }) 574 575 /** 576 * @tc.name get empty array callback interface test 577 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0131 578 * @tc.desc get empty array callback interface test 579 */ 580 it('testPreferencesGetEmptyArray0001', 0, function (done) { 581 let defaultValue = new Array(); 582 mPreferences.get("mytest", defaultValue, (err, value) => { 583 if (err) { 584 expect(null).assertFail(); 585 done(); 586 } 587 expect(value).assertEqual(defaultValue); 588 done(); 589 }); 590 }) 591 592 /** 593 * @tc.name get empty array callback interface test 594 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0141 595 * @tc.desc flush empty array callback interface test 596 */ 597 it('testPreferencesFlushEmptyArray0001', 0, async function (done) { 598 let value = new Array(); 599 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, value, async function(err, ret) { 600 if (err) { 601 expect(null).assertFail(); 602 done(); 603 } 604 let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue") 605 expect(pre instanceof Array).assertEqual(true); 606 expect(pre.length).assertEqual(0); 607 await mPreferences.flush(); 608 await data_preferences.removePreferencesFromCache(context, NAME); 609 mPreferences = null; 610 mPreferences = await data_preferences.getPreferences(context, NAME); 611 let pre2 = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue") 612 expect(pre2 instanceof Array).assertEqual(true); 613 expect(pre2.length).assertEqual(0); 614 done(); 615 }); 616 }) 617 618 /** 619 * @tc.name get empty array callback interface test 620 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Preferences_0151 621 * @tc.desc flush empty array callback interface test 622 */ 623 it('testPreferencesFlushEmptyArray0002', 0, async function (done) { 624 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, [], async function(err, ret) { 625 if (err) { 626 expect(null).assertFail(); 627 done(); 628 } 629 let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue") 630 expect(pre instanceof Array).assertEqual(true); 631 expect(pre.length).assertEqual(0); 632 await mPreferences.flush(); 633 await data_preferences.removePreferencesFromCache(context, NAME); 634 mPreferences = null; 635 mPreferences = await data_preferences.getPreferences(context, NAME); 636 let pre2 = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, "defaultvalue") 637 expect(pre2 instanceof Array).assertEqual(true); 638 expect(pre2.length).assertEqual(0); 639 done(); 640 }); 641 }) 642})