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'; 24 25var mPref; 26 27export default function storageSyncTest() { 28 describe('storageSyncTest', function () { 29 beforeAll(async function() { 30 console.info('beforeAll') 31 }) 32 33 afterAll(async function () { 34 console.info('afterAll') 35 }) 36 37 beforeEach(async function() { 38 console.info('beforeEach') 39 mPref = storage.getStorageSync(PATH); 40 }) 41 42 afterEach(async function () { 43 console.info('afterEach') 44 storage.deleteStorageSync(PATH); 45 }) 46 /** 47 * @tc.name testClear001 48 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0100 49 * @tc.desc Clear test 50 * @tc.size MediumTest 51 * @tc.type Function 52 * @tc.level Level 2 53 */ 54 it('testClear001', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 55 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 56 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 57 mPref.flushSync(); 58 mPref.clearSync(); 59 expect("defaultvalue").assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 60 expect(0).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 61 }) 62 63 /** 64 * @tc.name testConstructor002 65 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0100 66 * @tc.desc Constructor test 67 * @tc.size MediumTest 68 * @tc.type Function 69 * @tc.level Level 2 70 */ 71 it('testConstructor002', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 72 expect(typeof mPref).assertEqual("object"); 73 }) 74 75 /** 76 * @tc.name testHasKey003 77 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_2000 78 * @tc.desc put string sync interface test 79 * @tc.size MediumTest 80 * @tc.type Function 81 * @tc.level Level 2 82 */ 83 it('testHasKey003', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 84 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 85 expect(true).assertEqual(mPref.hasSync(KEY_TEST_STRING_ELEMENT)); 86 }) 87 88 /** 89 * @tc.name testHasKey004 90 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1800 91 * @tc.desc put int sync interface test 92 * @tc.size MediumTest 93 * @tc.type Function 94 * @tc.level Level 2 95 */ 96 it('testHasKey004', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 97 mPref.putSync(KEY_TEST_INT_ELEMENT, 1); 98 expect(true).assertEqual(mPref.hasSync(KEY_TEST_INT_ELEMENT)); 99 }) 100 101 /** 102 * @tc.name testHasKey005 103 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1600 104 * @tc.desc put boolean sync interface test 105 * @tc.size MediumTest 106 * @tc.type Function 107 * @tc.level Level 2 108 */ 109 it('testHasKey005', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 110 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, false); 111 expect(true).assertEqual(mPref.hasSync(KEY_TEST_BOOLEAN_ELEMENT)); 112 }) 113 114 /** 115 * @tc.name testHasKey006 116 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1900 117 * @tc.desc put long sync interface test 118 * @tc.size MediumTest 119 * @tc.type Function 120 * @tc.level Level 2 121 */ 122 it('testHasKey006', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 123 mPref.putSync(KEY_TEST_LONG_ELEMENT, 0); 124 expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT)); 125 }) 126 127 /** 128 * @tc.name testHasKey007 129 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1700 130 * @tc.desc put float sync interface test 131 * @tc.size MediumTest 132 * @tc.type Function 133 * @tc.level Level 2 134 */ 135 it('testHasKey007', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 136 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 1.1); 137 expect(true).assertEqual(mPref.hasSync(KEY_TEST_FLOAT_ELEMENT)); 138 }) 139 140 /** 141 * @tc.name testGetBoolean005 142 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1500 143 * @tc.desc put boolean sync interface test 144 * @tc.size MediumTest 145 * @tc.type Function 146 * @tc.level Level 2 147 */ 148 it('testGetBoolean005', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 149 mPref.putSync(KEY_TEST_LONG_ELEMENT, true); 150 expect(true).assertEqual(mPref.hasSync(KEY_TEST_LONG_ELEMENT)); 151 }) 152 153 /** 154 * @tc.name testGetDefValue006 155 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0300 156 * @tc.desc get defaultValue sync interface test 157 * @tc.size MediumTest 158 * @tc.type Function 159 * @tc.level Level 2 160 */ 161 it('testGetDefValue006', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 162 mPref.clearSync(); 163 expect(-1).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, -1)); 164 expect(1.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 1.0)); 165 expect(10000).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 10000)); 166 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, true)); 167 expect('defaultValue').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultValue")); 168 }) 169 170 /** 171 * @tc.name testGetFloat007 172 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0400 173 * @tc.desc put float sync interface test 174 * @tc.size MediumTest 175 * @tc.type Function 176 * @tc.level Level 2 177 */ 178 it('testGetFloat007', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 179 mPref.clearSync(); 180 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 3.0); 181 expect(3.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 182 expect(0.0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0.0)); 183 }) 184 185 /** 186 * @tc.name testGetInt008 187 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0600 188 * @tc.desc put int sync interface test 189 * @tc.size MediumTest 190 * @tc.type Function 191 * @tc.level Level 2 192 */ 193 it('testGetInt008', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 194 mPref.clearSync(); 195 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 196 expect(3).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0.0)); 197 }) 198 199 /** 200 * @tc.name testGetLong009 201 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0800 202 * @tc.desc put long sync interface test 203 * @tc.size MediumTest 204 * @tc.type Function 205 * @tc.level Level 2 206 */ 207 it('testGetLong009', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 208 mPref.clearSync(); 209 mPref.putSync(KEY_TEST_LONG_ELEMENT, 3); 210 expect(3).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 211 expect(0).assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, 0)); 212 }) 213 214 /** 215 * @tc.name testGetString10 216 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1000 217 * @tc.desc put String & int sync interface test 218 * @tc.size MediumTest 219 * @tc.type Function 220 * @tc.level Level 2 221 */ 222 it('testGetString10', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 223 mPref.clearSync(); 224 mPref.putSync(KEY_TEST_STRING_ELEMENT, "test"); 225 mPref.putSync(KEY_TEST_INT_ELEMENT, 3); 226 mPref.flushSync(); 227 expect('test').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 228 expect('defaultvalue').assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, "defaultvalue")); 229 }) 230 231 /** 232 * @tc.name testPutBoolean012 233 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0200 234 * @tc.desc put boolean sync interface test 235 * @tc.size MediumTest 236 * @tc.type Function 237 * @tc.level Level 2 238 */ 239 it('testPutBoolean012', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 240 mPref.clearSync(); 241 mPref.putSync(KEY_TEST_BOOLEAN_ELEMENT, true); 242 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 243 mPref.flushSync(); 244 expect(true).assertEqual(mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, false)); 245 }) 246 247 /** 248 * @tc.name testPutFloat013 249 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0500 250 * @tc.desc put float sync interface test 251 * @tc.size MediumTest 252 * @tc.type Function 253 * @tc.level Level 2 254 */ 255 it('testPutFloat013', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 256 mPref.clearSync(); 257 mPref.putSync(KEY_TEST_FLOAT_ELEMENT, 4.0); 258 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 259 mPref.flushSync(); 260 expect(4.0).assertEqual(mPref.getSync(KEY_TEST_FLOAT_ELEMENT, 0.0)); 261 }) 262 263 /** 264 * @tc.name testPutInt014 265 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0700 266 * @tc.desc put int sync interface test 267 * @tc.size MediumTest 268 * @tc.type Function 269 * @tc.level Level 2 270 */ 271 it('testPutInt014', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 272 mPref.clearSync(); 273 mPref.putSync(KEY_TEST_INT_ELEMENT, 4); 274 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 275 mPref.flushSync(); 276 expect(4).assertEqual(mPref.getSync(KEY_TEST_INT_ELEMENT, 0)); 277 }) 278 279 /** 280 * @tc.name testPutLong015 281 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_0900 282 * @tc.desc put long sync interface test 283 * @tc.size MediumTest 284 * @tc.type Function 285 * @tc.level Level 2 286 */ 287 it('testPutLong015', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 288 mPref.clearSync(); 289 mPref.putSync(KEY_TEST_LONG_ELEMENT, 4); 290 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 291 mPref.flushSync(); 292 expect(4).assertEqual(mPref.getSync(KEY_TEST_LONG_ELEMENT, 0)); 293 }) 294 295 /** 296 * @tc.name testPutString016 297 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1100 298 * @tc.desc put String sync interface test 299 * @tc.size MediumTest 300 * @tc.type Function 301 * @tc.level Level 2 302 */ 303 it('testPutString016', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 304 mPref.clearSync(); 305 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 306 mPref.putSync(KEY_TEST_STRING_ELEMENT, ''); 307 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 308 mPref.flushSync(); 309 expect('').assertEqual(mPref.getSync(KEY_TEST_STRING_ELEMENT, "defaultvalue")); 310 }) 311 312 /** 313 * @tc.name testRegisterObserver001 314 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1200 315 * @tc.desc put interface test 316 * @tc.size MediumTest 317 * @tc.type Function 318 * @tc.level Level 2 319 */ 320 it('testRegisterObserver001', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 321 mPref.clearSync(); 322 var observer = function (key) { 323 expect('abcd').assertEqual(key); 324 }; 325 mPref.on('change', observer); 326 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abcd"); 327 }) 328 329 /** 330 * @tc.name testRegisterObserver002 331 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1300 332 * @tc.desc repeat on interface test 333 * @tc.size MediumTest 334 * @tc.type Function 335 * @tc.level Level 2 336 */ 337 it('testRegisterObserver002', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 338 mPref.clearSync(); 339 var observer = function (key) { 340 console.info('testRegisterObserver001 key' + key); 341 expect('abc').assertEqual(key); 342 }; 343 mPref.on('change', observer); 344 mPref.on('change', observer); 345 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 346 }) 347 348 /** 349 * @tc.name testUnRegisterObserver001 350 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiAsyncTest_1400 351 * @tc.desc off interface test 352 * @tc.size MediumTest 353 * @tc.type Function 354 * @tc.level Level 2 355 */ 356 it('testUnRegisterObserver001', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, function () { 357 var observer = function (key) { 358 console.info('testUnRegisterObserver001 key' + key); 359 expect('').assertEqual(key); 360 }; 361 mPref.on('change', observer); 362 mPref.off('change', observer); 363 mPref.putSync(KEY_TEST_STRING_ELEMENT, "abc"); 364 }) 365 366 /** 367 * @tc.name testGetDefValue001 368 * @tc.number SUB_DistributedData_Preference_SDK_StorageJsApiCallbackTest_0600 369 * @tc.desc get defaultValue callback interface test 370 * @tc.size MediumTest 371 * @tc.type Function 372 * @tc.level Level 2 373 */ 374 it('testGetDefValue001', TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL2, async function (done) { 375 await mPref.clear(); 376 var ret = mPref.getSync(KEY_TEST_BOOLEAN_ELEMENT, true) 377 expect(ret).assertTrue(); 378 done(); 379 }) 380 })} 381