1/* 2 * Copyright (c) 2023 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 */ 15 16import avSession from '@ohos.multimedia.avsession'; 17import featureAbility from '@ohos.ability.featureAbility'; 18//import image from '@ohos.multimedia.image'; 19//import resourceManager from '@ohos.resourceManager'; 20import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect, TestType, Size, Level } from '@ohos/hypium'; 21 22 23const TAG = "[AVSessionControllerJSTest]"; 24export default function AVSessionControllerJsTest() { 25 describe("AVSessionControllerJsTest", function () { 26 let session = null; 27 let controller = null; 28 let receivedCallback = false; 29 let receivedCallback2 = false; 30 let receivedString = null; 31 let receivedString2 = null; 32 let receivedParam = null; 33 let receivedParam2 = null; 34 let receivedExtras = null; 35 let receivedExtras2 = null; 36 const INVALID_STRING = "invalid string"; 37 const UPDATE_LYRICS_EVENT = "dynamic_lyrics"; 38 const UPDATE_LYRICS_WANT_PARAMS = { 39 lyrics: "This is my lyrics" 40 }; 41 const COMMON_COMMAND_STRING = "common_command"; 42 const COMMON_COMMAND_PARAMS = { 43 command: "This is my command" 44 }; 45 const CUSTOM_EXTRAS = { 46 extrasKey: "This is custom media packet" 47 }; 48 const QUEUE_ITEM_ID = 666; 49 const QUEUE_ITEM_LENGTH = 1; 50 const QUEUE_ITEM_KEY_WORD = "QUEUE_ITEM_RELATE"; 51 const EXTRAS = { 52 "items_author": "name" 53 }; 54 const AVFileDescriptor = { 55 fd: 0X00000AC6, 56 offset: 0, 57 length: 10 58 }; 59 const AVDataSrcDescriptor = { 60 fileSize: -1, 61 callback: 5 62 }; 63 const QUEUE_ITEM_DESCRIPTION = { 64 mediaId: QUEUE_ITEM_KEY_WORD, 65 title: QUEUE_ITEM_KEY_WORD, 66 subtitle:'SUB_QUEUE_ITEM_RELATE', 67 mediaType: 'audio', 68 artist: 'lihua', 69 duration: 166, 70 fdSrc: AVFileDescriptor, 71 dataSrc: AVDataSrcDescriptor, 72 extras: EXTRAS, 73 iconUri: "iconUri", 74 mediaSize: 10, 75 albumTitle: "albumTitle", 76 albumCoverUri: "albumCoverUri", 77 lyricContent: "lyricContent", 78 lyricUri: "lyricUri", 79 mediaUri: "mediaUri", 80 startPosition: 0, 81 creditsPosition: 0, 82 appName: "appName", 83 displayTags: avSession.DisplayTag.TAG_AUDIO_VIVID, 84 drmScheme: "C83EADEOA7FB9E76B" 85 }; 86 const QUEUE_ITEM_DESCRIPTION_ERROR = { 87 mediaId: QUEUE_ITEM_KEY_WORD, 88 title: QUEUE_ITEM_KEY_WORD, 89 extras: EXTRAS, 90 icon: undefined, 91 iconUri: "iconUri", 92 mediaSize: 10, 93 albumTitle: "albumTitle", 94 albumCoverUri: "albumCoverUri", 95 lyricContent: "lyricContent", 96 lyricUri: "lyricUri", 97 mediaUri: "mediaUri", 98 startPosition: 0, 99 creditsPosition: 0, 100 appName: "appName", 101 drmScheme: "C83EADEOA7FB9E76S" 102 }; 103 const QUEUE_ITEM = { 104 itemId: QUEUE_ITEM_ID, 105 description: QUEUE_ITEM_DESCRIPTION 106 } 107 const QUEUE_ITEM_ERROR = { 108 itemId: QUEUE_ITEM_ID, 109 description: QUEUE_ITEM_DESCRIPTION_ERROR 110 } 111 const ITEMS_ARRAY = [QUEUE_ITEM]; 112 const ITEMS_ARRAY_ERROR = [QUEUE_ITEM_ERROR]; 113 const QUEUE_TITLE = "title"; 114 const SKIP_ITEM_ID = 200; 115 116 117 118 beforeAll(async function () { 119 await initSession() 120 await getController(); 121 console.info(TAG + "Create session and controller finished, beforeAll called"); 122 }) 123 124 afterAll(function () { 125 controller.destroy(); 126 session.destroy(); 127 console.info(TAG + 'afterAll called'); 128 }) 129 130 beforeEach(function () { 131 console.info(TAG + 'beforeEach called'); 132 }) 133 134 afterEach(function () { 135 console.info(TAG + 'afterEach called'); 136 }) 137 138 async function initSession() { 139 await avSession.createAVSession(featureAbility.getContext(), "AVSessionDemo", 'audio').then(data => { 140 session = data; 141 }).catch((err) => { 142 console.error(TAG + "Create AVSession error " + JSON.stringify(err)); 143 expect().assertFail(); 144 }); 145 session.activate(); 146 } 147 148 async function getController() { 149 await session.getController().then(data => { 150 controller = data 151 }).catch(err => { 152 console.error(TAG + "Get controller error " + JSON.stringify(err)); 153 expect().assertFail(); 154 }); 155 } 156 157 function sleep(time) { 158 return new Promise((resolve) => setTimeout(resolve, time)); 159 } 160 161 function dynamicLyricsCallback1(sessionEvent, args) { 162 console.log(TAG + "Callback1 received event: " + JSON.stringify(sessionEvent)); 163 console.log(TAG + "Callback1 received args: " + JSON.stringify(args)); 164 if (sessionEvent != UPDATE_LYRICS_EVENT) { 165 console.error(TAG + "Callback1 lyrics event unmatch"); 166 expect().assertFail(); 167 } 168 receivedCallback = true; 169 receivedString = sessionEvent; 170 receivedParam = args; 171 } 172 173 function dynamicLyricsCallback2(sessionEvent, args) { 174 console.log(TAG + "Callback2 received event: " + JSON.stringify(sessionEvent)); 175 console.log(TAG + "Callback2 received args: " + JSON.stringify(args)); 176 if (sessionEvent != UPDATE_LYRICS_EVENT) { 177 console.error(TAG + "Callback2 lyrics event unmatch"); 178 expect().assertFail(); 179 } 180 receivedCallback2 = true; 181 receivedString2 = sessionEvent; 182 receivedParam2 = args; 183 } 184 185 function extrasChangeCallback1(extras) { 186 console.log(TAG + "Callback1 received args: " + JSON.stringify(extras)); 187 if (extras.extrasKey != CUSTOM_EXTRAS.extrasKey) { 188 console.error(TAG + "Callback1 extras unmatch"); 189 expect().assertFail(); 190 } 191 receivedCallback = true; 192 receivedExtras = extras; 193 } 194 195 function extrasChangeCallback2(extras) { 196 console.log(TAG + "Callback2 received args: " + JSON.stringify(extras)); 197 if (extras.extrasKey != CUSTOM_EXTRAS.extrasKey) { 198 console.error(TAG + "Callback2 extras unmatch"); 199 expect().assertFail(); 200 } 201 receivedCallback2 = true; 202 receivedExtras2 = extras; 203 } 204 205 function queueTitleCallback1(title) { 206 console.log(TAG + "queueTitleCallback1 received Title " + JSON.stringify(title)); 207 if (title != QUEUE_TITLE) { 208 console.error(TAG + "queueTitleCallback1 received Title unmatch"); 209 expect().assertFail(); 210 } 211 receivedCallback = true; 212 } 213 214 function queueTitleCallback2(title) { 215 console.log(TAG + "queueTitleCallback2 received Title " + JSON.stringify(title)); 216 if (title != QUEUE_TITLE) { 217 console.error(TAG + "queueTitleCallback2 received Title unmatch"); 218 expect().assertFail(); 219 } 220 receivedCallback2 = true; 221 } 222 223 function queueItemsCallback1(items) { 224 console.log(TAG + "queueItemsCallback1 received items length: " + items.length); 225 console.log(TAG + "queueItemsCallback1 received items id: " + items[0].itemId); 226 console.log(TAG + "queueItemsCallback1 received items title: " + items[0].description.title); 227 if (items.length != QUEUE_ITEM_LENGTH) { 228 console.error(TAG + "queueItemsCallback1 received items length unmatch"); 229 expect().assertFail(); 230 return; 231 } 232 if (items[0].itemId != QUEUE_ITEM_ID) { 233 console.error(TAG + "queueItemsCallback1 received items id unmatch"); 234 expect().assertFail(); 235 return; 236 } 237 if (items[0].description.title != QUEUE_ITEM_KEY_WORD) { 238 console.error(TAG + "queueItemsCallback1 received items key word unmatch"); 239 expect().assertFail(); 240 return; 241 } 242 receivedCallback = true; 243 } 244 245 function queueItemsCallback2(items) { 246 console.log(TAG + "queueItemsCallback2 received items length: " + items.length); 247 console.log(TAG + "queueItemsCallback2 received items id: " + items[0].itemId); 248 console.log(TAG + "queueItemsCallback2 received items title: " + items[0].description.title); 249 if (items.length != QUEUE_ITEM_LENGTH) { 250 console.error(TAG + "queueItemsCallback2 received items length unmatch"); 251 expect().assertFail(); 252 return; 253 } 254 if (items[0].itemId != QUEUE_ITEM_ID) { 255 console.error(TAG + "queueItemsCallback2 received items id unmatch"); 256 expect().assertFail(); 257 return; 258 } 259 if (items[0].description.title != QUEUE_ITEM_KEY_WORD) { 260 console.error(TAG + "queueItemsCallback2 received items key word unmatch"); 261 expect().assertFail(); 262 return; 263 } 264 receivedCallback2 = true; 265 } 266 267 function skipToQueueItemCallback1(itemId) { 268 console.log(TAG + "skipToQueueItemCallback1 received itemid " + itemId); 269 if (itemId != SKIP_ITEM_ID) { 270 console.error(TAG + "skipToQueueItemCallback1 received uid unmatch"); 271 expect().assertFail(); 272 } 273 receivedCallback = true; 274 } 275 276 function skipToQueueItemCallback2(itemId) { 277 console.log(TAG + "skipToQueueItemCallback2 received itemid " + itemId); 278 if (itemId != SKIP_ITEM_ID) { 279 console.error(TAG + "skipToQueueItemCallback2 received uid unmatch"); 280 expect().assertFail(); 281 } 282 receivedCallback2 = true; 283 } 284 285 async function onCallbackInvalidSession(eventName) { 286 function callback1() {} 287 await session.destroy(); 288 try { 289 session.on(eventName, callback1) 290 expect().assertFail(); 291 } catch (error) { 292 expect(error.code).assertEqual(6600102); 293 } 294 await initSession() 295 await getController(); 296 } 297 298 /* * 299 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0100 300 * @tc.name : bind one callback on sessionEvent event 301 * @tc.desc : Testing on sessionEvent callback 302 * @tc.size : MediumTest 303 * @tc.type : Function 304 * @tc.level : Level2 305 */ 306 it("SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 307 controller.on('sessionEvent', dynamicLyricsCallback1); 308 await session.dispatchSessionEvent(UPDATE_LYRICS_EVENT, UPDATE_LYRICS_WANT_PARAMS).catch((err) => { 309 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0100 error " + JSON.stringify(err)); 310 expect().assertFail(); 311 done(); 312 }); 313 sleep(200).then(() => { 314 if (receivedCallback) { 315 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0100 Received session event change event"); 316 expect(receivedString == UPDATE_LYRICS_EVENT).assertTrue(); 317 expect(receivedParam.lyrics == UPDATE_LYRICS_WANT_PARAMS.lyrics).assertTrue(); 318 } else { 319 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0100 Session event change event not received"); 320 expect().assertFail(); 321 } 322 receivedCallback = false; 323 receivedString = null; 324 receivedParam = null; 325 done(); 326 }) 327 }) 328 329 /* * 330 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0200 331 * @tc.name : bind two callback on sessionEvent event 332 * @tc.desc : Testing on sessionEvent callback 333 * @tc.size : MediumTest 334 * @tc.type : Function 335 * @tc.level : Level2 336 */ 337 it("SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 338 controller.on('sessionEvent', dynamicLyricsCallback1); 339 controller.on('sessionEvent', dynamicLyricsCallback2); 340 await session.dispatchSessionEvent(UPDATE_LYRICS_EVENT, UPDATE_LYRICS_WANT_PARAMS).catch((err) => { 341 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0200 Set session event error " + JSON.stringify(err)); 342 expect().assertFail(); 343 done(); 344 }); 345 await sleep(200); 346 if (receivedCallback && receivedCallback2) { 347 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0200 Received session event change event"); 348 expect(receivedString == UPDATE_LYRICS_EVENT).assertTrue(); 349 expect(receivedParam.lyrics == UPDATE_LYRICS_WANT_PARAMS.lyrics).assertTrue(); 350 expect(receivedString2 == UPDATE_LYRICS_EVENT).assertTrue(); 351 expect(receivedParam2.lyrics == UPDATE_LYRICS_WANT_PARAMS.lyrics).assertTrue(); 352 expect(true).assertTrue(); 353 } else { 354 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSESSIONEVENT_0200 Session event change event not received"); 355 expect().assertFail(); 356 } 357 receivedCallback = false; 358 receivedCallback2 = false; 359 receivedString2 = null; 360 receivedParam2 = null; 361 receivedString2 = null; 362 receivedParam2 = null; 363 done(); 364 }) 365 366 /* * 367 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0100 368 * @tc.name : bind two callbacks on sessionEvent event, off one of them 369 * @tc.desc : Testing offSessionEvent callback 370 * @tc.size : MediumTest 371 * @tc.type : Function 372 * @tc.level : Level0 373 */ 374 it("SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 375 controller.on('sessionEvent', dynamicLyricsCallback1); 376 controller.on('sessionEvent', dynamicLyricsCallback2); 377 controller.off('sessionEvent', dynamicLyricsCallback2); 378 await session.dispatchSessionEvent(UPDATE_LYRICS_EVENT, UPDATE_LYRICS_WANT_PARAMS).catch((err) => { 379 console.error(TAG + "Set session event error " + JSON.stringify(err)); 380 expect().assertFail(); 381 done(); 382 }); 383 await sleep(200); 384 if (receivedCallback && !receivedCallback2) { 385 console.log(TAG + "Received session event change event"); 386 expect(receivedString == UPDATE_LYRICS_EVENT).assertTrue(); 387 expect(receivedParam.lyrics == UPDATE_LYRICS_WANT_PARAMS.lyrics).assertTrue(); 388 expect(true).assertTrue(); 389 } else { 390 console.error(TAG + "Session event change event not received"); 391 expect().assertFail(); 392 } 393 receivedCallback = false; 394 receivedString = null; 395 receivedParam = null; 396 done(); 397 }) 398 399 /* * 400 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0200 401 * @tc.name : bind two callbacks on sessionEvent event, off two of them 402 * @tc.desc : Testing offSessionEvent callback 403 * @tc.size : MediumTest 404 * @tc.type : Function 405 * @tc.level : Level0 406 */ 407 it("SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 408 controller.on('sessionEvent', dynamicLyricsCallback1); 409 controller.on('sessionEvent', dynamicLyricsCallback2); 410 controller.off('sessionEvent', dynamicLyricsCallback1); 411 controller.off('sessionEvent', dynamicLyricsCallback2); 412 413 await session.dispatchSessionEvent(UPDATE_LYRICS_EVENT, UPDATE_LYRICS_WANT_PARAMS).catch((err) => { 414 console.error(TAG + "Set session event error " + JSON.stringify(err)); 415 expect().assertFail(); 416 done(); 417 }); 418 await sleep(200); 419 if (!receivedCallback && !receivedCallback2) { 420 console.log(TAG + "Received session event change event"); 421 expect(true).assertTrue(); 422 } else { 423 console.error(TAG + "Session event change event not received"); 424 expect().assertFail(); 425 } 426 receivedCallback = false; 427 done(); 428 }) 429 430 /* * 431 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0300 432 * @tc.name : bind two callbacks on sessionEvent event, off all of them 433 * @tc.desc : Testing offSessionEvent callback 434 * @tc.size : MediumTest 435 * @tc.type : Function 436 * @tc.level : Level0 437 */ 438 it("SUB_MULTIMEDIA_AVSESSION_OFFSESSIONEVENT_0300", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 439 controller.on('sessionEvent', dynamicLyricsCallback1); 440 controller.on('sessionEvent', dynamicLyricsCallback2); 441 controller.off('sessionEvent'); 442 443 await session.dispatchSessionEvent(UPDATE_LYRICS_EVENT, UPDATE_LYRICS_WANT_PARAMS).catch((err) => { 444 console.error(TAG + "Set session event error " + JSON.stringify(err)); 445 expect().assertFail(); 446 done(); 447 }); 448 await sleep(200); 449 if (!receivedCallback && !receivedCallback2) { 450 console.log(TAG + "Received session event change event"); 451 expect(true).assertTrue(); 452 } else { 453 console.error(TAG + "Session event change event not received"); 454 expect().assertFail(); 455 } 456 receivedCallback = false; 457 done(); 458 }) 459 460 /* * 461 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0100 462 * @tc.name : controller send common command - callback 463 * @tc.desc : Testing call sendCommonCommand(callback) 464 * @tc.size : MediumTest 465 * @tc.type : Function 466 * @tc.level : Level2 467 */ 468 it("SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 469 controller.sendCommonCommand(COMMON_COMMAND_STRING, COMMON_COMMAND_PARAMS, (err) => { 470 if (err) { 471 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0100 error " + JSON.stringify(err)); 472 expect().assertFail(); 473 done(); 474 } 475 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0100 finished"); 476 expect(true).assertTrue(); 477 done(); 478 }); 479 }) 480 481 /* * 482 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0200 483 * @tc.name : controller send common command - promise 484 * @tc.desc : Testing call sendCommonCommand(promise) 485 * @tc.size : MediumTest 486 * @tc.type : Function 487 * @tc.level : Level2 488 */ 489 it("SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 490 await controller.sendCommonCommand(COMMON_COMMAND_STRING, COMMON_COMMAND_PARAMS).catch((err) => { 491 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0200 error " + JSON.stringify(err)); 492 expect().assertFail(); 493 done(); 494 }); 495 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SENDCOMMONCOMMAND_0200 finished"); 496 done(); 497 }) 498 499 /* * 500 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100 501 * @tc.name : controller get extras - callback 502 * @tc.desc : Testing call getExtras(callback) 503 * @tc.size : MediumTest 504 * @tc.type : Function 505 * @tc.level : Level2 506 */ 507 it("SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 508 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100 start"); 509 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 510 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100 error " + JSON.stringify(err)); 511 expect().assertFail(); 512 }); 513 514 controller.getExtras((err, extras) => { 515 if (err) { 516 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100 error " + JSON.stringify(err)); 517 expect().assertFail(); 518 done(); 519 } 520 expect(extras.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 521 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0100 finished"); 522 done(); 523 }); 524 }) 525 526 /* * 527 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200 528 * @tc.name : controller get extras - promise 529 * @tc.desc : Testing call getExtras(promise) 530 * @tc.size : MediumTest 531 * @tc.type : Function 532 * @tc.level : Level2 533 */ 534 it("SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 535 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200 start"); 536 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 537 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200 error " + JSON.stringify(err)); 538 expect().assertFail(); 539 }); 540 541 let extras = await controller.getExtras().catch((err) => { 542 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200 error " + JSON.stringify(err)); 543 expect().assertFail(); 544 done(); 545 }) 546 expect(extras.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 547 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETEXTRAS_0200 finished"); 548 done(); 549 }) 550 551 /* * 552 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100 553 * @tc.name : bind one callback on extrasChange event 554 * @tc.desc : Testing on extrasChange callback 555 * @tc.size : MediumTest 556 * @tc.type : Function 557 * @tc.level : Level2 558 */ 559 it("SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 560 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100 start"); 561 controller.on('extrasChange', extrasChangeCallback1); 562 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 563 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100 error " + JSON.stringify(err)); 564 expect().assertFail(); 565 done(); 566 }); 567 sleep(200).then(() => { 568 if (receivedCallback) { 569 console.log(TAG + "Received extras change event"); 570 expect(receivedExtras.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 571 } else { 572 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100 extras change event not received"); 573 expect().assertFail(); 574 } 575 receivedCallback = false; 576 receivedExtras = null; 577 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0100 finished"); 578 done(); 579 }) 580 }) 581 582 /* * 583 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200 584 * @tc.name : bind two callback on extrasChange event 585 * @tc.desc : Testing on extrasChange callback 586 * @tc.size : MediumTest 587 * @tc.type : Function 588 * @tc.level : Level2 589 */ 590 it("SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 591 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200 start"); 592 controller.on('extrasChange', extrasChangeCallback1); 593 controller.on('extrasChange', extrasChangeCallback2); 594 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 595 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200 error " + JSON.stringify(err)); 596 expect().assertFail(); 597 done(); 598 }); 599 sleep(200).then(() => { 600 if (receivedCallback && receivedCallback2) { 601 console.log(TAG + "Received extras change event"); 602 expect(receivedExtras.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 603 expect(receivedExtras2.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 604 } else { 605 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200 extras change event not received"); 606 expect().assertFail(); 607 } 608 receivedCallback = false; 609 receivedCallback2 = false; 610 receivedExtras = null; 611 receivedExtras2 = null; 612 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ONEXTRASCHANGE_0200 finished"); 613 done(); 614 }) 615 }) 616 617 /* * 618 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0100 619 * @tc.name : bind two callbacks on extrasChange event, off one of them 620 * @tc.desc : Testing offExtrasChange callback 621 * @tc.size : MediumTest 622 * @tc.type : Function 623 * @tc.level : Level0 624 */ 625 it("SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 626 controller.on('extrasChange', extrasChangeCallback1); 627 controller.on('extrasChange', extrasChangeCallback2); 628 controller.off('extrasChange', extrasChangeCallback2); 629 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 630 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0100 error " + JSON.stringify(err)); 631 expect().assertFail(); 632 done(); 633 }); 634 await sleep(200); 635 if (receivedCallback && !receivedCallback2) { 636 console.log(TAG + "Received extras change event"); 637 expect(receivedExtras.extrasKey == CUSTOM_EXTRAS.extrasKey).assertTrue(); 638 expect(true).assertTrue(); 639 } else { 640 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0100 Extras change event not received"); 641 expect().assertFail(); 642 } 643 receivedCallback = false; 644 receivedExtras = null; 645 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0100 finished"); 646 done(); 647 }) 648 649 /* * 650 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200 651 * @tc.name : bind two callbacks on extrasChange event, off two of them 652 * @tc.desc : Testing offExtrasChange callback 653 * @tc.size : MediumTest 654 * @tc.type : Function 655 * @tc.level : Level0 656 */ 657 it("SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 658 controller.on('extrasChange', extrasChangeCallback1); 659 controller.on('extrasChange', extrasChangeCallback2); 660 controller.off('extrasChange', extrasChangeCallback1); 661 controller.off('extrasChange', extrasChangeCallback2); 662 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 663 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200 error " + JSON.stringify(err)); 664 expect().assertFail(); 665 done(); 666 }); 667 await sleep(200); 668 if (!receivedCallback && !receivedCallback2) { 669 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200 Success, not received extras change event"); 670 expect(true).assertTrue(); 671 } else { 672 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200 failed, extras change event received"); 673 expect().assertFail(); 674 } 675 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0200 finished"); 676 done(); 677 }) 678 679 /* * 680 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300 681 * @tc.name : bind two callbacks on extrasChange event, off all of them 682 * @tc.desc : Testing offExtrasChange callback 683 * @tc.size : MediumTest 684 * @tc.type : Function 685 * @tc.level : Level0 686 */ 687 it("SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 688 controller.on('extrasChange', extrasChangeCallback1); 689 controller.on('extrasChange', extrasChangeCallback2); 690 controller.off('extrasChange'); 691 await session.setExtras(CUSTOM_EXTRAS).catch((err) => { 692 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300 error " + JSON.stringify(err)); 693 expect().assertFail(); 694 done(); 695 }); 696 await sleep(200); 697 if (!receivedCallback && !receivedCallback2) { 698 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300Success, not received extras change event"); 699 expect(true).assertTrue(); 700 } else { 701 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300 failed, extras change event received"); 702 expect().assertFail(); 703 } 704 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFEXTRASCHANGE_0300 finished"); 705 done(); 706 }) 707 708 /* * 709 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0100 710 * @tc.name : bind one callback on queueItemsChange event 711 * @tc.desc : Testing on queueItemsChange callback 712 * @tc.size : MediumTest 713 * @tc.type : Function 714 * @tc.level : Level2 715 */ 716 it("SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 717 controller.on('queueItemsChange', queueItemsCallback1); 718 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 719 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0100 setAVQueueItems error " + JSON.stringify(err)); 720 expect().assertFail(); 721 done(); 722 }); 723 sleep(200).then(() => { 724 if (receivedCallback) { 725 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0100 Received queue items change"); 726 expect(true).assertTrue(); 727 } else { 728 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0100 Session queue items change not received"); 729 expect().assertFail(); 730 } 731 receivedCallback = false; 732 done(); 733 }); 734 }) 735 736 /* * 737 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0200 738 * @tc.name : bind two callback on queueItemsChange event 739 * @tc.desc : Testing on queueItemsChange callback 740 * @tc.size : MediumTest 741 * @tc.type : Function 742 * @tc.level : Level2 743 */ 744 it("SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 745 controller.on('queueItemsChange', queueItemsCallback1); 746 controller.on('queueItemsChange', queueItemsCallback2); 747 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 748 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0200 error " + JSON.stringify(err)); 749 expect().assertFail(); 750 done(); 751 }); 752 await sleep(200); 753 if (receivedCallback && receivedCallback2) { 754 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0200 Received queue items change"); 755 expect(true).assertTrue(); 756 } else { 757 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUEITEMSCHANGE_0200 Session queue items change not received"); 758 expect().assertFail(); 759 } 760 receivedCallback = false; 761 receivedCallback2 = false; 762 done(); 763 }) 764 765 /* * 766 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100 767 * @tc.name : bind one callback on queueTitleChange event 768 * @tc.desc : Testing on queueTitleChange callback 769 * @tc.size : MediumTest 770 * @tc.type : Function 771 * @tc.level : Level2 772 */ 773 it("SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 774 controller.on('queueTitleChange', queueTitleCallback1); 775 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 776 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100 setAVQueueTitle error " + JSON.stringify(err)); 777 expect().assertFail(); 778 done(); 779 }); 780 sleep(200).then(() => { 781 if (receivedCallback) { 782 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100 Received queue Title change"); 783 expect(true).assertTrue(); 784 } else { 785 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100 Session queue Title change not received"); 786 expect().assertFail(); 787 } 788 receivedCallback = false; 789 done(); 790 }); 791 }) 792 793 /* * 794 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0100 795 * @tc.name : bind two callback on queueTitleChange event 796 * @tc.desc : Testing on queueTitleChange callback 797 * @tc.size : MediumTest 798 * @tc.type : Function 799 * @tc.level : Level2 800 */ 801 it("SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 802 controller.on('queueTitleChange', queueTitleCallback1); 803 controller.on('queueTitleChange', queueTitleCallback2); 804 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 805 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0200 error " + JSON.stringify(err)); 806 expect().assertFail(); 807 done(); 808 }); 809 await sleep(200); 810 if (receivedCallback && receivedCallback2) { 811 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0200 Received queue Title change"); 812 expect(true).assertTrue(); 813 } else { 814 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONQUEUETITLECHANGE_0200 Session queue Title change not received"); 815 expect().assertFail(); 816 } 817 receivedCallback = false; 818 receivedCallback2 = false; 819 done(); 820 }) 821 822 /* * 823 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0100 824 * @tc.name : bind two callbacks on queueItemsChange event, off one of them 825 * @tc.desc : Testing offQueueItemsChange callback 826 * @tc.size : MediumTest 827 * @tc.type : Function 828 * @tc.level : Level0 829 */ 830 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 831 controller.on('queueItemsChange', queueItemsCallback1); 832 controller.on('queueItemsChange', queueItemsCallback2); 833 controller.off('queueItemsChange', queueItemsCallback2); 834 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 835 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0100 setAVQueueItems error " + JSON.stringify(err)); 836 expect().assertFail(); 837 done(); 838 }); 839 await sleep(200); 840 if (receivedCallback && !receivedCallback2) { 841 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0100 Received queue items change"); 842 expect(true).assertTrue(); 843 } else { 844 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0100 Session queue items change not received"); 845 expect().assertFail(); 846 } 847 receivedCallback = false; 848 done(); 849 }) 850 851 /* * 852 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0200 853 * @tc.name : bind two callbacks on queueItemsChange event, off two of them 854 * @tc.desc : Testing offQueueItemsChange callback 855 * @tc.size : MediumTest 856 * @tc.type : Function 857 * @tc.level : Level0 858 */ 859 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 860 controller.on('queueItemsChange', queueItemsCallback1); 861 controller.on('queueItemsChange', queueItemsCallback2); 862 controller.off('queueItemsChange', queueItemsCallback1); 863 controller.off('queueItemsChange', queueItemsCallback2); 864 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 865 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0200 setAVQueueItems error " + JSON.stringify(err)); 866 expect().assertFail(); 867 done(); 868 }); 869 await sleep(200); 870 if (!receivedCallback && !receivedCallback2) { 871 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0200 Received queue items change"); 872 expect(true).assertTrue(); 873 } else { 874 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0200 Session queue items change not received"); 875 expect().assertFail(); 876 } 877 receivedCallback = false; 878 done(); 879 }) 880 881 /* * 882 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0300 883 * @tc.name : bind two callbacks on queueItemsChange event, off all of them 884 * @tc.desc : Testing offQueueItemsChange callback 885 * @tc.size : MediumTest 886 * @tc.type : Function 887 * @tc.level : Level0 888 */ 889 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0300", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 890 controller.on('queueItemsChange', queueItemsCallback1); 891 controller.on('queueItemsChange', queueItemsCallback2); 892 controller.off('queueItemsChange'); 893 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 894 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0300 setAVQueueItems error " + JSON.stringify(err)); 895 expect().assertFail(); 896 done(); 897 }); 898 await sleep(200); 899 if (!receivedCallback && !receivedCallback2) { 900 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0300 Received queue items change"); 901 expect(true).assertTrue(); 902 } else { 903 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUEITEMSCHANGE_0300 Session queue items change not received"); 904 expect().assertFail(); 905 } 906 receivedCallback = false; 907 done(); 908 }) 909 910 /* * 911 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0100 912 * @tc.name : bind two callbacks on queueTitleChange event, off one of them 913 * @tc.desc : Testing offQueueTitleChange callback 914 * @tc.size : MediumTest 915 * @tc.type : Function 916 * @tc.level : Level0 917 */ 918 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 919 controller.on('queueTitleChange', queueTitleCallback1); 920 controller.on('queueTitleChange', queueTitleCallback2); 921 controller.off('queueTitleChange', queueTitleCallback2); 922 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 923 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0100 setAVQueueTitle error " + JSON.stringify(err)); 924 expect().assertFail(); 925 done(); 926 }); 927 await sleep(200); 928 if (receivedCallback && !receivedCallback2) { 929 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0100 Received queue Title change"); 930 expect(true).assertTrue(); 931 } else { 932 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0100 Session queue Title change not received"); 933 expect().assertFail(); 934 } 935 receivedCallback = false; 936 done(); 937 }) 938 939 /* * 940 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0200 941 * @tc.name : bind two callbacks on queueTitleChange event, off two of them 942 * @tc.desc : Testing offQueueTitleChange callback 943 * @tc.size : MediumTest 944 * @tc.type : Function 945 * @tc.level : Level0 946 */ 947 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 948 controller.on('queueTitleChange', queueTitleCallback1); 949 controller.on('queueTitleChange', queueTitleCallback2); 950 controller.off('queueTitleChange', queueTitleCallback1); 951 controller.off('queueTitleChange', queueTitleCallback2); 952 953 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 954 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0200 setAVQueueTitle error " + JSON.stringify(err)); 955 expect().assertFail(); 956 done(); 957 }); 958 await sleep(200); 959 if (!receivedCallback && !receivedCallback2) { 960 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0200 Received queue Title change"); 961 expect(true).assertTrue(); 962 } else { 963 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0200 Session queue Title change not received"); 964 expect().assertFail(); 965 } 966 receivedCallback = false; 967 done(); 968 }) 969 970 /* * 971 * @tc.number : SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0300 972 * @tc.name : bind two callbacks on queueTitleChange event, off all of them 973 * @tc.desc : Testing offQueueTitleChange callback 974 * @tc.size : MediumTest 975 * @tc.type : Function 976 * @tc.level : Level0 977 */ 978 it("SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0300", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 979 controller.on('queueTitleChange', queueTitleCallback1); 980 controller.on('queueTitleChange', queueTitleCallback2); 981 controller.off('queueTitleChange'); 982 983 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 984 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0300 setAVQueueTitle error " + JSON.stringify(err)); 985 expect().assertFail(); 986 done(); 987 }); 988 await sleep(200); 989 if (!receivedCallback && !receivedCallback2) { 990 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0300 Received queue Title change"); 991 expect(true).assertTrue(); 992 } else { 993 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_OFFQUEUETITLECHANGE_0300 Session queue Title change not received"); 994 expect().assertFail(); 995 } 996 receivedCallback = false; 997 done(); 998 }) 999 1000 /* * 1001 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0100 1002 * @tc.name : session set Items of AVQueue - callback 1003 * @tc.desc : Testing call setAVQueueItems(callback) 1004 * @tc.size : MediumTest 1005 * @tc.type : Function 1006 * @tc.level : Level2 1007 */ 1008 it("SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1009 session.setAVQueueItems(ITEMS_ARRAY, (err) => { 1010 if (err) { 1011 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0100 error " + JSON.stringify(err)); 1012 expect().assertFail(); 1013 done(); 1014 } 1015 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0100 finished"); 1016 expect(true).assertTrue(); 1017 done(); 1018 }); 1019 }) 1020 1021 /* * 1022 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0200 1023 * @tc.name : session set Items of AVQueue - promise 1024 * @tc.desc : Testing call setAVQueueItems(promise) 1025 * @tc.size : MediumTest 1026 * @tc.type : Function 1027 * @tc.level : Level2 1028 */ 1029 it("SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1030 await session.setAVQueueItems(ITEMS_ARRAY).catch((err) => { 1031 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0200 error " + JSON.stringify(err)); 1032 expect().assertFail(); 1033 done(); 1034 }); 1035 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0200 finished"); 1036 done(); 1037 }) 1038 1039 /* * 1040 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0100 1041 * @tc.name : session set title of AVQueue - callback 1042 * @tc.desc : Testing call setAVQueueTitle(callback) 1043 * @tc.size : MediumTest 1044 * @tc.type : Function 1045 * @tc.level : Level2 1046 */ 1047 it("SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1048 session.setAVQueueTitle(QUEUE_TITLE, (err) => { 1049 if (err) { 1050 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0100 error " + JSON.stringify(err)); 1051 expect().assertFail(); 1052 done(); 1053 } 1054 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0100 finished"); 1055 expect(true).assertTrue(); 1056 done(); 1057 }); 1058 }) 1059 1060 /* * 1061 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0200 1062 * @tc.name : session set title of AVQueue - promise 1063 * @tc.desc : Testing call setAVQueueTitle(promise) 1064 * @tc.size : MediumTest 1065 * @tc.type : Function 1066 * @tc.level : Level2 1067 */ 1068 it("SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1069 await session.setAVQueueTitle(QUEUE_TITLE).catch((err) => { 1070 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0200 error " + JSON.stringify(err)); 1071 expect().assertFail(); 1072 done(); 1073 }); 1074 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUETITLE_0200 finished"); 1075 done(); 1076 }) 1077 1078 /* * 1079 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0100 1080 * @tc.name : controller skip to QueueItem by queue item id - callback 1081 * @tc.desc : Testing call skipToQueueItem(callback) 1082 * @tc.size : MediumTest 1083 * @tc.type : Function 1084 * @tc.level : Level2 1085 */ 1086 it("SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1087 controller.skipToQueueItem(QUEUE_ITEM_ID, (err) => { 1088 if (err) { 1089 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0100 error " + JSON.stringify(err)); 1090 expect().assertFail(); 1091 done(); 1092 } 1093 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0100 finished"); 1094 expect(true).assertTrue(); 1095 done(); 1096 }); 1097 }) 1098 1099 /* * 1100 * @tc.number : SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0200 1101 * @tc.name : controller skip to QueueItem by queue item id - promise 1102 * @tc.desc : Testing call skipToQueueItem(promise) 1103 * @tc.size : MediumTest 1104 * @tc.type : Function 1105 * @tc.level : Level2 1106 */ 1107 it("SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1108 await controller.skipToQueueItem(QUEUE_ITEM_ID).catch((err) => { 1109 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0200 error " + JSON.stringify(err)); 1110 expect().assertFail(); 1111 done(); 1112 }); 1113 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_SKIPTOQUEUEITEM_0200 finished"); 1114 done(); 1115 }) 1116 1117 /* * 1118 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0100 1119 * @tc.name : bind one callback on skipToQueueItem event 1120 * @tc.desc : Testing on skipToQueueItem callback 1121 * @tc.size : MediumTest 1122 * @tc.type : Function 1123 * @tc.level : Level2 1124 */ 1125 it("SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1126 session.on('skipToQueueItem', skipToQueueItemCallback1); 1127 await controller.skipToQueueItem(SKIP_ITEM_ID).catch((err) => { 1128 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0100 error " + JSON.stringify(err)); 1129 expect().assertFail(); 1130 done(); 1131 }); 1132 sleep(200).then(() => { 1133 if (receivedCallback) { 1134 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0100 Received skipToQueueItem "); 1135 expect(true).assertTrue(); 1136 } else { 1137 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0100 skipToQueueItem not received"); 1138 expect().assertFail(); 1139 } 1140 receivedCallback = false; 1141 done(); 1142 }) 1143 }) 1144 1145 /* * 1146 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0200 1147 * @tc.name : bind two callback on skipToQueueItem event 1148 * @tc.desc : Testing on skipToQueueItem callback 1149 * @tc.size : MediumTest 1150 * @tc.type : Function 1151 * @tc.level : Level2 1152 */ 1153 it("SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1154 session.on('skipToQueueItem', skipToQueueItemCallback1); 1155 session.on('skipToQueueItem', skipToQueueItemCallback2); 1156 await controller.skipToQueueItem(SKIP_ITEM_ID).catch((err) => { 1157 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0200 error " + JSON.stringify(err)); 1158 expect().assertFail(); 1159 done(); 1160 }); 1161 await sleep(200); 1162 if (receivedCallback && receivedCallback2) { 1163 console.log(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0200 Received skipToQueueItem "); 1164 expect(true).assertTrue(); 1165 } else { 1166 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_ONSKIPTOQUEUEITEM_0200skipToQueueItem not received"); 1167 expect().assertFail(); 1168 } 1169 receivedCallback = false; 1170 receivedCallback2 = false; 1171 done(); 1172 }) 1173 1174 /* * 1175 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0100 1176 * @tc.name : controller get items of AVQueue - callback 1177 * @tc.desc : Testing call getAVQueueItems(callback) 1178 * @tc.size : MediumTest 1179 * @tc.type : Function 1180 * @tc.level : Level2 1181 */ 1182 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1183 session.setAVQueueItems(ITEMS_ARRAY, (err) => { 1184 if (err) { 1185 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0100 error " + JSON.stringify(err)); 1186 expect().assertFail(); 1187 done(); 1188 } else { 1189 controller.getAVQueueItems((err) => { 1190 if (err) { 1191 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0100 error " + JSON.stringify(err)); 1192 expect().assertFail(); 1193 } else { 1194 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0100 finished"); 1195 expect(true).assertTrue(); 1196 } 1197 done(); 1198 }); 1199 } 1200 }); 1201 }) 1202 1203 /* * 1204 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0200 1205 * @tc.name : controller get items of AVQueue - promise 1206 * @tc.desc : Testing call getAVQueueItems(promise) 1207 * @tc.size : MediumTest 1208 * @tc.type : Function 1209 * @tc.level : Level2 1210 */ 1211 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1212 await session.setAVQueueItems(ITEMS_ARRAY).then(async () => { 1213 await controller.getAVQueueItems().catch((err) => { 1214 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0200 error " + JSON.stringify(err)); 1215 expect().assertFail(); 1216 }); 1217 done(); 1218 }).catch((err) => { 1219 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_SETAVQUEUEITEMS_0200 error " + JSON.stringify(err)); 1220 expect().assertFail(); 1221 done(); 1222 }); 1223 }) 1224 1225 /* * 1226 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0100 1227 * @tc.name : controller get title of AVQueue - callback 1228 * @tc.desc : Testing call getAVQueueTitle(callback) 1229 * @tc.size : MediumTest 1230 * @tc.type : Function 1231 * @tc.level : Level2 1232 */ 1233 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1234 session.setAVQueueTitle(QUEUE_TITLE, (err) => { 1235 if (err) { 1236 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0100 error " + JSON.stringify(err)); 1237 expect().assertFail(); 1238 done(); 1239 } else { 1240 controller.getAVQueueTitle((err) => { 1241 if (err) { 1242 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0100 error " + JSON.stringify(err)); 1243 expect().assertFail(); 1244 } else { 1245 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0100 finished"); 1246 expect(true).assertTrue(); 1247 } 1248 done(); 1249 }); 1250 } 1251 }); 1252 }) 1253 1254 /* * 1255 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0200 1256 * @tc.name : controller get title of AVQueue - promise 1257 * @tc.desc : Testing call getAVQueueTitle(promise) 1258 * @tc.size : MediumTest 1259 * @tc.type : Function 1260 * @tc.level : Level2 1261 */ 1262 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0200", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1263 await session.setAVQueueTitle(QUEUE_TITLE).then(async () => { 1264 await controller.getAVQueueTitle().catch((err) => { 1265 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0200 error " + JSON.stringify(err)); 1266 expect().assertFail(); 1267 }); 1268 done(); 1269 }).catch((err) => { 1270 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLE_0200 error " + JSON.stringify(err)); 1271 expect().assertFail(); 1272 done(); 1273 }); 1274 }) 1275 1276 /* * 1277 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVPLAYBACKSTATESYNC_0100 1278 * @tc.name : controller get Playback State - async 1279 * @tc.desc : Testing call getAVPlaybackStateSync 1280 * @tc.size : MediumTest 1281 * @tc.type : Function 1282 * @tc.level : Level2 1283 */ 1284 it("SUB_MULTIMEDIA_AVSESSION_GETAVPLAYBACKSTATESYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1285 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVPLAYBACKSTATESYNC_0100 start"); 1286 try { 1287 let playbackState = { 1288 state: 0 1289 } 1290 await session.setAVPlaybackState(playbackState); 1291 sleep(200); 1292 let currentPlaybackState = controller.getAVPlaybackStateSync(); 1293 console.log(`Get playback state: ${playbackState}`); 1294 expect(currentPlaybackState.state).assertEqual(0); 1295 } catch (err) { 1296 expect().assertFail(); 1297 } 1298 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVPLAYBACKSTATESYNC_0100 finished"); 1299 done(); 1300 }) 1301 1302 /* * 1303 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVMETADATASYNC_0100 1304 * @tc.name : controller get metadata - async 1305 * @tc.desc : Testing call getAVMetadataSync 1306 * @tc.size : MediumTest 1307 * @tc.type : Function 1308 * @tc.level : Level2 1309 */ 1310 it("SUB_MULTIMEDIA_AVSESSION_GETAVMETADATASYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1311 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVMETADATASYNC_0100 start"); 1312 try { 1313 let metaData = { 1314 assetId: "0" 1315 } 1316 await session.setAVMetadata(metaData); 1317 sleep(200); 1318 let currentMetaData = controller.getAVMetadataSync(); 1319 console.log(`Get metadata: ${currentMetaData}`); 1320 expect(currentMetaData.assetId).assertEqual("0"); 1321 } catch (err) { 1322 expect().assertFail(); 1323 } 1324 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVMETADATASYNC_0100 finished"); 1325 done(); 1326 }) 1327 1328 /* * 1329 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLESYNC_0100 1330 * @tc.name : controller get title of avqueue - async 1331 * @tc.desc : Testing call getAVQueueTitleSync 1332 * @tc.size : MediumTest 1333 * @tc.type : Function 1334 * @tc.level : Level2 1335 */ 1336 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLESYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1337 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLESYNC_0100 start"); 1338 try { 1339 await session.setAVQueueTitle(QUEUE_TITLE); 1340 sleep(200); 1341 let currentQueueTitle = controller.getAVQueueTitleSync(); 1342 console.log(`Get queue title: ${currentQueueTitle}`); 1343 expect(currentQueueTitle).assertEqual(QUEUE_TITLE); 1344 } catch (err) { 1345 expect().assertFail(); 1346 } 1347 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUETITLESYNC_0100 finished"); 1348 done(); 1349 }) 1350 1351 /* * 1352 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMSYNC_0100 1353 * @tc.name : controller get items of avqueue - async 1354 * @tc.desc : Testing call getAVQueueItemsSync 1355 * @tc.size : MediumTest 1356 * @tc.type : Function 1357 * @tc.level : Level2 1358 */ 1359 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMSYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1360 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMSYNC_0100 start"); 1361 try { 1362 await session.setAVQueueItems(ITEMS_ARRAY); 1363 sleep(200); 1364 let currentQueueItem = controller.getAVQueueItemsSync(); 1365 console.log(`Get queue item: ${currentQueueItem}`); 1366 expect(currentQueueItem[0].itemId).assertEqual(ITEMS_ARRAY[0].itemId); 1367 } catch (err) { 1368 expect().assertFail(); 1369 } 1370 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMSYNC_0100 finished"); 1371 done(); 1372 }) 1373 1374 /* * 1375 * @tc.number : SUB_MULTIMEDIA_AVSESSION_CONTROLLER_GETOUTPUTDEVICESYNC_0100 1376 * @tc.name : controller get output devices info - async 1377 * @tc.desc : Testing call getOutputDeviceSync 1378 * @tc.size : MediumTest 1379 * @tc.type : Function 1380 * @tc.level : Level2 1381 */ 1382 it("SUB_MULTIMEDIA_AVSESSION_CONTROLLER_GETOUTPUTDEVICESYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1383 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_CONTROLLER_GETOUTPUTDEVICESYNC_0100 start"); 1384 try { 1385 let outputDeviceInfo = controller.getOutputDeviceSync(); 1386 console.log(`Get output device info: ${outputDeviceInfo}`); 1387 expect(outputDeviceInfo.devices[0].deviceId).assertEqual("0"); 1388 } catch (err) { 1389 expect().assertFail(); 1390 } 1391 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_CONTROLLER_GETOUTPUTDEVICESYNC_0100 finished"); 1392 done(); 1393 }) 1394 1395 /* * 1396 * @tc.number : SUB_MULTIMEDIA_AVSESSION_ISACTIVESYNC_0100 1397 * @tc.name : controller get session isActive - async 1398 * @tc.desc : Testing call isActiveSync 1399 * @tc.size : MediumTest 1400 * @tc.type : Function 1401 * @tc.level : Level2 1402 */ 1403 it("SUB_MULTIMEDIA_AVSESSION_ISACTIVESYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1404 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ISACTIVESYNC_0100 start"); 1405 try { 1406 await session.activate(); 1407 sleep(200); 1408 let isActive = controller.isActiveSync(); 1409 console.log(`Get session active state: ${isActive}`); 1410 expect(isActive).assertEqual(true); 1411 } catch (err) { 1412 expect().assertFail(); 1413 } 1414 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_ISACTIVESYNC_0100 finished"); 1415 done(); 1416 }) 1417 1418 /* * 1419 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETVALIDCOMMANDSSYNC_0100 1420 * @tc.name : controller get session support command - async 1421 * @tc.desc : Testing call getValidCommandsSync 1422 * @tc.size : MediumTest 1423 * @tc.type : Function 1424 * @tc.level : Level2 1425 */ 1426 it("SUB_MULTIMEDIA_AVSESSION_GETVALIDCOMMANDSSYNC_0100", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1427 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETVALIDCOMMANDSSYNC_0100 start"); 1428 try { 1429 session.on('play', () => { }); 1430 sleep(200); 1431 let validCommands = controller.getValidCommandsSync(); 1432 console.log(`Get valid commands: ${validCommands}`); 1433 expect(validCommands[0]).assertEqual('play'); 1434 } catch (err) { 1435 expect().assertFail(); 1436 } 1437 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETVALIDCOMMANDSSYNC_0100 finished"); 1438 done(); 1439 }) 1440 1441 /* * 1442 * @tc.number : SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0300 1443 * @tc.name : controller get items of AVQueue - promise 1444 * @tc.desc : Testing call getAVQueueItems(drmScheme) 1445 * @tc.size : MediumTest 1446 * @tc.type : Function 1447 * @tc.level : Level2 1448 */ 1449 it("SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0300", TestType.FUNCTION | Size.MEDIUMTEST | Level.LEVEL0, async function (done) { 1450 await session.setAVQueueItems(ITEMS_ARRAY).then(async () => { 1451 await controller.getAVQueueItems().then((items) => { 1452 console.info(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0300 data " + JSON.stringify(items)); 1453 if (items[0].description.drmScheme === ITEMS_ARRAY[0].description.drmScheme){ 1454 expect(true).assertTrue(); 1455 }else{ 1456 expect().assertFail(); 1457 done(); 1458 } 1459 done(); 1460 }); 1461 }).catch((err) => { 1462 console.error(TAG + "SUB_MULTIMEDIA_AVSESSION_GETAVQUEUEITEMS_0300 error " + JSON.stringify(err)); 1463 expect().assertFail(); 1464 done(); 1465 }); 1466 }) 1467 }) 1468} 1469