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 storage from '@ohos.data.storage' 17 18const PATH = "/data/storage/el2/database/test_storage"; 19const KEY_TEST_INT_ELEMENT = 'key_test_int'; 20const KEY_TEST_LONG_ELEMENT = 'key_test_long'; 21const KEY_TEST_FLOAT_ELEMENT = 'key_test_float'; 22const KEY_TEST_BOOLEAN_ELEMENT = 'key_test_boolean'; 23const KEY_TEST_STRING_ELEMENT = 'key_test_string'; 24var mPref; 25 26describe('StorageCallBackJsunit', function () { 27 beforeAll(function () { 28 console.info('beforeAll') 29 mPref = storage.getStorageSync(PATH); 30 }) 31 32 afterAll(function () { 33 console.info('afterAll') 34 storage.deleteStorageSync(PATH); 35 }) 36 37 /** 38 * @tc.name clear callback interface test 39 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0010 40 * @tc.desc clear callback interface test 41 */ 42 it('testClear0012', 0, async function (done) { 43 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 44 mPref.flushSync(); 45 await mPref.clear(function (err, ret) { 46 expect("defaultvalue").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 47 done(); 48 }); 49 }) 50 51 /** 52 * @tc.name has string callback interface test 53 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0020 54 * @tc.desc has string callback interface test 55 */ 56 it('testHasKey0032', 0, async function (done) { 57 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 58 await mPref.has(KEY_TEST_STRING_ELEMENT, function (err, ret) { 59 expect(true).assertEqual(ret); 60 done(); 61 }) 62 }) 63 64 /** 65 * @tc.name has int callback interface test 66 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0130 67 * @tc.desc has int callback interface test 68 */ 69 it('testHasKey0033', 0, async function (done) { 70 mPref.putSync(KEY_TEST_INT_ELEMENT, 1); 71 await mPref.has(KEY_TEST_INT_ELEMENT, function (err, ret) { 72 expect(true).assertEqual(ret); 73 done(); 74 }) 75 }) 76 77 /** 78 * @tc.name has float callback interface test 79 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0140 80 * @tc.desc has float callback interface test 81 */ 82 it('testHasKey0034', 0, async function (done) { 83 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 1.1); 84 await mPref.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) { 85 expect(true).assertEqual(ret); 86 done(); 87 }) 88 }) 89 90 /** 91 * @tc.name has long callback interface test 92 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0150 93 * @tc.desc has long callback interface test 94 */ 95 it('testHasKey0035', 0, async function (done) { 96 mPref.putSync(KEY_TEST_LONG_ELEMENT, 0); 97 await mPref.has(KEY_TEST_LONG_ELEMENT, function (err, ret) { 98 expect(true).assertEqual(ret); 99 done(); 100 }) 101 }) 102 103 /** 104 * @tc.name has boolean callback interface test 105 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0160 106 * @tc.desc has boolean callback interface test 107 */ 108 it('testHasKey0036', 0, async function (done) { 109 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, false); 110 await mPref.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) { 111 expect(true).assertEqual(ret); 112 done(); 113 }) 114 }) 115 116 /** 117 * @tc.name get defaultValue callback interface test 118 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0030 119 * @tc.desc get defaultValue callback interface test 120 */ 121 it('testGetDefValue0062', 0, async function (done) { 122 mPref.clearSync(); 123 await mPref.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) { 124 expect('defaultValue').assertEqual(ret); 125 done(); 126 }) 127 }) 128 129 /** 130 * @tc.name get float callback interface test 131 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0040 132 * @tc.desc get float callback interface test 133 */ 134 it('testGetFloat0072', 0, async function (done) { 135 mPref.clearSync(); 136 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 3.0); 137 await mPref.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) { 138 expect(3.0).assertEqual(ret); 139 done(); 140 }) 141 }) 142 143 /** 144 * @tc.name get int callback interface test 145 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0050 146 * @tc.desc get int callback interface test 147 */ 148 it('testGetInt0082', 0, async function (done) { 149 mPref.clearSync(); 150 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 151 await mPref.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) { 152 expect(3).assertEqual(ret); 153 done(); 154 }) 155 }) 156 157 /** 158 * @tc.name get long callback interface test 159 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0060 160 * @tc.desc get long callback interface test 161 */ 162 it('testGetLong0092', 0, async function (done) { 163 mPref.clearSync(); 164 mPref.putSync(KEY_TEST_LONG_ELEMENT, 3); 165 expect(3).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 166 await mPref.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) { 167 expect(3).assertEqual(ret); 168 done(); 169 }); 170 }) 171 172 /** 173 * @tc.name get String callback interface test 174 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0070 175 * @tc.desc get String callback interface test 176 */ 177 it('testGetString102', 0, async function (done) { 178 mPref.clearSync(); 179 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 180 mPref.flushSync(); 181 await mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) { 182 expect('test').assertEqual(ret); 183 done(); 184 }); 185 }) 186 187 /** 188 * @tc.name put boolean callback interface test 189 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0080 190 * @tc.desc put boolean callback interface test 191 */ 192 it('testPutBoolean0122', 0, async function (done) { 193 mPref.clearSync(); 194 await mPref.put(KEY_TEST_BOOLEAN_ELEMENT, true, function (err, ret) { 195 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 196 mPref.flushSync(); 197 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 198 done(); 199 }); 200 }) 201 202 /** 203 * @tc.name put float callback interface test 204 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0090 205 * @tc.desc put float callback interface test 206 */ 207 it('testPutFloat0132', 0, async function (done) { 208 mPref.clearSync(); 209 await mPref.put(KEY_TEST_FLOAT_ELEMENT, 4.0, function (err, ret) { 210 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 211 mPref.flushSync(); 212 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 213 done(); 214 }); 215 }) 216 217 /** 218 * @tc.name put int callback interface test 219 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0100 220 * @tc.desc put int callback interface test 221 */ 222 it('testPutInt0142', 0, async function (done) { 223 mPref.clearSync(); 224 await mPref.put(KEY_TEST_INT_ELEMENT, 4, function (err, ret) { 225 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 226 mPref.flushSync(); 227 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 228 done(); 229 }); 230 }) 231 232 /** 233 * @tc.name put long callback interface test 234 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0110 235 * @tc.desc put long callback interface test 236 */ 237 it('testPutLong0152', 0, async function (done) { 238 mPref.clearSync(); 239 mPref.putSync(KEY_TEST_LONG_ELEMENT, 4); 240 await mPref.put(KEY_TEST_LONG_ELEMENT, 4, function (err, ret) { 241 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 242 mPref.flushSync(); 243 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 244 done(); 245 }); 246 }) 247 248 /** 249 * @tc.name put String callback interface test 250 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 251 * @tc.desc put String callback interface test 252 */ 253 it('testPutString0162', 0, async function (done) { 254 mPref.clearSync(); 255 await mPref.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 256 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 257 mPref.flushSync(); 258 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 259 done(); 260 }); 261 }) 262 263 /** 264 * @tc.name clear、put、get、flush String callback interface test 265 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0120 266 * @tc.desc flush String callback interface test 267 */ 268 it('testCallback0172', 0, function (done) { 269 console.log("*******************testCallback0172 begin."); 270 mPref.clear(function (err, val) { 271 if(err){ 272 console.log("*******************clear error: " + err); 273 expect(false).assertTrue(); 274 } 275 mPref.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 276 if(err){ 277 console.log("*******************put error: " + err); 278 expect(false).assertTrue(); 279 } 280 console.log("*******************put done."); 281 mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) { 282 if(err){ 283 console.log("*******************get error: " + err); 284 expect(false).assertTrue(); 285 } 286 expect('').assertEqual(pre); 287 mPref.flush(function (err, val) { 288 if(err){ 289 console.log("*******************flush error: " + err); 290 expect(false).assertTrue(); 291 } 292 mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) { 293 if(err){ 294 console.log("*******************get error: " + err); 295 expect(false).assertTrue(); 296 } 297 expect('').assertEqual(pre2); 298 done(); 299 console.log("*******************testCallback0172 end."); 300 }) 301 }); 302 }) 303 }); 304 }); 305 }) 306 307 /** 308 * @tc.name test put interface 309 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0121 310 * @tc.desc test put interface input parameter is illegal. 311 */ 312 it('testPutIllegal001', 0, async function (done) { 313 let illegalKey = false; 314 let legalValue = "test"; 315 try { 316 mPref.put(illegalKey, legalValue, (ret) => { 317 done(); 318 }); 319 expect(false).assertTrue(); 320 } catch (err) { 321 console.log("try catch err =" + err); 322 done(); 323 } 324 }) 325 326 /** 327 * @tc.name test put interface 328 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0122 329 * @tc.desc test put interface input parameter is illegal. 330 */ 331 it('testPutIllegal002', 0, async function (done) { 332 let illegalKey = 123; 333 let legalValue = "test"; 334 try { 335 mPref.put(illegalKey, legalValue, (ret) => { 336 done(); 337 }); 338 expect(false).assertTrue(); 339 } catch (err) { 340 console.log("try catch err =" + err); 341 done(); 342 } 343 }) 344 345 /** 346 * @tc.name test put interface 347 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0123 348 * @tc.desc test put interface input parameter value exceed 8192byte. 349 */ 350 it('testPutIllegal003', 0, async function (done) { 351 let phoneStr = "1"; 352 phoneStr = phoneStr.repeat(8193); 353 try { 354 mPref.put("phoneNum", phoneStr, (ret) => { 355 done(); 356 }); 357 expect(false).assertTrue(); 358 } catch (err) { 359 console.log("try catch err =" + err); 360 done(); 361 } 362 }) 363 364 /** 365 * @tc.name test put interface 366 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0124 367 * @tc.desc test put interface input parameter value is legal. 368 */ 369 it('testPutIllegal004', 0, async function (done) { 370 let phoneStr = "1"; 371 phoneStr = phoneStr.repeat(8192); 372 try { 373 mPref.put("phoneNum", phoneStr, (ret) => { 374 done(); 375 }); 376 } catch (err) { 377 console.log("try catch err =" + err); 378 expect(false).assertTrue(); 379 done(); 380 } 381 }) 382 383 /** 384 * @tc.name test put interface 385 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0125 386 * @tc.desc test put interface input parameter key exceed 80byte. 387 */ 388 it('testPutIllegal005', 0, async function (done) { 389 let phoneNum = "1"; 390 phoneNum = phoneNum.repeat(81); 391 try { 392 mPref.put(phoneNum, "123456", (ret) => { 393 done(); 394 }); 395 expect(false).assertTrue(); 396 } catch (err) { 397 console.log("try catch err =" + err); 398 done(); 399 } 400 }) 401 402 /** 403 * @tc.name test put interface 404 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0126 405 * @tc.desc test put interface input parameter key is legal. 406 */ 407 it('testPutIllegal006', 0, async function (done) { 408 let phoneNum = "1"; 409 phoneNum = phoneNum.repeat(80); 410 try { 411 mPref.put(phoneNum, "123456", (ret) => { 412 done(); 413 }); 414 } catch (err) { 415 console.log("try catch err =" + err); 416 expect(false).assertTrue(); 417 done(); 418 } 419 }) 420 421 /** 422 * @tc.name test get interface 423 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0127 424 * @tc.desc test get interface input parameter is illegal. 425 */ 426 it('testGetIllegal001', 0, async function (done) { 427 let illegalKey = 123; 428 try { 429 mPref.get(illegalKey, "defaultValue", (ret) => { 430 done(); 431 }); 432 expect(false).assertTrue(); 433 } catch (err) { 434 console.log("try catch err =" + err); 435 done(); 436 } 437 }) 438 439 /** 440 * @tc.name test get interface 441 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0127 442 * @tc.desc test get interface input parameter is illegal. 443 */ 444 it('testGetIllegal002', 0, async function (done) { 445 let illegalKey = true; 446 try { 447 mPref.get(illegalKey, "defaultValue", (ret) => { 448 done(); 449 }); 450 expect(false).assertTrue(); 451 } catch (err) { 452 console.log("try catch err =" + err); 453 done(); 454 } 455 }) 456 457 /** 458 * @tc.name test get interface 459 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0128 460 * @tc.desc test get interface input parameter key exceed 80byte. 461 */ 462 it('testGetIllegal003', 0, async function (done) { 463 let illegalKey = "1"; 464 illegalKey = illegalKey.repeat(81); 465 try { 466 mPref.get(illegalKey, "defaultValue", (ret) => { 467 done(); 468 }); 469 expect(false).assertTrue(); 470 } catch (err) { 471 console.log("try catch err =" + err); 472 done(); 473 } 474 }) 475 476 /** 477 * @tc.name test get interface 478 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_CallBack_0129 479 * @tc.desc test get interface input parameter key is legal. 480 */ 481 it('testGetIllegal004', 0, async function (done) { 482 let legalKey = "1"; 483 legalKey = legalKey.repeat(80); 484 try { 485 mPref.get(legalKey, "defaultValue", (ret) => { 486 done(); 487 }); 488 } catch (err) { 489 console.log("try catch err =" + err); 490 expect(false).assertTrue(); 491 done(); 492 } 493 }) 494})