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 = 'v9_test_preferences_promise' 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 mPreference 29var context 30 31describe('_preferencesTest', async function () { 32 beforeAll(async function () { 33 console.info('beforeAll') 34 context = featureAbility.getContext() 35 mPreference = await data_preferences.getPreferences(context, NAME) 36 }) 37 38 afterAll(async function () { 39 console.info('afterAll') 40 await data_preferences.deletePreferences(context, NAME) 41 }) 42 43 beforeEach(async function () { 44 console.info('beforeEach') 45 await mPreference.clear(); 46 await mPreference.flush(); 47 }) 48 49 it('testPreferencesPromise001', 0, function (done) { 50 console.log("testPreferencesPromise001 begin.") 51 try{ 52 if(mPreference== undefined) { 53 console.log("mPreference undefined") 54 expect(false).assertTrue() 55 } 56 mPreference.clear().then(()=>{ 57 mPreference.put(KEY_TEST_STRING_ELEMENT, '123').then((ret)=>{ 58 mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue").then((pre)=>{ 59 expect('123').assertEqual(pre) 60 mPreference.flush().then(()=>{ 61 data_preferences.removePreferencesFromCache(context, NAME).then(()=>{ 62 mPreference.get(KEY_TEST_STRING_ELEMENT, "defaultvalue").then((pre2)=>{ 63 expect('123').assertEqual(pre2) 64 done() 65 console.log("testPreferencesPromise001 end.") 66 }).catch((err) => { 67 console.log("get err =" + err + ", code =" + err.code +", message =" + err.message) 68 expect(false).assertTrue() 69 }) 70 }).catch((err) => { 71 console.log("removePreferencesFromCache err =" + err + ", code =" + err.code +", message =" + err.message) 72 expect(false).assertTrue() 73 }) 74 }).catch((err) => { 75 console.log("flush err =" + err + ", code =" + err.code +", message =" + err.message) 76 expect(false).assertTrue() 77 }) 78 }).catch((err) => { 79 console.log("get err =" + err + ", code =" + err.code +", message =" + err.message) 80 expect(false).assertTrue() 81 }) 82 }).catch((err) => { 83 console.log("put err =" + err + ", code =" + err.code +", message =" + err.message) 84 expect(false).assertTrue() 85 }) 86 }).catch((err) => { 87 console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message) 88 expect(false).assertTrue() 89 }) 90 } catch(err) { 91 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 92 expect(false).assertTrue() 93 } 94 }) 95 96 //get error parsers 97 it('testPreferencesPromise002', 0, function (done) { 98 console.log("testPreferencesPromise002 begin.") 99 try{ 100 mPreference.get(1233).then((ret)=>{ 101 console.log("get err") 102 expect(false).assertTrue() 103 }).catch((err) => { 104 console.log("get err =" + err + ", code =" + err.code +", message =" + err.message) 105 expect(false).assertTrue() 106 }) 107 } catch(err) { 108 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 109 done() 110 console.log("testPreferencesPromise002 end.") 111 } 112 }) 113 114 //get OK parsers 115 it('testPreferencesPromise003', 0, async function (done) { 116 console.log("testPreferencesPromise003 begin.") 117 try{ 118 await mPreference.put(KEY_TEST_STRING_ELEMENT, '123'); 119 mPreference.get(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT).then((ret) => { 120 done() 121 expect('123').assertEqual(ret) 122 console.log("testPreferencesPromise003 end.") 123 }).catch((err) => { 124 console.log("get err =" + err + ", code =" + err.code +", message =" + err.message) 125 expect(false).assertTrue() 126 }) 127 } catch(err) { 128 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 129 expect(false).assertTrue() 130 } 131 }) 132 133 //getAll 134 it('testPreferencesPromise004', 0, function (done) { 135 console.log("testPreferencesPromise004 begin.") 136 try { 137 mPreference.getAll().then((ret) => { 138 done() 139 console.log("testPreferencesPromise004 end.") 140 }).catch((err) => { 141 console.log("getAll err =" + err + ", code =" + err.code + ", message =" + err.message) 142 expect(false).assertTrue() 143 }) 144 } catch (err) { 145 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 146 expect(false).assertTrue() 147 } 148 }) 149 150 //has error parsers 151 it('testPreferencesPromise005', 0, function (done) { 152 console.log("testPreferencesPromise005 begin.") 153 try{ 154 mPreference.has(123).then((val)=>{ 155 console.log("has err") 156 expect(false).assertTrue() 157 }).catch((err) => { 158 console.log("has err =" + err + ", code =" + err.code +", message =" + err.message) 159 expect(false).assertTrue() 160 }) 161 } catch(err) { 162 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 163 done() 164 console.log("testPreferencesPromise005 end.") 165 } 166 }) 167 168 //has OK parsers 169 it('testPreferencesPromise006', 0, function (done) { 170 console.log("testPreferencesPromise006 begin.") 171 try{ 172 mPreference.has(KEY_TEST_STRING_ELEMENT).then((val)=>{ 173 done() 174 console.log("testPreferencesPromise006 end.") 175 }).catch((err) => { 176 console.log("has err =" + err + ", code =" + err.code +", message =" + err.message) 177 expect(false).assertTrue() 178 }) 179 } catch(err) { 180 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 181 expect(false).assertTrue() 182 } 183 }) 184 185 //put error parsers 186 it('testPreferencesPromise007', 0, function (done) { 187 console.log("testPreferencesPromise007 begin.") 188 try{ 189 mPreference.put(1233).then(()=>{ 190 console.log("put err") 191 expect(false).assertTrue() 192 }).catch((err) => { 193 console.log("put err =" + err + ", code =" + err.code +", message =" + err.message) 194 expect(false).assertTrue() 195 }) 196 } catch(err) { 197 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 198 done() 199 console.log("testPreferencesPromise007 end.") 200 } 201 }) 202 203 //put OK parsers 204 it('testPreferencesPromise008', 0, function (done) { 205 console.log("testPreferencesPromise008 begin.") 206 try{ 207 mPreference.put(KEY_TEST_STRING_ELEMENT, KEY_TEST_INT_ELEMENT).then(()=>{ 208 done() 209 console.log("testPreferencesPromise008 end.") 210 }).catch((err) => { 211 console.log("put err =" + err + ", code =" + err.code +", message =" + err.message) 212 expect(false).assertTrue() 213 }) 214 } catch(err) { 215 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 216 expect(false).assertTrue() 217 } 218 }) 219 220 //delete error parsers 221 it('testPreferencesPromise009', 0, function (done) { 222 console.log("testPreferencesPromise009 begin.") 223 try{ 224 mPreference.delete(1233).then(()=>{ 225 console.log("delete err") 226 expect(false).assertTrue() 227 }).catch((err) => { 228 console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message) 229 expect(false).assertTrue() 230 }) 231 } catch(err) { 232 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 233 done() 234 console.log("testPreferencesPromise009 end.") 235 } 236 }) 237 238 //delete OK parsers 239 it('testPreferencesPromise010', 0, function (done) { 240 console.log("testPreferencesPromise010 begin.") 241 try{ 242 mPreference.delete(KEY_TEST_STRING_ELEMENT).then(()=>{ 243 done() 244 console.log("testPreferencesPromise005 end.") 245 }).catch((err) => { 246 console.log("delete err =" + err + ", code =" + err.code +", message =" + err.message) 247 expect(false).assertTrue() 248 }) 249 } catch(err) { 250 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 251 expect(false).assertTrue() 252 } 253 }) 254 255 //clear 256 it('testPreferencesPromise011', 0, function (done) { 257 console.log("testPreferencesPromise011 begin.") 258 try{ 259 mPreference.clear().then(()=>{ 260 done() 261 console.log("testPreferencesPromise011 end.") 262 }).catch((err) => { 263 console.log("clear err =" + err + ", code =" + err.code +", message =" + err.message) 264 expect(false).assertTrue() 265 }) 266 } catch(err) { 267 console.log("trycatch err =" + err + ", code =" + err.code +", message =" + err.message) 268 expect(false).assertTrue() 269 } 270 }) 271 272 //flush OK parsers 273 it('testPreferencesPromise012', 0, function (done) { 274 console.log("testPreferencesPromise012 begin.") 275 try { 276 mPreference.flush().then(() => { 277 done() 278 console.log("testPreferencesPromise012 end.") 279 }).catch((err) => { 280 console.log("flush err =" + err + ", code =" + err.code + ", message =" + err.message) 281 expect(false).assertTrue() 282 }) 283 } catch (err) { 284 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 285 expect(false).assertTrue() 286 } 287 }) 288 289 //on OK parsers 290 it('testPreferencesPromise014', 0, async function (done) { 291 console.log("testPreferencesPromise014 begin.") 292 await mPreference.clear(); 293 try { 294 var observer = function (key) { 295 console.info('testPreferencesPromise014 key' + key); 296 done(); 297 expect(KEY_TEST_STRING_ELEMENT).assertEqual(key); 298 }; 299 mPreference.on('change', observer); 300 await mPreference.put(KEY_TEST_STRING_ELEMENT, "abc"); 301 await mPreference.flush(); 302 } catch (err) { 303 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 304 expect(false).assertTrue() 305 } finally { 306 mPreference.off('change', observer); 307 } 308 }) 309 310 //on err parsers 311 it('testPreferencesPromise015', 0, async function (done) { 312 console.log("testPreferencesPromise015 begin.") 313 await mPreference.clear(); 314 try { 315 var observer = function (key) { 316 console.info('testPreferencesPromise015 key' + key); 317 expect(KEY_TEST_STRING_ELEMENT).assertEqual(key); 318 }; 319 mPreference.on('sschange', observer); 320 expect(false).assertTrue() 321 } catch (err) { 322 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 323 done(); 324 } 325 }) 326 327 //off OK parsers 328 it('testPreferencesPromise016', 0, async function (done) { 329 console.log("testPreferencesPromise016 begin.") 330 try { 331 var observer = function (key) { 332 console.info('testPreferencesPromise016 key' + key); 333 expect(false).assertTrue() 334 }; 335 mPreference.on('change', observer); 336 mPreference.off('change', observer); 337 await mPreference.put(KEY_TEST_STRING_ELEMENT, "abb"); 338 await mPreference.flush(); 339 } catch (err) { 340 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 341 expect(false).assertTrue() 342 } 343 done(); 344 }) 345 346 //off err parsers 347 it('testPreferencesPromise017', 0, async function (done) { 348 console.log("testPreferencesPromise017 begin.") 349 try { 350 var observer = function (key) { 351 console.info('testPreferencesPromise017 key' + key); 352 expect(KEY_TEST_STRING_ELEMENT).assertEqual(key); 353 }; 354 mPreference.on('change', observer); 355 mPreference.off('sschange', observer); 356 expect(false).assertTrue() 357 } catch (err) { 358 console.log("trycatch err =" + err + ", code =" + err.code + ", message =" + err.message) 359 done(); 360 } 361 }) 362})