1/* 2 * Copyright (C) 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 {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it} from 'deccjsunit/index'; 16import distributedObject from '@ohos.data.distributedDataObject'; 17import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; 18import featureAbility from '@ohos.ability.featureAbility'; 19import bundle from '@ohos.bundle'; 20var context; 21const TAG = "OBJECTSTORE_TEST"; 22function changeCallback(sessionId, changeData) { 23 console.info("changeCallback start"); 24 console.info(TAG + "sessionId:" + " " + sessionId); 25 if (changeData != null && changeData != undefined) { 26 changeData.forEach(element => { 27 console.info(TAG + "data changed !" + element); 28 }); 29 } 30 console.info("changeCallback end"); 31} 32 33function statusCallback1(sessionId, networkId, status) { 34 console.info(TAG + "statusCallback1" + " " + sessionId); 35 this.response += "\nstatus changed " + sessionId + " " + status + " " + networkId; 36} 37 38function statusCallback2(sessionId, networkId, status) { 39 console.info(TAG + "statusCallback2" + " " + sessionId); 40 this.response += "\nstatus changed " + sessionId + " " + status + " " + networkId; 41} 42 43const PERMISSION_USER_SET = 1; 44const PERMISSION_USER_NAME = "ohos.permission.DISTRIBUTED_DATASYNC"; 45const CATCH_ERR = -1; 46var tokenID = undefined; 47async function grantPerm() { 48 console.info("====grant Permission start===="); 49 var appInfo = await bundle.getApplicationInfo('com.OpenHarmony.app.test', 0, 100); 50 tokenID = appInfo.accessTokenId; 51 console.info("accessTokenId" + appInfo.accessTokenId + " bundleName:" + appInfo.bundleName); 52 var atManager = abilityAccessCtrl.createAtManager(); 53 var result = await atManager.grantUserGrantedPermission(tokenID, PERMISSION_USER_NAME, PERMISSION_USER_SET); 54 console.info("tokenId" + tokenID + " result:" + result); 55 console.info("====grant Permission end===="); 56} 57describe('objectStoreTest', function () { 58 beforeAll(async function (done) { 59 await grantPerm(); 60 done(); 61 }) 62 63 beforeEach(function () { 64 console.info(TAG + 'beforeEach'); 65 context = featureAbility.getContext(); 66 }) 67 68 afterEach(function () { 69 console.info(TAG + 'afterEach') 70 }) 71 72 afterAll(function () { 73 console.info(TAG + 'afterAll') 74 }) 75 76 console.log(TAG + "*************Unit Test Begin*************"); 77 78 79 /** 80 * @tc.name: V9testsetSessionId001 81 * @tc.desc: object join session and on,object can receive callback when data has been changed 82 * @tc.type: FUNC 83 */ 84 it('V9testcreate001', 0, function () { 85 console.log(TAG + "************* V9testcreate001 start *************"); 86 var g_object; 87 try { 88 g_object = distributedObject.create(123, {name: "Amy", age: 18, isVis: false}); 89 } catch (error) { 90 console.info(error.code + error.message); 91 expect(error.code == 401).assertEqual(true); 92 expect(error.message == "Parameter error. The type of 'context' must be 'Context'.").assertEqual(true); 93 } 94 try { 95 g_object = distributedObject.create(context, 123); 96 } catch (error) { 97 console.info(error.code + error.message); 98 expect(error.code == 401).assertEqual(true); 99 expect(error.message == "Parameter error. The type of 'source' must be 'object'.").assertEqual(true); 100 } 101 g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 102 expect(g_object == undefined).assertEqual(false); 103 g_object.setSessionId("123456").then((data) => { 104 console.info(TAG + "V9testcreate001"); 105 console.info(TAG + data); 106 }).catch((error) => { 107 console.info(TAG + error); 108 }); 109 console.log(TAG + "************* V9testcreate001 end *************"); 110 g_object.setSessionId((error, data) => { 111 console.info(TAG + error + "," + data); 112 }); 113 }) 114 115 /** 116 * @tc.name: V9testsetSessionId001 117 * @tc.desc: object join session and on,object can receive callback when data has been changed 118 * @tc.type: FUNC 119 */ 120 it('V9testsetSessionId001', 0, function () { 121 console.log(TAG + "************* V9testsetSessionId001 start *************"); 122 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 123 expect(g_object == undefined).assertEqual(false); 124 try { 125 g_object.setSessionId(123).then((data) => { 126 console.info(TAG + "setSessionId test"); 127 console.info(TAG + data); 128 }).catch((err) => { 129 console.info(TAG + err.code + err.message); 130 }); 131 } catch (error) { 132 expect(error.code == 401).assertEqual(true); 133 expect(error.message == "Parameter error. The type of 'sessionId' must be 'string'.").assertEqual(true); 134 } 135 console.log(TAG + "************* V9testsetSessionId001 end *************"); 136 g_object.setSessionId((error, data) => { 137 console.info(TAG + error + "," + data); 138 }); 139 }) 140 141 /** 142 * @tc.name: V9testsetSessionId002 143 * @tc.desc: object join session and on,object can receive callback when data has been changed 144 * @tc.type: FUNC 145 */ 146 it('V9testsetSessionId002', 0, function () { 147 console.log(TAG + "************* V9testsetSessionId002 start *************"); 148 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 149 expect(g_object == undefined).assertEqual(false); 150 g_object.setSessionId("session1"); 151 expect("session1" == g_object.__sessionId).assertEqual(true); 152 g_object.setSessionId("session1").then(() => { 153 console.info(TAG + "setSessionId test"); 154 }).catch((error) => { 155 expect(error.code == 15400001).assertEqual(true); 156 expect(error.message == "create table failed").assertEqual(true); 157 }); 158 console.log(TAG + "************* V9testsetSessionId002 end *************"); 159 g_object.setSessionId((error, data) => { 160 console.info(TAG + error + "," + data); 161 }); 162 }) 163 164 /** 165 * @tc.name: V9testsetSessionId003 166 * @tc.desc: object join session and on,object can receive callback when data has been changed 167 * @tc.type: FUNC 168 */ 169 it('V9testsetSessionId003', 0, function () { 170 console.log(TAG + "************* V9testsetSessionId003 start *************"); 171 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 172 expect(g_object == undefined).assertEqual(false); 173 g_object.setSessionId("123456").then((data) => { 174 console.info(TAG + "setSessionId test"); 175 console.info(TAG + data); 176 }).catch((err) => { 177 console.info(TAG + err.code + err.message); 178 }); 179 console.log(TAG + "************* V9testsetSessionId003 end *************"); 180 g_object.setSessionId((error, data) => { 181 console.info(TAG + error + "," + data); 182 }); 183 }) 184 185 /** 186 * @tc.name: V9testsetSessionId004 187 * @tc.desc: object join session and on,object can receive callback when data has been changed 188 * @tc.type: FUNC 189 */ 190 it('V9testsetSessionId004', 0, function () { 191 console.log(TAG + "************* V9testsetSessionId004 start *************"); 192 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 193 expect(g_object == undefined).assertEqual(false); 194 g_object.setSessionId("123456", (error, data) => { 195 console.info(TAG + error + "," + data); 196 console.info(TAG + "setSessionId test"); 197 }); 198 g_object.setSessionId("", (error, data) => { 199 console.info(TAG + error + "," + data); 200 }); 201 try { 202 g_object.setSessionId(1234, (error, data) => { 203 console.info(TAG + error + "," + data); 204 console.info(TAG + "setSessionId test"); 205 }); 206 } catch (error) { 207 console.log(error.code + error.message); 208 expect(error.code == 401).assertEqual(true); 209 expect(error.message == "Parameter error. The type of 'sessionId' must be 'string'.").assertEqual(true); 210 } 211 console.log(TAG + "************* V9testsetSessionId004 end *************"); 212 g_object.setSessionId("", (error, data) => { 213 console.info(TAG + error + "," + data); 214 }); 215 }) 216 217 218 /** 219 * @tc.name: V9testOn001 220 * @tc.desc: object join session and on,object can receive callback when data has been changed 221 * @tc.type: FUNC 222 */ 223 it('V9testOn001', 0, function () { 224 console.log(TAG + "************* V9testOn001 start *************"); 225 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 226 expect(g_object == undefined).assertEqual(false); 227 g_object.setSessionId("session1").then(() => { 228 console.info("join session"); 229 }).catch((error) => { 230 console.info(TAG + error.code + error.message); 231 }); 232 expect("session1" == g_object.__sessionId).assertEqual(true); 233 console.info(TAG + " start call watch change"); 234 g_object.on("change", function (sessionId, changeData) { 235 console.info("V9testOn001 callback start."); 236 if (changeData != null && changeData != undefined) { 237 changeData.forEach(element => { 238 console.info(TAG + "data changed !" + element); 239 }); 240 } 241 console.info("V9testOn001 callback end."); 242 }); 243 244 if (g_object != undefined && g_object != null) { 245 g_object.name = "jack1"; 246 g_object.age = 19; 247 g_object.isVis = true; 248 expect(g_object.name == "jack1").assertEqual(true); 249 expect(g_object.age == 19).assertEqual(true); 250 console.info(TAG + " set data success!"); 251 } else { 252 console.info(TAG + " object is null,set name fail"); 253 } 254 255 console.log(TAG + "************* V9testOn001 end *************"); 256 g_object.setSessionId("", (error, data) => { 257 console.info(TAG + error + "," + data); 258 }); 259 }) 260 261 /** 262 * @tc.name: V9testOn002 263 * @tc.desc: object join session and on,then object change data twice,object can receive two callbacks when data has been changed 264 * @tc.type: FUNC 265 */ 266 it('V9testOn002', 0, function () { 267 console.log(TAG + "************* V9testOn002 start *************"); 268 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 269 expect(g_object == undefined).assertEqual(false); 270 g_object.setSessionId("session1"); 271 expect("session1" == g_object.__sessionId).assertEqual(true); 272 console.info(TAG + " start call watch change"); 273 try { 274 g_object.on(123, function (sessionId, changeData) { 275 console.info("V9testOn002 callback start."); 276 console.info(TAG + sessionId); 277 if (changeData != null && changeData != undefined) { 278 changeData.forEach(element => { 279 console.info(TAG + "data changed !" + element); 280 }); 281 } 282 console.info("V9testOn002 callback end."); 283 }); 284 285 } catch (error) { 286 expect(error.code == 401).assertEqual(true); 287 expect(error.message == "Parameter error. The type of 'type' must be 'string'.").assertEqual(true); 288 } 289 console.log(TAG + "************* V9testOn002 end *************"); 290 g_object.setSessionId("", (error, data) => { 291 console.info(TAG + error + "," + data); 292 }); 293 }) 294 295 /** 296 * @tc.name: testOn003 297 * @tc.desc object join session and on,then object do not change data,object can not receive callbacks 298 * @tc.type: FUNC 299 */ 300 it('V9testOn003', 0, function () { 301 console.log(TAG + "************* V9testOn003 start *************"); 302 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 303 expect(g_object == undefined).assertEqual(false); 304 g_object.setSessionId("session1").then(() => { 305 console.info("join session"); 306 }).catch((error) => { 307 console.info(TAG + error.code + error.message); 308 }); 309 expect("session1" == g_object.__sessionId).assertEqual(true); 310 console.info(TAG + " start call watch change"); 311 try { 312 g_object.on("error", function (sessionId, changeData) { 313 console.info("V9testOn003 callback start."); 314 if (changeData != null && changeData != undefined) { 315 changeData.forEach(element => { 316 console.info(TAG + "data changed !" + element); 317 }); 318 } 319 console.info("V9testOn003 callback end."); 320 }); 321 } catch (error) { 322 expect(error != undefined).assertEqual(true); 323 } 324 console.log(TAG + "************* V9testOn003 end *************"); 325 g_object.setSessionId("", (error, data) => { 326 console.info(TAG + error + "," + data); 327 }); 328 }) 329 330 /** 331 * @tc.name V9testOff001 332 * @tc.desc object join session and on&off,object can not receive callback after off 333 * @tc.type: FUNC 334 */ 335 it('V9testOff001', 0, function () { 336 console.log(TAG + "************* V9testOff001 start *************"); 337 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 338 expect(g_object == undefined).assertEqual(false); 339 g_object.setSessionId("session5").then(() => { 340 console.info("join session"); 341 }).catch((error) => { 342 console.info(TAG + error.code + error.message); 343 }); 344 expect("session5" == g_object.__sessionId).assertEqual(true); 345 346 g_object.on("change", changeCallback); 347 console.info(TAG + " start call watch change"); 348 if (g_object != undefined && g_object != null) { 349 g_object.name = "jack1"; 350 g_object.age = 19; 351 g_object.isVis = true; 352 expect(g_object.name == "jack1").assertEqual(true); 353 expect(g_object.age == 19).assertEqual(true); 354 console.info(TAG + " set data success!"); 355 } else { 356 console.info(TAG + " object is null,set name fail"); 357 } 358 g_object.off("change", changeCallback); 359 console.info(TAG + " end call watch change"); 360 if (g_object != undefined && g_object != null) { 361 g_object.name = "jack2"; 362 g_object.age = 20; 363 g_object.isVis = false; 364 expect(g_object.name == "jack2").assertEqual(true); 365 expect(g_object.age == 20).assertEqual(true); 366 console.info(TAG + " set data success!"); 367 } else { 368 console.info(TAG + " object is null,set name fail"); 369 } 370 console.log(TAG + "************* V9testOff001 end *************"); 371 g_object.setSessionId((error, data) => { 372 console.info(TAG + error + "," + data); 373 }); 374 }) 375 376 /** 377 * @tc.name: V9testOff002 378 * @tc.desc object join session and off,object can not receive callback 379 * @tc.type: FUNC 380 */ 381 it('V9testOff002', 0, function () { 382 console.log(TAG + "************* V9testOff002 start *************"); 383 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 384 expect(g_object == undefined).assertEqual(false); 385 g_object.setSessionId("session6").then(() => { 386 console.info("join session"); 387 }).catch((error) => { 388 console.info(TAG + error.code + error.message); 389 }); 390 expect("session6" == g_object.__sessionId).assertEqual(true); 391 try { 392 g_object.off(123); 393 } catch (error) { 394 expect(error.code == 401).assertEqual(true); 395 expect(error.message == "Parameter error. The type of 'type' must be 'string'.").assertEqual(true); 396 } 397 console.info(TAG + " end call watch change"); 398 console.log(TAG + "************* V9testOff002 end *************"); 399 g_object.setSessionId().then((data) => { 400 console.info(TAG + data); 401 console.info(TAG + "setSessionId test"); 402 }).catch((error) => { 403 console.info(TAG + error.code + error.message); 404 }); 405 }) 406 407 /** 408 * @tc.name: V9testOnStatus001 409 * @tc.desc: object set a listener to watch another object online/offline 410 * @tc.type: FUNC 411 */ 412 it('V9testOnStatus001', 0, function () { 413 console.log(TAG + "************* V9testOnStatus001 start *************"); 414 console.log(TAG + "start watch status"); 415 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 416 expect(g_object == undefined).assertEqual(false); 417 try { 418 g_object.on("status", null); 419 } catch (error) { 420 expect(error.code == 401).assertEqual(true); 421 expect(error.message == "Parameter error. The type of 'callback' must be 'function'.").assertEqual(true); 422 } 423 console.log(TAG + "watch success"); 424 console.log(TAG + "************* V9testOnStatus001 end *************"); 425 g_object.setSessionId("").then((data) => { 426 console.info(TAG + data); 427 console.info(TAG + "setSessionId test"); 428 }).catch((error) => { 429 console.info(TAG + error.code + error.message); 430 }); 431 }) 432 433 /** 434 * @tc.name: V9testOnStatus002 435 * @tc.desc: object set several listener and can unWatch all watcher 436 * @tc.type: FUNC 437 */ 438 it('V9testOnStatus002', 0, function () { 439 console.log(TAG + "************* V9testOnStatus002 start *************"); 440 console.log(TAG + "start watch status"); 441 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 442 expect(g_object == undefined).assertEqual(false); 443 expect(g_object.name == "Amy").assertEqual(true); 444 g_object.on("status", statusCallback1); 445 console.log(TAG + "watch success"); 446 console.log(TAG + "start call unwatch status"); 447 g_object.off("status"); 448 console.log(TAG + "unwatch success"); 449 console.log(TAG + "************* V9testOnStatus002 end *************"); 450 g_object.setSessionId().then(() => { 451 console.info("leave session"); 452 }).catch((error) => { 453 console.info(TAG + error.code + error.message); 454 }); 455 }) 456 457 /** 458 * @tc.name: V9testSave001 459 * @tc.desc: test save local 460 * @tc.type: FUNC 461 */ 462 it('V9testSave001', 0, async function (done) { 463 console.log(TAG + "************* V9testSave001 start *************"); 464 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 465 expect(g_object == undefined).assertEqual(false); 466 467 g_object.setSessionId("mySession1").then(() => { 468 console.info("join session"); 469 }).catch((error) => { 470 console.info(TAG + error.code + error.message); 471 }); 472 expect("mySession1" == g_object.__sessionId).assertEqual(true); 473 474 g_object.save("local").then((ret) => { 475 expect(ret.sessionId == "mySession1").assertEqual(true); 476 expect(ret.version == g_object.__version).assertEqual(true); 477 expect(ret.deviceId == "local").assertEqual(true); 478 done(); 479 480 g_object.setSessionId(""); 481 g_object.name = undefined; 482 g_object.age = undefined; 483 g_object.isVis = undefined; 484 g_object.setSessionId("mySession1"); 485 486 expect(g_object.name == "Amy").assertEqual(true); 487 expect(g_object.age == 18).assertEqual(true); 488 expect(g_object.isVis == false).assertEqual(true); 489 }).catch((err) => { 490 expect("801").assertEqual(err.code.toString()); 491 done(); 492 }); 493 console.log(TAG + "************* V9testSave001 end *************"); 494 }) 495 496 /** 497 * @tc.name: V9testSave002 498 * @tc.desc: test save local 499 * @tc.type: FUNC 500 */ 501 it('V9testSave002', 0, async function (done) { 502 console.log(TAG + "************* V9testSave002 start *************"); 503 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 504 expect(g_object == undefined).assertEqual(false); 505 506 g_object.setSessionId("mySession2"); 507 expect("mySession2" == g_object.__sessionId).assertEqual(true); 508 509 g_object.save("local", (err, result) => { 510 if (err) { 511 expect("801").assertEqual(err.code.toString()); 512 done(); 513 return; 514 } 515 expect(result.sessionId == "mySession2").assertEqual(true); 516 expect(result.version == g_object.__version).assertEqual(true); 517 expect(result.deviceId == "local").assertEqual(true); 518 519 g_object.setSessionId(""); 520 g_object.name = undefined; 521 g_object.age = undefined; 522 g_object.isVis = undefined; 523 g_object.setSessionId("mySession2"); 524 525 expect(g_object.name == "Amy").assertEqual(true); 526 expect(g_object.age == 18).assertEqual(true); 527 expect(g_object.isVis == false).assertEqual(true); 528 done(); 529 }); 530 console.log(TAG + "************* V9testSave002 end *************"); 531 }) 532 533 /** 534 * @tc.name: V9testSave003 535 * @tc.desc: test save local 536 * @tc.type: FUNC 537 */ 538 it('V9testSave003', 0, async function () { 539 console.log(TAG + "************* V9testSave003 start *************"); 540 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 541 expect(g_object == undefined).assertEqual(false); 542 543 g_object.setSessionId("mySession3").then(() => { 544 console.info("join session"); 545 }).catch((error) => { 546 console.info(TAG + error.code + error.message); 547 }); 548 expect("mySession3" == g_object.__sessionId).assertEqual(true); 549 try { 550 g_object.save(1234).then((result) => { 551 expect(result.sessionId == "mySession3").assertEqual(true); 552 expect(result.version == g_object.__version).assertEqual(true); 553 expect(result.deviceId == "local").assertEqual(true); 554 }) 555 } catch (error) { 556 expect(error.message == "Parameter error. The type of 'deviceId' must be 'string'.").assertEqual(true); 557 } 558 g_object.save("errorDeviceId").then((result) => { 559 expect(result.sessionId == "mySession3").assertEqual(true); 560 expect(result.version == g_object.__version).assertEqual(true); 561 expect(result.deviceId == "local").assertEqual(true); 562 }).catch((error) => { 563 expect(error != undefined).assertEqual(true); 564 }); 565 566 try { 567 g_object.save("local", 123); 568 } catch (error) { 569 expect(error.code == 401).assertEqual(true); 570 expect(error.message == "Parameter error. The type of 'callback' must be 'function'.").assertEqual(true); 571 } 572 console.log(TAG + "************* V9testSave003 end *************"); 573 g_object.setSessionId().then(() => { 574 console.info("leave session"); 575 }).catch((error) => { 576 console.info(TAG + error.code + error.message); 577 }); 578 }) 579 580 /** 581 * @tc.name: V9testRevokeSave001 582 * @tc.desc: test RevokeSave 583 * @tc.type: FUNC 584 */ 585 it('V9testRevokeSave001', 0, async function (done) { 586 console.log(TAG + "************* V9testRevokeSave001 start *************"); 587 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 588 expect(g_object == undefined).assertEqual(false); 589 590 g_object.setSessionId("mySession4"); 591 expect("mySession4" == g_object.__sessionId).assertEqual(true); 592 593 g_object.save("local", (err, result) => { 594 if (err) { 595 expect("801").assertEqual(err.code.toString()); 596 done(); 597 return; 598 } 599 expect(result.sessionId == "mySession4").assertEqual(true); 600 expect(result.version == g_object.__version).assertEqual(true); 601 expect(result.deviceId == "local").assertEqual(true); 602 g_object.revokeSave((err, result) => { 603 if (err) { 604 expect("801").assertEqual(err.code.toString()); 605 done(); 606 return; 607 } 608 expect("mySession4" == result.sessionId).assertEqual(true); 609 g_object.setSessionId(""); 610 g_object.name = undefined; 611 g_object.age = undefined; 612 g_object.isVis = undefined; 613 g_object.setSessionId("mySession4"); 614 615 expect(g_object.name == undefined).assertEqual(true); 616 expect(g_object.age == undefined).assertEqual(true); 617 expect(g_object.isVis == undefined).assertEqual(true); 618 done(); 619 }) 620 }); 621 console.log(TAG + "************* V9testRevokeSave001 end *************"); 622 }) 623 624 /** 625 * @tc.name: V9testRevokeSave002 626 * @tc.desc: test save local 627 * @tc.type: FUNC 628 * @tc.require: 629 */ 630 it('V9testRevokeSave002', 0, async function () { 631 console.log(TAG + "************* V9testRevokeSave002 start *************"); 632 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 633 expect(g_object != undefined).assertEqual(true); 634 635 g_object.setSessionId("mySession5"); 636 expect("mySession5" == g_object.__sessionId.toString()).assertEqual(true); 637 638 let result = await g_object.save("local").catch((err)=> { 639 expect("801").assertEqual(err.code.toString()); 640 return CATCH_ERR; 641 }); 642 if (result === CATCH_ERR) { 643 return; 644 } 645 646 expect(result.sessionId.toString() == "mySession5").assertEqual(true); 647 expect(result.version.toString() == g_object.__version.toString()).assertEqual(true); 648 expect(result.deviceId.toString() == "local").assertEqual(true); 649 650 result = await g_object.revokeSave().catch((err)=> { 651 expect("801").assertEqual(err.code.toString()); 652 return CATCH_ERR; 653 }); 654 655 if (result === CATCH_ERR) { 656 return; 657 } 658 g_object.setSessionId(""); 659 g_object.name = undefined; 660 g_object.age = undefined; 661 g_object.isVis = undefined; 662 g_object.setSessionId("mySession5"); 663 664 expect(g_object.name == undefined).assertEqual(true); 665 expect(g_object.age == undefined).assertEqual(true); 666 expect(g_object.isVis == undefined).assertEqual(true); 667 668 console.log(TAG + "************* V9testRevokeSave002 end *************"); 669 }) 670 671 /** 672 * @tc.name: V9testRevokeSave003 673 * @tc.desc: test RevokeSave 674 * @tc.type: FUNC 675 */ 676 it('V9testRevokeSave003', 0, async function () { 677 console.log(TAG + "************* V9testRevokeSave003 start *************"); 678 var g_object = distributedObject.create(context, {name: "Amy", age: 18, isVis: false}); 679 expect(g_object == undefined).assertEqual(false); 680 g_object.setSessionId("mySession6").then(() => { 681 console.info("join session"); 682 }).catch((error) => { 683 console.info(TAG + error.code + error.message); 684 }); 685 expect("mySession6" == g_object.__sessionId).assertEqual(true); 686 let result = await g_object.save("local").catch((err) => { 687 expect("801").assertEqual(err.code.toString()); 688 return CATCH_ERR; 689 }); 690 if (result === CATCH_ERR) { 691 return; 692 } 693 expect(result.sessionId == "mySession6").assertEqual(true); 694 expect(result.version == g_object.__version).assertEqual(true); 695 expect(result.deviceId == "local").assertEqual(true); 696 try { 697 g_object.revokeSave(123).then((result) => { 698 expect(result.sessionId == "mySession6").assertEqual(true); 699 }).catch((err) => { 700 console.log(err.code + err.message); 701 }); 702 } catch (error) { 703 console.info(error.code + error.message); 704 expect("401").assertEqual(error.code.toString()); 705 } 706 console.log(TAG + "************* V9testRevokeSave003 end *************"); 707 }) 708 709 console.log(TAG + "*************Unit Test End*************"); 710})