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'; 24 25var mPref; 26 27describe('StorageSyncJsunit', function () { 28 beforeAll(function() { 29 console.info('beforeAll') 30 }) 31 32 beforeEach(async function () { 33 console.info('beforeEach'); 34 mPref = await storage.getStorageSync(PATH); 35 }) 36 37 afterEach(async function () { 38 console.info('afterEach'); 39 await storage.deleteStorageSync(PATH); 40 }) 41 42 afterAll(function () { 43 console.info('afterAll') 44 }) 45 46 it('testClear001', 0, function () { 47 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 48 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 49 mPref.flushSync(); 50 mPref.clearSync(); 51 expect("defaultvalue").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 52 expect(0).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 53 }) 54 55 /** 56 * @tc.name Constructor test 57 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0010 58 * @tc.desc Constructor test 59 */ 60 it('testConstructor002', 0, function () { 61 expect('to:' + mPref).assertEqual('to:[object Object]'); 62 }) 63 64 /** 65 * @tc.name put string sync interface test 66 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0020 67 * @tc.desc put string sync interface test 68 */ 69 it('testHasKey003', 0, function () { 70 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 71 expect(true).assertEqual(mPref.hasSync(KEY_TEST_STRING_ELEMENT)); 72 }) 73 74 /** 75 * @tc.name put int sync interface test 76 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0170 77 * @tc.desc put int sync interface test 78 */ 79 it('testHasKey004', 0, function () { 80 mPref.putSync(KEY_TEST_INT_ELEMENT, 1); 81 expect(true).assertEqual(mPref.hasSync(KEY_TEST_INT_ELEMENT)); 82 }) 83 84 /** 85 * @tc.name put boolean sync interface test 86 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180 87 * @tc.desc put boolean sync interface test 88 */ 89 it('testHasKey005', 0, function () { 90 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, false); 91 expect(true).assertEqual(mPref.hasSync(KEY_TEST_BOOLEAN_ELEMENT)); 92 }) 93 94 /** 95 * @tc.name put long sync interface test 96 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190 97 * @tc.desc put long sync interface test 98 */ 99 it('testHasKey006', 0, function () { 100 mPref.putSync(KEY_TEST_LONG_ELEMENT, 0); 101 expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT)); 102 }) 103 104 /** 105 * @tc.name put float sync interface test 106 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200 107 * @tc.desc put float sync interface test 108 */ 109 it('testHasKey007', 0, function () { 110 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 1.1); 111 expect(true).assertEqual(mPref.hasSync(KEY_TEST_FLOAT_ELEMENT)); 112 }) 113 114 /** 115 * @tc.name put boolean sync interface test 116 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0030 117 * @tc.desc put boolean sync interface test 118 */ 119 it('testGetBoolean005', 0, function () { 120 mPref.putSync(KEY_TEST_LONG_ELEMENT, true); 121 expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT)); 122 }) 123 124 /** 125 * @tc.name get defaultValue sync interface test 126 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0040 127 * @tc.desc get defaultValue sync interface test 128 */ 129 it('testGetDefValue006', 0, function () { 130 expect(-1).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, -1)); 131 expect(1.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 1.0)); 132 expect(10000).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 10000)); 133 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, true)); 134 expect('defaultValue').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultValue")); 135 }) 136 137 /** 138 * @tc.name put float sync interface test 139 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0050 140 * @tc.desc put float sync interface test 141 */ 142 it('testGetFloat007', 0, function () { 143 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 3.0); 144 expect(3.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 145 expect(0.0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0.0)); 146 }) 147 148 /** 149 * @tc.name put int sync interface test 150 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0060 151 * @tc.desc put int sync interface test 152 */ 153 it('testGetInt008', 0, function () { 154 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 155 expect(3).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0.0)); 156 }) 157 158 /** 159 * @tc.name put long sync interface test 160 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0070 161 * @tc.desc put long sync interface test 162 */ 163 it('testGetLong009', 0, function () { 164 mPref.putSync(KEY_TEST_LONG_ELEMENT, 3); 165 expect(3).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 166 expect(0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0)); 167 }) 168 169 /** 170 * @tc.name put String & int sync interface test 171 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0080 172 * @tc.desc put String & int sync interface test 173 */ 174 it('testGetString10', 0, function () { 175 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 176 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 177 mPref.flushSync(); 178 expect('test').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 179 expect('defaultvalue').assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, "defaultvalue")); 180 }) 181 182 /** 183 * @tc.name put boolean sync interface test 184 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0090 185 * @tc.desc put boolean sync interface test 186 */ 187 it('testPutBoolean012', 0, function () { 188 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, true); 189 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 190 mPref.flushSync(); 191 storage.removeStorageFromCacheSync(PATH); 192 mPref = null; 193 mPref = storage.getStorageSync(PATH); 194 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 195 }) 196 197 /** 198 * @tc.name put float sync interface test 199 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0100 200 * @tc.desc put float sync interface test 201 */ 202 it('testPutFloat013', 0, function () { 203 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 4.0); 204 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 205 mPref.flushSync(); 206 storage.removeStorageFromCacheSync(PATH); 207 mPref = null; 208 mPref = storage.getStorageSync(PATH); 209 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 210 }) 211 212 /** 213 * @tc.name put int sync interface test 214 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0110 215 * @tc.desc put int sync interface test 216 */ 217 it('testPutInt014', 0, function () {; 218 mPref.putSync(KEY_TEST_INT_ELEMENT, 4); 219 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 220 mPref.flushSync(); 221 storage.removeStorageFromCacheSync(PATH); 222 mPref = null; 223 mPref = storage.getStorageSync(PATH); 224 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 225 }) 226 227 /** 228 * @tc.name put long sync interface test 229 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0120 230 * @tc.desc put long sync interface test 231 */ 232 it('testPutLong015', 0, function () { 233 mPref.putSync(KEY_TEST_LONG_ELEMENT, 4); 234 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 235 mPref.flushSync(); 236 storage.removeStorageFromCacheSync(PATH); 237 mPref = null; 238 mPref = storage.getStorageSync(PATH); 239 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 240 }) 241 242 /** 243 * @tc.name put String sync interface test 244 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0130 245 * @tc.desc put String sync interface test 246 */ 247 it('testPutString016', 0, function () { 248 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 249 mPref.putSync(KEY_TEST_STRING_ELEMENT, ''); 250 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 251 mPref.flushSync(); 252 storage.removeStorageFromCacheSync(PATH); 253 mPref = null; 254 mPref = storage.getStorageSync(PATH); 255 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 256 }) 257 258 /** 259 * @tc.name put interface test 260 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0140 261 * @tc.desc put interface test 262 */ 263 it('testRegisterObserver001', 0, function () { 264 var observer = function (key) { 265 expect('abcd').assertEqual(key); 266 }; 267 mPref.on('change', observer); 268 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abcd"); 269 }) 270 271 /** 272 * @tc.name repeat on interface test 273 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0150 274 * @tc.desc repeat on interface test 275 */ 276 it('testRegisterObserver002', 0, function () { 277 var observer = function (key) { 278 console.info('testRegisterObserver001 key' + key); 279 expect('abc').assertEqual(key); 280 }; 281 mPref.on('change', observer); 282 mPref.on('change', observer); 283 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 284 }) 285 286 /** 287 * @tc.name off interface test 288 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0160 289 * @tc.desc off interface test 290 */ 291 it('testUnRegisterObserver001', 0, function () { 292 var observer = function (key) { 293 console.info('testUnRegisterObserver001 key' + key); 294 expect('').assertEqual(key); 295 }; 296 mPref.on('change', observer); 297 mPref.off('change', observer); 298 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 299 }) 300 301 /** 302 * @tc.name test putSync interface 303 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0170 304 * @tc.desc test put interface input parameter key exceed 1024 bytes. 305 */ 306 it('testputSyncIllegal001', 0, function () { 307 let illegalKey = "1"; 308 illegalKey = illegalKey.repeat(1025); 309 try { 310 mPref.putSync(illegalKey, "123456"); 311 expect(false).assertTrue(); 312 } catch (err) { 313 console.log("try catch err =" + err); 314 } 315 }) 316 317 /** 318 * @tc.name test putSync interface 319 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180 320 * @tc.desc test put interface input parameter key is legal. 321 */ 322 it('testputSyncIllegal002', 0, function () { 323 let legalKey = "1"; 324 legalKey = legalKey.repeat(1024); 325 try { 326 mPref.putSync(legalKey, "123456"); 327 } catch (err) { 328 console.log("try catch err =" + err); 329 expect(false).assertTrue(); 330 } 331 }) 332 333 /** 334 * @tc.name test putSync interface 335 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180 336 * @tc.desc test put interface input parameter value exceed 16 * 1024 * 1024byte. 337 */ 338 it('testputSyncIllegal003', 0, function () { 339 let illegalValue = "1"; 340 illegalValue = illegalValue.repeat(16 * 1024 * 1024 + 1); 341 try { 342 mPref.putSync("test", illegalValue); 343 expect(false).assertTrue(); 344 } catch (err) { 345 console.log("try catch err =" + err); 346 } 347 }) 348 349 /** 350 * @tc.name test putSync interface 351 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0180 352 * @tc.desc test put interface input parameter value is legal. 353 */ 354 it('testputSyncIllegal004', 0, function () { 355 let legalValue = "1"; 356 legalValue = legalValue.repeat(16 * 1024 * 1024); 357 try { 358 mPref.putSync("test", legalValue); 359 } catch (err) { 360 console.log("try catch err =" + err); 361 expect(false).assertTrue(); 362 } 363 }) 364 365 /** 366 * @tc.name test getSync interface 367 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190 368 * @tc.desc test getSync interface input parameter key exceed 1024 bytes. 369 */ 370 it('testgetSyncIllegal001', 0, function () { 371 let illegalkey = "1"; 372 illegalkey = illegalkey.repeat(1025); 373 try { 374 mPref.getSync(illegalkey, "defaultValue"); 375 expect(false).assertTrue(); 376 } catch (err) { 377 console.log("try catch err =" + err); 378 } 379 }) 380 381 /** 382 * @tc.name test getSync interface 383 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0190 384 * @tc.desc test getSync interface input parameter key is legal. 385 */ 386 it('testgetSyncIllegal002', 0, function () { 387 let legalkey = "1"; 388 legalkey = legalkey.repeat(1024); 389 try { 390 mPref.getSync(legalkey, "defaultValue"); 391 } catch (err) { 392 console.log("try catch err =" + err); 393 expect(false).assertTrue(); 394 } 395 }) 396 397 /** 398 * @tc.name test deleteSync interface 399 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200 400 * @tc.desc test deleteSync interface input parameter key exceed 1024 bytes. 401 */ 402 it('testdeleteSyncIllegal001', 0, function () { 403 let illegalkey = "1"; 404 illegalkey = illegalkey.repeat(1025); 405 try { 406 mPref.deleteSync(illegalkey); 407 expect(false).assertTrue(); 408 } catch (err) { 409 console.log("try catch err =" + err); 410 } 411 }) 412 413 /** 414 * @tc.name test deleteSync interface 415 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0200 416 * @tc.desc test deleteSync interface input parameter key is legal. 417 */ 418 it('testdeleteSyncIllegal002', 0, function () { 419 let legalkey = "1"; 420 legalkey = legalkey.repeat(1024); 421 try { 422 mPref.deleteSync(legalkey); 423 } catch (err) { 424 console.log("try catch err =" + err); 425 expect(false).assertTrue(); 426 } 427 }) 428 429 /** 430 * @tc.name test hasSync interface 431 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0210 432 * @tc.desc test hasSync interface input parameter key exceed 1024 bytes. 433 */ 434 it('testhasSyncIllegal001', 0, function () { 435 let illegalkey = "1"; 436 illegalkey = illegalkey.repeat(1025); 437 try { 438 mPref.hasSync(illegalkey); 439 expect(false).assertTrue(); 440 } catch (err) { 441 console.log("try catch err =" + err); 442 } 443 }) 444 445 /** 446 * @tc.name test hasSync interface 447 * @tc.number SUB_DDM_AppDataFWK_JSPreferences_Sync_0210 448 * @tc.desc test hasSync interface input parameter key is legal. 449 */ 450 it('testhasSyncIllegal002', 0, function () { 451 let legalkey = "1"; 452 legalkey = legalkey.repeat(1024); 453 try { 454 mPref.hasSync(legalkey); 455 } catch (err) { 456 console.log("try catch err =" + err); 457 expect(false).assertTrue(); 458 } 459 }) 460}) 461