1/* 2* Copyright (c) 2022-2023 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 dataPreferences from '@ohos.data.preferences'; 17import featureAbility from '@ohos.ability.featureAbility'; 18 19const NAME = 'test_preferences'; 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'; 28let mPreferences; 29let context; 30 31export default function preferencesPromiseTest(){ 32 describe('preferencesPromiseTest', function () { 33 beforeAll(async function () { 34 console.info('beforeAll') 35 context = featureAbility.getContext() 36 }) 37 38 afterAll(async function () { 39 console.info('afterAll') 40 }) 41 42 beforeEach(async function () { 43 console.info('beforeEach') 44 mPreferences = await dataPreferences.getPreferences(context, NAME); 45 }) 46 47 afterEach(async function () { 48 console.info('afterEach') 49 await dataPreferences.deletePreferences(context, NAME); 50 }) 51 52 /** 53 * @tc.name put StringArray promise interface test 54 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0800 55 * @tc.desc put StringArray promise interface test 56 * @tc.size MediumTest 57 * @tc.type Function 58 * @tc.level Level 2 59 */ 60 it('testPreferencesPutStringArray0131', 0, async function (done) { 61 await mPreferences.clear(); 62 var stringArr = ['1', '2', '3']; 63 await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr); 64 await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321']).then((pre) => { 65 for (let i = 0; i < stringArr.length; i++) { 66 expect(stringArr[i]).assertEqual(pre[i]); 67 } 68 done(); 69 }).catch((err) => { 70 expect(null).assertFail(); 71 done(); 72 }) 73 }); 74 75 /** 76 * @tc.name put NumberArray promise interface test 77 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0700 78 * @tc.desc put NumberArray promise interface test 79 * @tc.size MediumTest 80 * @tc.type Function 81 * @tc.level Level 2 82 */ 83 it('testPreferencesPutNumberArray0132', 0, async function (done) { 84 await mPreferences.clear(); 85 var numberArr = [11, 22, 33, 44, 55]; 86 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, numberArr); 87 await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321]).then((pre) => { 88 for (let i = 0; i < numberArr.length; i++) { 89 expect(numberArr[i]).assertEqual(pre[i]); 90 } 91 done(); 92 }).catch((err) => { 93 expect(null).assertFail(); 94 done(); 95 }) 96 }); 97 98 /** 99 * @tc.name put BoolArray promise interface test 100 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0600 101 * @tc.desc put BoolArray promise interface test 102 * @tc.size MediumTest 103 * @tc.type Function 104 * @tc.level Level 2 105 */ 106 it('testPreferencesPutBoolArray0133', 0, async function (done) { 107 await mPreferences.clear(); 108 var boolArr = [true, true, false]; 109 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr); 110 await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [false, true]).then((pre) => { 111 for (let i = 0; i < boolArr.length; i++) { 112 expect(boolArr[i]).assertEqual(pre[i]); 113 } 114 done(); 115 }).catch((err) => { 116 expect(null).assertFail(); 117 done(); 118 }) 119 }); 120 121 /** 122 * @tc.name getAll promise interface test 123 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1000 124 * @tc.desc getAll promise interface test 125 * @tc.size MediumTest 126 * @tc.type Function 127 * @tc.level Level 2 128 */ 129 it('testPreferencesGetAll0001', 0, async function (done) { 130 await mPreferences.clear(); 131 let doubleArr = [11, 22, 33]; 132 let stringArr = ['11', '22', '33']; 133 let boolArr = [true, false, false, true]; 134 await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr); 135 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr); 136 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr); 137 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false); 138 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123"); 139 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1); 140 141 await mPreferences.flush(); 142 143 await mPreferences.getAll().then((obj) => { 144 expect(false).assertEqual(obj.key_test_boolean); 145 expect("123").assertEqual(obj.key_test_string); 146 expect(123.1).assertEqual(obj.key_test_float); 147 let sArr = obj.key_test_string_array; 148 for (let i = 0; i < sArr.length; i++) { 149 expect(sArr[i]).assertEqual(stringArr[i]); 150 } 151 152 let bArr = obj.key_test_bool_array; 153 for (let i = 0; i < bArr.length; i++) { 154 expect(bArr[i]).assertEqual(boolArr[i]); 155 } 156 157 let nArr = obj.key_test_number_array 158 for (let i = 0; i < nArr.length; i++) { 159 expect(nArr[i]).assertEqual(doubleArr[i]); 160 } 161 done(); 162 }).catch((err) => { 163 expect(null).assertFail(); 164 done(); 165 }) 166 }) 167 168 /** 169 * @tc.name clear promise interface test 170 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_2100 171 * @tc.desc clear promise interface test 172 * @tc.size MediumTest 173 * @tc.type Function 174 * @tc.level Level 2 175 */ 176 it('testPreferencesClear0011', 0, async function (done) { 177 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 178 await mPreferences.flush(); 179 await mPreferences.clear().then(async (ret) => { 180 let per = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue"); 181 expect("defaultvalue").assertEqual(per); 182 done(); 183 }).catch((err) => { 184 expect(null).assertFail(); 185 done(); 186 }); 187 }) 188 189 /** 190 * @tc.name has string interface test 191 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0900 192 * @tc.desc has string interface test 193 * @tc.size MediumTest 194 * @tc.type Function 195 * @tc.level Level 2 196 */ 197 it('testPreferencesHasKey0031', 0, async function (done) { 198 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 199 await mPreferences.has(KEY_TEST_STRING_ELEMENT).then((ret) => { 200 expect(true).assertEqual(ret); 201 done(); 202 }).catch((err) => { 203 expect(null).assertFail(); 204 done(); 205 }); 206 }) 207 208 /** 209 * @tc.name has int interface test 210 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1700 211 * @tc.desc has int interface test 212 * @tc.size MediumTest 213 * @tc.type Function 214 * @tc.level Level 2 215 */ 216 it('testPreferencesHasKey0032', 0, async function (done) { 217 await mPreferences.put(KEY_TEST_INT_ELEMENT, 1); 218 await mPreferences.has(KEY_TEST_INT_ELEMENT).then((ret) => { 219 expect(true).assertEqual(ret); 220 done(); 221 }).catch((err) => { 222 expect(null).assertFail(); 223 done(); 224 }); 225 done(); 226 }) 227 228 /** 229 * @tc.name has float interface test 230 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1500 231 * @tc.desc has float interface test 232 * @tc.size MediumTest 233 * @tc.type Function 234 * @tc.level Level 2 235 */ 236 it('testPreferencesHasKey0033', 0, async function (done) { 237 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 2.0); 238 await mPreferences.has(KEY_TEST_FLOAT_ELEMENT).then((ret) => { 239 expect(true).assertEqual(ret); 240 done(); 241 }).catch((err) => { 242 expect(null).assertFail(); 243 done(); 244 }); 245 }) 246 247 /** 248 * @tc.name has boolean interface test 249 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1300 250 * @tc.desc has boolean interface test 251 * @tc.size MediumTest 252 * @tc.type Function 253 * @tc.level Level 2 254 */ 255 it('testPreferencesHasKey0034', 0, async function (done) { 256 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false); 257 await mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT).then((ret) => { 258 expect(true).assertEqual(ret); 259 done(); 260 }).catch((err) => { 261 expect(null).assertFail(); 262 done(); 263 }); 264 }) 265 266 /** 267 * @tc.name has long interface test 268 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1800 269 * @tc.desc has long interface test 270 * @tc.size MediumTest 271 * @tc.type Function 272 * @tc.level Level 2 273 */ 274 it('testPreferencesHasKey0035', 0, async function (done) { 275 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0); 276 await mPreferences.has(KEY_TEST_LONG_ELEMENT).then((ret) => { 277 expect(true).assertEqual(ret); 278 done(); 279 }).catch((err) => { 280 expect(null).assertFail(); 281 done(); 282 }); 283 284 }) 285 286 /** 287 * @tc.name get string promise interface test 288 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1100 289 * @tc.desc get string promise interface test 290 * @tc.size MediumTest 291 * @tc.type Function 292 * @tc.level Level 2 293 */ 294 it('testPreferencesGetDefValue0061', 0, async function (done) { 295 await mPreferences.clear(); 296 await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue").then((ret) => { 297 expect('defaultValue').assertEqual(ret); 298 done(); 299 }).catch((err) => { 300 expect(null).assertFail(); 301 done(); 302 }); 303 }) 304 305 /** 306 * @tc.name get float promise interface test 307 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1400 308 * @tc.desc get float promise interface test 309 * @tc.size MediumTest 310 * @tc.type Function 311 * @tc.level Level 2 312 */ 313 it('testPreferencesGetFloat0071', 0, async function (done) { 314 await mPreferences.clear(); 315 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0); 316 await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0).then((ret) => { 317 expect(3.0).assertEqual(ret); 318 done(); 319 }).catch((err) => { 320 expect(null).assertFail(); 321 done(); 322 }); 323 }) 324 325 /** 326 * @tc.name get int promise interface test 327 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1600 328 * @tc.desc get int promise interface test 329 * @tc.size MediumTest 330 * @tc.type Function 331 * @tc.level Level 2 332 */ 333 it('testPreferencesGetInt0081', 0, async function (done) { 334 await mPreferences.clear(); 335 await mPreferences.put(KEY_TEST_INT_ELEMENT, 3); 336 await mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0).then((ret) => { 337 expect(3).assertEqual(ret); 338 done(); 339 }).catch((err) => { 340 expect(null).assertFail(); 341 done(); 342 }); 343 }) 344 345 /** 346 * @tc.name get long promise interface test 347 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1900 348 * @tc.desc get long promise interface test 349 * @tc.size MediumTest 350 * @tc.type Function 351 * @tc.level Level 2 352 */ 353 it('testPreferencesGetLong0091', 0, async function (done) { 354 await mPreferences.clear(); 355 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3); 356 await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0).then((ret) => { 357 expect(3).assertEqual(ret); 358 done(); 359 }).catch((err) => { 360 expect(null).assertFail(); 361 done(); 362 }); 363 }) 364 365 /** 366 * @tc.name get String promise interface test 367 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_2000 368 * @tc.desc get String promise interface test 369 * @tc.size MediumTest 370 * @tc.type Function 371 * @tc.level Level 2 372 */ 373 it('tesPreferencesGetString101', 0, async function (done) { 374 await mPreferences.clear(); 375 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 376 await mPreferences.flush(); 377 await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue").then((ret) => { 378 expect('test').assertEqual(ret); 379 done(); 380 }).catch((err) => { 381 expect(null).assertFail(); 382 done(); 383 }); 384 }) 385 386 /** 387 * @tc.name put boolean promise interface test 388 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0100 389 * @tc.desc put boolean promise interface test 390 * @tc.size MediumTest 391 * @tc.type Function 392 * @tc.level Level 2 393 */ 394 it('testPreferencesPutBoolean0121', 0, async function (done) { 395 await mPreferences.clear(); 396 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true); 397 let per = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false); 398 expect(true).assertEqual(per); 399 await mPreferences.flush(); 400 let per2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false); 401 expect(true).assertEqual(per2); 402 done(); 403 }) 404 405 /** 406 * @tc.name put float promise interface test 407 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0200 408 * @tc.desc put float promise interface test 409 * @tc.size MediumTest 410 * @tc.type Function 411 * @tc.level Level 2 412 */ 413 it('testPreferencesPutFloat0131', 0, async function (done) { 414 await mPreferences.clear(); 415 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0); 416 let per = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 417 expect(4.0).assertEqual(per); 418 await mPreferences.flush(); 419 let per2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 420 expect(4.0).assertEqual(per2); 421 done(); 422 }) 423 424 /** 425 * @tc.name put int promise interface test 426 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0300 427 * @tc.desc put int promise interface test 428 * @tc.size MediumTest 429 * @tc.type Function 430 * @tc.level Level 2 431 */ 432 it('testPreferencesPutInt0141', 0, async function (done) { 433 await mPreferences.clear(); 434 await mPreferences.put(KEY_TEST_INT_ELEMENT, 4); 435 let per = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 436 expect(4).assertEqual(per); 437 await mPreferences.flush(); 438 let per2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 439 expect(4).assertEqual(per2); 440 done(); 441 }) 442 443 /** 444 * @tc.name put long promise interface test 445 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0400 446 * @tc.desc put long promise interface test 447 * @tc.size MediumTest 448 * @tc.type Function 449 * @tc.level Level 2 450 */ 451 it('testPreferencesPutLong0151', 0, async function (done) { 452 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4); 453 let per = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 454 expect(4).assertEqual(per); 455 await mPreferences.flush(); 456 let per2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 457 expect(4).assertEqual(per2); 458 done(); 459 }) 460 461 /** 462 * @tc.name put String promise interface test 463 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_0500 464 * @tc.desc put String promise interface test 465 * @tc.size MediumTest 466 * @tc.type Function 467 * @tc.level Level 2 468 */ 469 it('testPreferencesPutString0161', 0, async function (done) { 470 await mPreferences.put(KEY_TEST_STRING_ELEMENT, ''); 471 let per = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 472 expect('').assertEqual(per); 473 await mPreferences.flush(); 474 let per2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 475 expect('').assertEqual(per2); 476 done(); 477 }) 478 479 /** 480 * @tc.name get string promise interface test 481 * @tc.number SUB_DistributedData_Preference_SDK_PreferenceJsApiPromiseTest_1200 482 * @tc.desc get string promise interface test 483 * @tc.size MediumTest 484 * @tc.type Function 485 * @tc.level Level 2 486 */ 487 it('testPreferencesGetDefValue00162', 0, async function (done) { 488 await mPreferences.clear(); 489 await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, true).then((ret) => { 490 expect(true).assertEqual(ret); 491 done(); 492 }).catch((err) => { 493 expect(null).assertFail(); 494 done(); 495 }); 496 }) 497 }) 498}