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