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 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 31const TAG = '[PREFERENCES_CALLBACK_JSUNIT_TEST]' 32 33describe('preferencesTest', function () { 34 beforeAll(async function () { 35 console.info('beforeAll') 36 context = featureAbility.getContext() 37 mPreferences = await data_preferences.getPreferences(context, NAME); 38 }) 39 40 afterAll(async function () { 41 console.info('afterAll') 42 await data_preferences.deletePreferences(context, NAME); 43 }) 44 45 /** 46 * @tc.name clear callback interface test 47 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0010 48 * @tc.desc clear callback interface test 49 */ 50 it('testPreferencesClear0012', 0, async function (done) { 51 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 52 await mPreferences.flush(); 53 await mPreferences.clear(async function (err, ret) { 54 let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 55 expect("defaultvalue").assertEqual(pre); 56 done(); 57 }); 58 }) 59 60 /** 61 * @tc.name has string callback interface test 62 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0020 63 * @tc.desc has string callback interface test 64 */ 65 it('testPreferencesHasKey0032', 0, async function (done) { 66 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 67 await mPreferences.has(KEY_TEST_STRING_ELEMENT, function (err, ret) { 68 expect(true).assertEqual(ret); 69 done(); 70 }) 71 }) 72 73 /** 74 * @tc.name has int callback interface test 75 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0130 76 * @tc.desc has int callback interface test 77 */ 78 it('testPreferencesHasKey0033', 0, async function (done) { 79 await mPreferences.put(KEY_TEST_INT_ELEMENT, 1); 80 await mPreferences.has(KEY_TEST_INT_ELEMENT, function (err, ret) { 81 expect(true).assertEqual(ret); 82 done(); 83 }) 84 }) 85 86 /** 87 * @tc.name has float callback interface test 88 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140 89 * @tc.desc has float callback interface test 90 */ 91 it('testPreferencesHasKey0034', 0, async function (done) { 92 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 1.1); 93 await mPreferences.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) { 94 expect(true).assertEqual(ret); 95 done(); 96 }) 97 }) 98 99 /** 100 * @tc.name has long callback interface test 101 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0150 102 * @tc.desc has long callback interface test 103 */ 104 it('testPreferencesHasKey0035', 0, async function (done) { 105 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 0); 106 await mPreferences.has(KEY_TEST_LONG_ELEMENT, function (err, ret) { 107 expect(true).assertEqual(ret); 108 done(); 109 }) 110 }) 111 112 /** 113 * @tc.name has boolean callback interface test 114 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0160 115 * @tc.desc has boolean callback interface test 116 */ 117 it('testPreferencesHasKey0036', 0, async function (done) { 118 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false); 119 await mPreferences.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) { 120 expect(true).assertEqual(ret); 121 done(); 122 }) 123 }) 124 125 /** 126 * @tc.name get defaultValue callback interface test 127 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0030 128 * @tc.desc get defaultValue callback interface test 129 */ 130 it('testPreferencesGetDefValue0062', 0, async function (done) { 131 await mPreferences.clear(); 132 await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) { 133 expect('defaultValue').assertEqual(ret); 134 done(); 135 }) 136 }) 137 138 /** 139 * @tc.name get float callback interface test 140 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0040 141 * @tc.desc get float callback interface test 142 */ 143 it('testPreferencesGetFloat0072', 0, async function (done) { 144 await mPreferences.clear(); 145 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 3.0); 146 await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) { 147 expect(3.0).assertEqual(ret); 148 done(); 149 }) 150 }) 151 152 /** 153 * @tc.name get int callback interface test 154 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0050 155 * @tc.desc get int callback interface test 156 */ 157 it('testPreferencesGetInt0082', 0, async function (done) { 158 await mPreferences.clear(); 159 await mPreferences.put(KEY_TEST_INT_ELEMENT, 3); 160 await mPreferences.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) { 161 expect(3).assertEqual(ret); 162 done(); 163 }) 164 }) 165 166 /** 167 * @tc.name get long callback interface test 168 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0060 169 * @tc.desc get long callback interface test 170 */ 171 it('testPreferencesGetLong0092', 0, async function (done) { 172 await mPreferences.clear(); 173 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 3); 174 let pref = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0) 175 expect(3).assertEqual(pref); 176 await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) { 177 expect(3).assertEqual(ret); 178 done(); 179 }); 180 }) 181 182 /** 183 * @tc.name get String callback interface test 184 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0070 185 * @tc.desc get String callback interface test 186 */ 187 it('testPreferencesGetString102', 0, async function (done) { 188 await mPreferences.clear(); 189 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "test"); 190 await mPreferences.flush(); 191 await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) { 192 expect('test').assertEqual(ret); 193 done(); 194 }); 195 }) 196 197 /** 198 * @tc.name put boolean callback interface test 199 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 200 * @tc.desc put boolean callback interface test 201 */ 202 it('testPreferencesPutBoolean0122', 0, async function (done) { 203 await mPreferences.clear(); 204 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, true, async function (err, ret) { 205 let pre = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false); 206 expect(true).assertEqual(pre); 207 await mPreferences.flush(); 208 let pre2 = await mPreferences.get(KEY_TEST_BOOLEAN_ELEMENT, false) 209 expect(true).assertEqual(pre2); 210 done(); 211 }); 212 }) 213 214 /** 215 * @tc.name put float callback interface test 216 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0090 217 * @tc.desc put float callback interface test 218 */ 219 it('testPreferencesPutFloat0132', 0, async function (done) { 220 await mPreferences.clear(); 221 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 4.0, async function (err, ret) { 222 let pre = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 223 expect(4.0).assertEqual(pre); 224 await mPreferences.flush(); 225 let pre2 = await mPreferences.get(KEY_TEST_FLOAT_ELEMENT, 0.0); 226 expect(4.0).assertEqual(pre2); 227 done(); 228 }); 229 }) 230 231 /** 232 * @tc.name put int callback interface test 233 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0100 234 * @tc.desc put int callback interface test 235 */ 236 it('testPreferencesPutInt0142', 0, async function (done) { 237 await mPreferences.clear(); 238 await mPreferences.put(KEY_TEST_INT_ELEMENT, 4, async function (err, ret) { 239 let pre = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 240 expect(4).assertEqual(pre); 241 await mPreferences.flush(); 242 let pre2 = await mPreferences.get(KEY_TEST_INT_ELEMENT, 0); 243 expect(4).assertEqual(pre2); 244 done(); 245 }); 246 }) 247 248 /** 249 * @tc.name put long callback interface test 250 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0110 251 * @tc.desc put long callback interface test 252 */ 253 it('testPreferencesPutLong0152', 0, async function (done) { 254 await mPreferences.clear(); 255 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4); 256 await mPreferences.put(KEY_TEST_LONG_ELEMENT, 4, async function (err, ret) { 257 let pre = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 258 expect(4).assertEqual(pre); 259 await mPreferences.flush(); 260 let pre2 = await mPreferences.get(KEY_TEST_LONG_ELEMENT, 0); 261 expect(4).assertEqual(pre2); 262 done(); 263 }); 264 }) 265 266 /** 267 * @tc.name put String callback interface test 268 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 269 * @tc.desc put String callback interface test 270 */ 271 it('testPreferencesPutString0162', 0, async function (done) { 272 await mPreferences.clear(); 273 await mPreferences.put(KEY_TEST_STRING_ELEMENT, '', async function (err, ret) { 274 let pre = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 275 expect('').assertEqual(pre); 276 await mPreferences.flush(); 277 let pre2 = await mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue") 278 expect('').assertEqual(pre2); 279 done(); 280 }); 281 }) 282 283 /** 284 * @tc.name clear、put、get、flush String callback interface test 285 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 286 * @tc.desc flush String callback interface test 287 */ 288 it('testPreferencesCallback0172', 0, function (done) { 289 console.log(TAG + "testPreferencesCallback0172 begin."); 290 mPreferences.clear(function (err, val) { 291 if(err){ 292 expect(null).assertEqual(); 293 } 294 mPreferences.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 295 if(err){ 296 expect(null).assertEqual(); 297 } 298 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) { 299 if(err){ 300 expect(null).assertEqual(); 301 } 302 expect('').assertEqual(pre); 303 mPreferences.flush(function (err, val) { 304 if(err){ 305 expect(null).assertEqual(); 306 } 307 mPreferences.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) { 308 if(err){ 309 expect(null).assertEqual(); 310 } 311 expect('').assertEqual(pre2); 312 done(); 313 console.log(TAG + "testPreferencesCallback0172 end."); 314 }) 315 }); 316 }) 317 }); 318 }); 319 }) 320 321 /** 322 * @tc.name put StringArray callback interface test 323 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0001 324 * @tc.desc put String callback interface test 325 */ 326 it('testPreferencesPutStringArray0001', 0, async function (done) { 327 await mPreferences.clear(); 328 var stringArr = ['11', '22', '33'] 329 await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr, async function (err, ret) { 330 let pre = await mPreferences.get(KEY_TEST_STRING_ARRAY_ELEMENT, ['123', '321']) 331 for (let i = 0; i < stringArr.length; i++) { 332 expect(stringArr[i]).assertEqual(pre[i]); 333 } 334 335 done(); 336 }); 337 }) 338 339 /** 340 * @tc.name put NumberArray callback interface test 341 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0002 342 * @tc.desc put String callback interface test 343 */ 344 it('testPreferencesPutNumArray0001', 0, async function (done) { 345 await mPreferences.clear(); 346 var doubleArr = [11, 22, 33] 347 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr, async function (err, ret) { 348 let pre = await mPreferences.get(KEY_TEST_NUMBER_ARRAY_ELEMENT, [123, 321]) 349 for (let i = 0; i < doubleArr.length; i++) { 350 expect(doubleArr[i]).assertEqual(pre[i]); 351 } 352 353 done(); 354 }); 355 }) 356 357 /** 358 * @tc.name put BoolArray callback interface test 359 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0003 360 * @tc.desc put String callback interface test 361 */ 362 it('testPreferencesPutBoolArray0001', 0, async function (done) { 363 await mPreferences.clear(); 364 let boolArr = [true, false, false, true] 365 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr, async function (err, ret) { 366 let pre = await mPreferences.get(KEY_TEST_BOOL_ARRAY_ELEMENT, [true, false]) 367 for (let i = 0; i < boolArr.length; i++) { 368 expect(boolArr[i]).assertEqual(pre[i]); 369 } 370 371 done(); 372 }); 373 }) 374 375 /** 376 * @tc.name getAll callback interface test 377 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0004 378 * @tc.desc getAll callback interface test 379 */ 380 it('testPreferencesGetAll0001', 0, async function (done) { 381 await mPreferences.clear(); 382 let doubleArr = [11, 22, 33] 383 let stringArr = ['11', '22', '33'] 384 let boolArr = [true, false, false, true] 385 await mPreferences.put(KEY_TEST_STRING_ARRAY_ELEMENT, stringArr) 386 await mPreferences.put(KEY_TEST_BOOL_ARRAY_ELEMENT, boolArr) 387 await mPreferences.put(KEY_TEST_NUMBER_ARRAY_ELEMENT, doubleArr) 388 await mPreferences.put(KEY_TEST_BOOLEAN_ELEMENT, false) 389 await mPreferences.put(KEY_TEST_STRING_ELEMENT, "123") 390 await mPreferences.put(KEY_TEST_FLOAT_ELEMENT, 123.1) 391 392 await mPreferences.flush() 393 394 await mPreferences.getAll(function (err, obj) { 395 expect(false).assertEqual(obj.key_test_boolean) 396 expect("123").assertEqual(obj.key_test_string) 397 expect(123.1).assertEqual(obj.key_test_float) 398 let sArr = obj.key_test_string_array 399 for (let i = 0; i < sArr.length; i++) { 400 expect(sArr[i]).assertEqual(stringArr[i]); 401 } 402 403 let bArr = obj.key_test_bool_array 404 for (let i = 0; i < bArr.length; i++) { 405 expect(bArr[i]).assertEqual(boolArr[i]); 406 } 407 408 let nArr = obj.key_test_number_array 409 for (let i = 0; i < nArr.length; i++) { 410 expect(nArr[i]).assertEqual(doubleArr[i]); 411 } 412 413 done() 414 }) 415 }) 416})