1/* 2* Copyright (c) 2021-2022 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, Level, Size, TestType } from "@ohos/hypium"; 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 26export default function storageCallBackTest() { 27 describe('storageCallBackTest', function () { 28 beforeAll(async function () { 29 console.info('beforeAll') 30 }) 31 32 afterAll(async function () { 33 console.info('afterAll') 34 }) 35 beforeEach(async function () { 36 console.info('beforeEach') 37 mPref = storage.getStorageSync(PATH); 38 }) 39 40 afterEach(async function () { 41 console.info('afterEach') 42 storage.deleteStorageSync(PATH); 43 }) 44 45 /** 46 * @tc.name testClear0012 47 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0400 48 * @tc.desc clear callback interface test 49 * @tc.size MediumTest 50 * @tc.type Function 51 * @tc.level Level 2 52 */ 53 it('testClear0012', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 54 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 55 mPref.flushSync(); 56 await mPref.clear(function (err, ret) { 57 expect("defaultvalue").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 58 done(); 59 }); 60 }) 61 62 /** 63 * @tc.name testHasKey0032 64 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1600 65 * @tc.desc has string callback interface test 66 * @tc.size MediumTest 67 * @tc.type Function 68 * @tc.level Level 2 69 */ 70 it('testHasKey0032', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 71 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 72 await mPref.has(KEY_TEST_STRING_ELEMENT, function (err, ret) { 73 expect(true).assertEqual(ret); 74 done(); 75 }) 76 }) 77 78 /** 79 * @tc.name testHasKey0033 80 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1400 81 * @tc.desc has int callback interface test 82 * @tc.size MediumTest 83 * @tc.type Function 84 * @tc.level Level 2 85 */ 86 it('testHasKey0033', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 87 mPref.putSync(KEY_TEST_INT_ELEMENT, 1); 88 await mPref.has(KEY_TEST_INT_ELEMENT, function (err, ret) { 89 expect(true).assertEqual(ret); 90 done(); 91 }) 92 }) 93 94 /** 95 * @tc.name testHasKey0034 96 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1300 97 * @tc.desc has float callback interface test 98 * @tc.size MediumTest 99 * @tc.type Function 100 * @tc.level Level 2 101 */ 102 it('testHasKey0034', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 103 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 1.1); 104 await mPref.has(KEY_TEST_FLOAT_ELEMENT, function (err, ret) { 105 expect(true).assertEqual(ret); 106 done(); 107 }) 108 }) 109 110 /** 111 * @tc.name testHasKey0035 112 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1500 113 * @tc.desc has long callback interface test 114 * @tc.size MediumTest 115 * @tc.type Function 116 * @tc.level Level 2 117 */ 118 it('testHasKey0035', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 119 mPref.putSync(KEY_TEST_LONG_ELEMENT, 0); 120 await mPref.has(KEY_TEST_LONG_ELEMENT, function (err, ret) { 121 expect(true).assertEqual(ret); 122 done(); 123 }) 124 }) 125 126 /** 127 * @tc.name testHasKey0036 128 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1200 129 * @tc.desc has boolean callback interface test 130 * @tc.size MediumTest 131 * @tc.type Function 132 * @tc.level Level 2 133 */ 134 it('testHasKey0036', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 135 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, false); 136 await mPref.has(KEY_TEST_BOOLEAN_ELEMENT, function (err, ret) { 137 expect(true).assertEqual(ret); 138 done(); 139 }) 140 }) 141 142 /** 143 * @tc.name testGetDefValue0062 144 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0700 145 * @tc.desc get defaultValue callback interface test 146 * @tc.size MediumTest 147 * @tc.type Function 148 * @tc.level Level 2 149 */ 150 it('testGetDefValue0062', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 151 mPref.clearSync(); 152 await mPref.get(KEY_TEST_STRING_ELEMENT, "defaultValue", function (err, ret) { 153 expect('defaultValue').assertEqual(ret); 154 done(); 155 }) 156 }) 157 158 /** 159 * @tc.name testGetFloat0072 160 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0800 161 * @tc.desc get float callback interface test 162 * @tc.size MediumTest 163 * @tc.type Function 164 * @tc.level Level 2 165 */ 166 it('testGetFloat0072', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 167 mPref.clearSync(); 168 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 3.0); 169 await mPref.get(KEY_TEST_FLOAT_ELEMENT, 0.0, function (err, ret) { 170 expect(3.0).assertEqual(ret); 171 done(); 172 }) 173 }) 174 175 /** 176 * @tc.name testGetInt0082 177 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0900 178 * @tc.desc get int callback interface test 179 * @tc.size MediumTest 180 * @tc.type Function 181 * @tc.level Level 2 182 */ 183 it('testGetInt0082', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 184 mPref.clearSync(); 185 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 186 await mPref.get(KEY_TEST_INT_ELEMENT, 0.0, function (err, ret) { 187 expect(3).assertEqual(ret); 188 done(); 189 }) 190 }) 191 192 /** 193 * @tc.name testGetLong0092 194 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1000 195 * @tc.desc get long callback interface test 196 * @tc.size MediumTest 197 * @tc.type Function 198 * @tc.level Level 2 199 */ 200 it('testGetLong0092', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 201 mPref.clearSync(); 202 mPref.putSync(KEY_TEST_LONG_ELEMENT, 3); 203 expect(3).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 204 await mPref.get(KEY_TEST_LONG_ELEMENT, 0, function (err, ret) { 205 expect(3).assertEqual(ret); 206 done(); 207 }); 208 }) 209 210 /** 211 * @tc.name testGetString102 212 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1100 213 * @tc.desc get String callback interface test 214 * @tc.size MediumTest 215 * @tc.type Function 216 * @tc.level Level 2 217 */ 218 it('testGetString102', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 219 mPref.clearSync(); 220 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 221 mPref.flushSync(); 222 await mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, ret) { 223 expect('test').assertEqual(ret); 224 done(); 225 }); 226 }) 227 228 /** 229 * @tc.name testPutBoolean0122 230 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1800 231 * @tc.desc put boolean callback interface test 232 * @tc.size MediumTest 233 * @tc.type Function 234 * @tc.level Level 2 235 */ 236 it('testPutBoolean0122', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 237 mPref.clearSync(); 238 await mPref.put(KEY_TEST_BOOLEAN_ELEMENT, true, function (err, ret) { 239 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 240 mPref.flushSync(); 241 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 242 done(); 243 }); 244 }) 245 246 /** 247 * @tc.name testPutFloat0132 248 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1900 249 * @tc.desc put float callback interface test 250 * @tc.size MediumTest 251 * @tc.type Function 252 * @tc.level Level 2 253 */ 254 it('testPutFloat0132', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 255 mPref.clearSync(); 256 await mPref.put(KEY_TEST_FLOAT_ELEMENT, 4.0, function (err, ret) { 257 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 258 mPref.flushSync(); 259 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 260 done(); 261 }); 262 }) 263 264 /** 265 * @tc.name testPutInt0142 266 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_2000 267 * @tc.desc put int callback interface test 268 * @tc.size MediumTest 269 * @tc.type Function 270 * @tc.level Level 2 271 */ 272 it('testPutInt0142', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 273 mPref.clearSync(); 274 await mPref.put(KEY_TEST_INT_ELEMENT, 4, function (err, ret) { 275 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 276 mPref.flushSync(); 277 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 278 done(); 279 }); 280 }) 281 282 /** 283 * @tc.name testPutLong0152 284 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_2100 285 * @tc.desc put long callback interface test 286 * @tc.size MediumTest 287 * @tc.type Function 288 * @tc.level Level 2 289 */ 290 it('testPutLong0152', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 291 mPref.clearSync(); 292 mPref.putSync(KEY_TEST_LONG_ELEMENT, 4); 293 await mPref.put(KEY_TEST_LONG_ELEMENT, 4, function (err, ret) { 294 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 295 mPref.flushSync(); 296 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 297 done(); 298 }); 299 }) 300 301 /** 302 * @tc.name testPutString0162 303 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_2200 304 * @tc.desc put String callback interface test 305 * @tc.size MediumTest 306 * @tc.type Function 307 * @tc.level Level 2 308 */ 309 it('testPutString0162', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 310 mPref.clearSync(); 311 await mPref.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 312 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 313 mPref.flushSync(); 314 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 315 done(); 316 }); 317 }) 318 319 /** 320 * @tc.name testFluesh00172 321 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0200 322 * @tc.desc flush callback interface test 323 * @tc.size MediumTest 324 * @tc.type Function 325 * @tc.level Level 2 326 */ 327 it('testFluesh00172', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 328 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 329 await mPref.flush(function (err, ret) { 330 expect("test").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "default")); 331 done(); 332 }); 333 }) 334 335 336 /** 337 * @tc.name testCallback0172 338 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0300 339 * @tc.desc flush String callback interface test 340 * @tc.size MediumTest 341 * @tc.type Function 342 * @tc.level Level 2 343 */ 344 it('testCallback0172', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function (done) { 345 console.info("*******************testCallback0172 begin."); 346 mPref.clear(function (err, val) { 347 if(err){ 348 console.info("*******************clear error: " + err); 349 expect(false).assertTrue(); 350 } 351 mPref.put(KEY_TEST_STRING_ELEMENT, '', function (err, ret) { 352 if(err){ 353 console.info("*******************put error: " + err); 354 expect(false).assertTrue(); 355 } 356 console.info("*******************put done."); 357 mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre) { 358 if(err){ 359 console.info("*******************get error: " + err); 360 expect(false).assertTrue(); 361 } 362 expect('').assertEqual(pre); 363 mPref.flush(function (err, val) { 364 if(err){ 365 console.info("*******************flush error: " + err); 366 expect(false).assertTrue(); 367 } 368 mPref.get(KEY_TEST_STRING_ELEMENT, "defaultvalue", function (err, pre2) { 369 if(err){ 370 console.info("*******************get error: " + err); 371 expect(false).assertTrue(); 372 } 373 expect('').assertEqual(pre2); 374 done(); 375 console.info("*******************testCallback0172 end."); 376 }) 377 }); 378 }) 379 }); 380 }); 381 }) 382 383 /** 384 * @tc.name testDelete0182 385 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0500 386 * @tc.desc delete callback interface test 387 * @tc.size MediumTest 388 * @tc.type Function 389 * @tc.level Level 2 390 */ 391 392 it('testDelete0182', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 393 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 394 expect("abc").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "default")); 395 mPref.delete(KEY_TEST_STRING_ELEMENT,(err,ret)=>{ 396 expect("default").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "default")) 397 }); 398 done(); 399 }) 400 401 /** 402 * @tc.name testGetDefValue0192 403 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_1700 404 * @tc.desc get defaultValue callback interface test 405 * @tc.size MediumTest 406 * @tc.type Function 407 * @tc.level Level 2 408 */ 409 it('testGetDefValue0192', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 410 await mPref.clear(); 411 await mPref.get(KEY_TEST_BOOLEAN_ELEMENT, true, function (err, ret) { 412 expect(true).assertEqual(ret); 413 done(); 414 }) 415 }) 416 }) 417} 418