1 /* 2 * Copyright (c) 2025 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 16 #include "audio_capturer_session_unit_test.h" 17 using namespace testing::ext; 18 19 namespace OHOS { 20 namespace AudioStandard { 21 22 /** 23 * @tc.name : Test AudioCapturerSession. 24 * @tc.number: AudioCapturerSession_001 25 * @tc.desc : Test AudioCapturerSession::ReloadSourceForEffect() 26 */ 27 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_001, TestSize.Level1) 28 { 29 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 30 EXPECT_NE(audioCapturerSession, nullptr); 31 32 AudioEnhancePropertyArray oldPropertyArray; 33 AudioEnhancePropertyArray newPropertyArray; 34 35 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = false; 36 37 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 38 } 39 40 /** 41 * @tc.name : Test AudioCapturerSession. 42 * @tc.number: AudioCapturerSession_002 43 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 44 */ 45 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_002, TestSize.Level1) 46 { 47 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 48 EXPECT_NE(audioCapturerSession, nullptr); 49 50 AudioEnhancePropertyArray oldPropertyArray; 51 AudioEnhancePropertyArray newPropertyArray; 52 53 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 54 55 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 56 } 57 58 /** 59 * @tc.name : Test AudioCapturerSession. 60 * @tc.number: AudioCapturerSession_003 61 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 62 */ 63 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_003, TestSize.Level1) 64 { 65 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 66 EXPECT_NE(audioCapturerSession, nullptr); 67 68 AudioEnhancePropertyArray oldPropertyArray; 69 AudioEnhancePropertyArray newPropertyArray; 70 71 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 72 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_WAKEUP; 73 74 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 75 } 76 77 /** 78 * @tc.name : Test AudioCapturerSession. 79 * @tc.number: AudioCapturerSession_004 80 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 81 */ 82 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_004, TestSize.Level1) 83 { 84 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 85 EXPECT_NE(audioCapturerSession, nullptr); 86 87 AudioEnhancePropertyArray oldPropertyArray; 88 AudioEnhancePropertyArray newPropertyArray; 89 90 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 91 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 92 93 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 94 } 95 96 /** 97 * @tc.name : Test AudioCapturerSession. 98 * @tc.number: AudioCapturerSession_005 99 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 100 */ 101 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_005, TestSize.Level1) 102 { 103 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 104 EXPECT_NE(audioCapturerSession, nullptr); 105 106 AudioEnhancePropertyArray oldPropertyArray; 107 AudioEnhancePropertyArray newPropertyArray; 108 109 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 110 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 111 112 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 113 } 114 115 /** 116 * @tc.name : Test AudioCapturerSession. 117 * @tc.number: AudioCapturerSession_006 118 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 119 */ 120 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_006, TestSize.Level1) 121 { 122 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 123 EXPECT_NE(audioCapturerSession, nullptr); 124 125 AudioEnhancePropertyArray oldPropertyArray; 126 AudioEnhancePropertyArray newPropertyArray; 127 128 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 129 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 130 131 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 132 } 133 134 /** 135 * @tc.name : Test AudioCapturerSession. 136 * @tc.number: AudioCapturerSession_007 137 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 138 */ 139 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_007, TestSize.Level1) 140 { 141 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 142 EXPECT_NE(audioCapturerSession, nullptr); 143 144 AudioEnhancePropertyArray oldPropertyArray; 145 AudioEnhancePropertyArray newPropertyArray; 146 147 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 148 newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "ABC"}}; 149 150 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 151 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 152 153 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 154 } 155 156 /** 157 * @tc.name : Test AudioCapturerSession. 158 * @tc.number: AudioCapturerSession_008 159 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 160 */ 161 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_008, TestSize.Level1) 162 { 163 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 164 EXPECT_NE(audioCapturerSession, nullptr); 165 166 AudioEnhancePropertyArray oldPropertyArray; 167 AudioEnhancePropertyArray newPropertyArray; 168 169 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 170 newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "PNR"}}; 171 172 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 173 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 174 175 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 176 } 177 178 /** 179 * @tc.name : Test AudioCapturerSession. 180 * @tc.number: AudioCapturerSession_009 181 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 182 */ 183 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_009, TestSize.Level1) 184 { 185 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 186 EXPECT_NE(audioCapturerSession, nullptr); 187 188 AudioEnhancePropertyArray oldPropertyArray; 189 AudioEnhancePropertyArray newPropertyArray; 190 191 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 192 newPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 193 194 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 195 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 196 197 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 198 } 199 200 /** 201 * @tc.name : Test AudioCapturerSession. 202 * @tc.number: AudioCapturerSession_010 203 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 204 */ 205 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_010, TestSize.Level1) 206 { 207 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 208 EXPECT_NE(audioCapturerSession, nullptr); 209 210 AudioEffectPropertyArrayV3 oldPropertyArray; 211 AudioEffectPropertyArrayV3 newPropertyArray; 212 213 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 214 newPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 215 216 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 217 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 218 219 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 220 } 221 222 /** 223 * @tc.name : Test AudioCapturerSession. 224 * @tc.number: AudioCapturerSession_011 225 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 226 */ 227 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_011, TestSize.Level1) 228 { 229 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 230 EXPECT_NE(audioCapturerSession, nullptr); 231 232 AudioEffectPropertyArrayV3 oldPropertyArray; 233 AudioEffectPropertyArrayV3 newPropertyArray; 234 235 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 236 newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "PNR"}}; 237 238 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 239 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 240 241 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 242 } 243 244 /** 245 * @tc.name : Test AudioCapturerSession. 246 * @tc.number: AudioCapturerSession_012 247 * @tc.desc : Test udioCapturerSession::ReloadSourceForEffect() 248 */ 249 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_012, TestSize.Level1) 250 { 251 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 252 EXPECT_NE(audioCapturerSession, nullptr); 253 254 AudioEffectPropertyArrayV3 oldPropertyArray; 255 AudioEffectPropertyArrayV3 newPropertyArray; 256 257 oldPropertyArray.property = {{"record", "PNR"}, {"voip_up", "PNR"}}; 258 newPropertyArray.property = {{"record", "ABC"}, {"voip_up", "ABC"}}; 259 260 audioCapturerSession->audioEcManager_.isMicRefFeatureEnable_ = true; 261 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 262 263 audioCapturerSession->ReloadSourceForEffect(oldPropertyArray, newPropertyArray); 264 } 265 266 /** 267 * @tc.name : Test AudioCapturerSession. 268 * @tc.number: AudioCapturerSession_013 269 * @tc.desc : Test udioCapturerSession::ReloadSourceForDeviceChange() 270 */ 271 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_013, TestSize.Level1) 272 { 273 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 274 EXPECT_NE(audioCapturerSession, nullptr); 275 276 AudioDeviceDescriptor inputDevice; 277 AudioDeviceDescriptor outputDevice; 278 std::string caller; 279 280 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 281 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_WAKEUP; 282 283 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 284 } 285 286 /** 287 * @tc.name : Test AudioCapturerSession. 288 * @tc.number: AudioCapturerSession_014 289 * @tc.desc : Test udioCapturerSession::ReloadSourceForDeviceChange() 290 */ 291 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_014, TestSize.Level1) 292 { 293 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 294 EXPECT_NE(audioCapturerSession, nullptr); 295 296 AudioDeviceDescriptor inputDevice; 297 AudioDeviceDescriptor outputDevice; 298 std::string caller; 299 300 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 301 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 302 303 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 304 } 305 306 /** 307 * @tc.name : Test AudioCapturerSession. 308 * @tc.number: AudioCapturerSession_015 309 * @tc.desc : Test udioCapturerSession::ReloadSourceForDeviceChange() 310 */ 311 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_015, TestSize.Level1) 312 { 313 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 314 EXPECT_NE(audioCapturerSession, nullptr); 315 316 AudioDeviceDescriptor inputDevice; 317 AudioDeviceDescriptor outputDevice; 318 std::string caller; 319 320 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 321 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 322 323 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 324 } 325 326 /** 327 * @tc.name : Test AudioCapturerSession. 328 * @tc.number: AudioCapturerSession_016 329 * @tc.desc : Test udioCapturerSession::ReloadSourceForDeviceChange() 330 */ 331 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_016, TestSize.Level1) 332 { 333 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 334 EXPECT_NE(audioCapturerSession, nullptr); 335 336 AudioDeviceDescriptor inputDevice; 337 inputDevice.deviceType_ = DEVICE_TYPE_DEFAULT; 338 AudioDeviceDescriptor outputDevice; 339 std::string caller; 340 341 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 342 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_VOICE_COMMUNICATION; 343 344 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 345 } 346 347 /** 348 * @tc.name : Test AudioCapturerSession. 349 * @tc.number: AudioCapturerSession_017 350 * @tc.desc : Test AudioCapturerSession::IsVoipDeviceChanged() 351 */ 352 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_017, TestSize.Level1) 353 { 354 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 355 EXPECT_NE(audioCapturerSession, nullptr); 356 357 AudioDeviceDescriptor inputDevice; 358 AudioDeviceDescriptor outputDevice; 359 360 auto ret = audioCapturerSession->IsVoipDeviceChanged(inputDevice, outputDevice); 361 EXPECT_EQ(ret, true); 362 } 363 364 /** 365 * @tc.name : Test AudioCapturerSession. 366 * @tc.number: AudioCapturerSession_018 367 * @tc.desc : Test AudioCapturerSession::FillWakeupStreamPropInfo() 368 */ 369 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_018, TestSize.Level1) 370 { 371 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 372 EXPECT_NE(audioCapturerSession, nullptr); 373 374 AudioStreamInfo streamInfo; 375 std::shared_ptr<AdapterPipeInfo> pipeInfo = nullptr; 376 AudioModuleInfo audioModuleInfo; 377 378 auto ret = audioCapturerSession->FillWakeupStreamPropInfo(streamInfo, pipeInfo, audioModuleInfo); 379 EXPECT_EQ(ret, false); 380 } 381 382 /** 383 * @tc.name : Test AudioCapturerSession. 384 * @tc.number: AudioCapturerSession_019 385 * @tc.desc : Test AudioCapturerSession::FillWakeupStreamPropInfo() 386 */ 387 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_019, TestSize.Level1) 388 { 389 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 390 EXPECT_NE(audioCapturerSession, nullptr); 391 392 AudioStreamInfo streamInfo; 393 std::shared_ptr<AdapterPipeInfo> pipeInfo = std::make_shared<AdapterPipeInfo>(); 394 EXPECT_NE(pipeInfo, nullptr); 395 AudioModuleInfo audioModuleInfo; 396 397 auto ret = audioCapturerSession->FillWakeupStreamPropInfo(streamInfo, pipeInfo, audioModuleInfo); 398 EXPECT_EQ(ret, false); 399 } 400 401 /** 402 * @tc.name : Test AudioCapturerSession. 403 * @tc.number: AudioCapturerSession_020 404 * @tc.desc : Test AudioCapturerSession::GetInstance() 405 */ 406 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_020, TestSize.Level1) 407 { 408 shared_ptr<AudioA2dpOffloadManager> audioA2dpOffloadManager = nullptr; 409 { 410 auto& audioCapturerSession = AudioCapturerSession::GetInstance(); 411 412 audioA2dpOffloadManager = make_shared<AudioA2dpOffloadManager>(); 413 audioCapturerSession.Init(audioA2dpOffloadManager); 414 audioCapturerSession.SetConfigParserFlag(); 415 416 audioCapturerSession.DeInit(); 417 } 418 EXPECT_EQ(audioA2dpOffloadManager.use_count(), 1); 419 } 420 421 /** 422 * @tc.name : Test AudioCapturerSession. 423 * @tc.number: AudioCapturerSession_021 424 * @tc.desc : Test AudioCapturerSession::OnCapturerSessionAdded() 425 */ 426 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_021, TestSize.Level1) 427 { 428 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 429 EXPECT_NE(audioCapturerSession, nullptr); 430 431 SessionInfo sessionInfo; 432 sessionInfo.sourceType = SOURCE_TYPE_MIC; 433 sessionInfo.rate = 44100; 434 sessionInfo.channels = 2; 435 AudioStreamInfo streamInfo; 436 audioCapturerSession->SetConfigParserFlag(); 437 438 auto &audioVolumeManager = AudioVolumeManager::GetInstance(); 439 audioVolumeManager.SetDefaultDeviceLoadFlag(true); 440 441 442 uint64_t sessionID = 1; 443 audioCapturerSession->OnCapturerSessionRemoved(sessionID); 444 445 auto ret = audioCapturerSession->OnCapturerSessionAdded(sessionID, sessionInfo, streamInfo); 446 EXPECT_EQ(ret, SUCCESS); 447 } 448 449 /** 450 * @tc.name : Test AudioCapturerSession. 451 * @tc.number: AudioCapturerSession_022 452 * @tc.desc : Test AudioCapturerSession::OnCapturerSessionAdded() 453 */ 454 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_022, TestSize.Level1) 455 { 456 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 457 EXPECT_NE(audioCapturerSession, nullptr); 458 459 SessionInfo sessionInfo; 460 AudioStreamInfo streamInfo; 461 462 uint64_t sessionID = 1; 463 464 auto ret = audioCapturerSession->OnCapturerSessionAdded(sessionID, sessionInfo, streamInfo); 465 EXPECT_NE(ret, SUCCESS); 466 } 467 468 /** 469 * @tc.name : Test AudioCapturerSession. 470 * @tc.number: AudioCapturerSession_023 471 * @tc.desc : Test AudioCapturerSession::SetWakeUpAudioCapturerFromAudioServer() 472 */ 473 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_023, TestSize.Level1) 474 { 475 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 476 EXPECT_NE(audioCapturerSession, nullptr); 477 478 AudioStreamInfo streamInfo; 479 AudioProcessConfig config; 480 config.streamInfo = streamInfo; 481 482 auto ret = audioCapturerSession->SetWakeUpAudioCapturerFromAudioServer(config); 483 EXPECT_NE(ret, SUCCESS); 484 } 485 486 /** 487 * @tc.name : Test AudioCapturerSession. 488 * @tc.number: AudioCapturerSession_024 489 * @tc.desc : Test AudioCapturerSession::CloseWakeUpAudioCapturer() 490 */ 491 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_024, TestSize.Level1) 492 { 493 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 494 EXPECT_NE(audioCapturerSession, nullptr); 495 496 auto ret = audioCapturerSession->CloseWakeUpAudioCapturer(); 497 EXPECT_NE(ret, SUCCESS); 498 } 499 500 /** 501 * @tc.name : Test AudioCapturerSession. 502 * @tc.number: AudioCapturerSession_025 503 * @tc.desc : Test ReloadSourceForDeviceChange() for valid source and device 504 */ 505 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_025, TestSize.Level1) 506 { 507 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 508 EXPECT_NE(audioCapturerSession, nullptr); 509 510 AudioDeviceDescriptor inputDevice; 511 inputDevice.deviceType_ = DEVICE_TYPE_MIC; 512 AudioDeviceDescriptor outputDevice; 513 std::string caller = "testCase"; 514 515 const uint64_t testSessionId = 99; 516 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 517 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 518 audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId; 519 520 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 521 EXPECT_EQ(audioCapturerSession->audioEcManager_.GetOpenedNormalSourceSessionId(), testSessionId); 522 } 523 524 /** 525 * @tc.name : Test AudioCapturerSession. 526 * @tc.number: AudioCapturerSession_026 527 * @tc.desc : Test ReloadSourceForDeviceChange() for valid source and device 528 */ 529 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_026, TestSize.Level1) 530 { 531 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 532 EXPECT_NE(audioCapturerSession, nullptr); 533 534 uint32_t sessionId = 0; 535 SessionOperation operation = SESSION_OPERATION_START; 536 audioCapturerSession->ReloadCaptureSession(sessionId, operation); 537 EXPECT_EQ(audioCapturerSession->ReloadCaptureSession(sessionId, operation), ERROR); 538 } 539 540 /** 541 * @tc.name : Test AudioCapturerSession. 542 * @tc.number: AudioCapturerSession_027 543 * @tc.desc : Test ReloadSourceForDeviceChange() for inputDeviceForReload default 544 */ 545 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_027, TestSize.Level1) 546 { 547 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 548 EXPECT_NE(audioCapturerSession, nullptr); 549 550 AudioDeviceDescriptor inputDevice; 551 inputDevice.deviceType_ = DEVICE_TYPE_MIC; 552 AudioDeviceDescriptor outputDevice; 553 std::string caller = "testCase"; 554 555 const uint64_t testSessionId = 99; 556 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 557 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 558 audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId; 559 audioCapturerSession->inputDeviceForReload_.deviceType_ = DEVICE_TYPE_DEFAULT; 560 561 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 562 EXPECT_EQ(audioCapturerSession->inputDeviceForReload_.deviceType_, DEVICE_TYPE_MIC); 563 } 564 565 /** 566 * @tc.name : Test AudioCapturerSession. 567 * @tc.number: AudioCapturerSession_028 568 * @tc.desc : Test ReloadSourceForDeviceChange() for inputDeviceForReload_ valid 569 */ 570 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_028, TestSize.Level1) 571 { 572 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 573 EXPECT_NE(audioCapturerSession, nullptr); 574 575 AudioDeviceDescriptor inputDevice; 576 inputDevice.deviceType_ = DEVICE_TYPE_MIC; 577 AudioDeviceDescriptor outputDevice; 578 std::string caller = "testCase"; 579 580 const uint64_t testSessionId = 99; 581 audioCapturerSession->audioEcManager_.isEcFeatureEnable_ = true; 582 audioCapturerSession->audioEcManager_.normalSourceOpened_ = SOURCE_TYPE_MIC; 583 audioCapturerSession->audioEcManager_.sessionIdUsedToOpenSource_ = testSessionId; 584 audioCapturerSession->inputDeviceForReload_.deviceType_ = DEVICE_TYPE_MIC; 585 586 audioCapturerSession->ReloadSourceForDeviceChange(inputDevice, outputDevice, caller); 587 EXPECT_EQ(audioCapturerSession->inputDeviceForReload_.deviceType_, DEVICE_TYPE_MIC); 588 } 589 590 /** 591 * @tc.name : Test AudioCapturerSession. 592 * @tc.number: AudioCapturerSession_032 593 * @tc.desc : Test ReloadCaptureSessionSoftLink 594 */ 595 HWTEST(AudioCapturerSessionTest, AudioCapturerSession_032, TestSize.Level1) 596 { 597 auto audioCapturerSession = std::make_shared<AudioCapturerSession>(); 598 EXPECT_NE(audioCapturerSession, nullptr); 599 auto pipeManager = AudioPipeManager::GetPipeManager(); 600 EXPECT_NE(pipeManager, nullptr); 601 602 auto pipeInfoOne = std::make_shared<AudioPipeInfo>(); 603 pipeInfoOne->name_ = "test_output_one"; 604 pipeInfoOne->adapterName_ = "test_one"; 605 pipeManager->AddAudioPipeInfo(pipeInfoOne); 606 607 auto pipeInfoTwo = std::make_shared<AudioPipeInfo>(); 608 pipeInfoTwo->name_ = "test_output_two"; 609 pipeInfoTwo->adapterName_ = "test_two"; 610 pipeInfoTwo->pipeRole_ = AudioPipeRole::PIPE_ROLE_OUTPUT; 611 std::shared_ptr<AudioStreamDescriptor> streamDescriptor = std::make_shared<AudioStreamDescriptor>(); 612 streamDescriptor->sessionId_ = 0; 613 pipeInfoTwo->streamDescriptors_.push_back(streamDescriptor); 614 pipeManager->AddAudioPipeInfo(pipeInfoTwo); 615 616 auto pipeInfoThree = std::make_shared<AudioPipeInfo>(); 617 pipeInfoThree->name_ = "test_input_three"; 618 pipeInfoThree->adapterName_ = "primary"; 619 pipeInfoThree->pipeRole_ = AudioPipeRole::PIPE_ROLE_INPUT; 620 pipeInfoThree->routeFlag_ = AUDIO_INPUT_FLAG_NORMAL; 621 std::shared_ptr<AudioStreamDescriptor> streamDescriptorOne = std::make_shared<AudioStreamDescriptor>(); 622 streamDescriptorOne->sessionId_ = 1; 623 pipeInfoThree->streamDescriptors_.push_back(streamDescriptorOne); 624 std::shared_ptr<AudioStreamDescriptor> streamDescriptorTwo = std::make_shared<AudioStreamDescriptor>(); 625 streamDescriptorTwo->sessionId_ = 2; 626 pipeInfoThree->streamDescriptors_.push_back(streamDescriptorTwo); 627 streamDescriptorTwo->streamStatus_ = AudioStreamStatus::STREAM_STATUS_STARTED; 628 std::shared_ptr<AudioStreamDescriptor> streamDescriptorThree = std::make_shared<AudioStreamDescriptor>(); 629 streamDescriptorThree->sessionId_ = 3; 630 pipeInfoThree->streamDescriptors_.push_back(streamDescriptorThree); 631 pipeInfoThree->softLinkFlag_ = true; 632 pipeManager->AddAudioPipeInfo(pipeInfoThree); 633 634 SessionInfo sessionInfoTwo; 635 sessionInfoTwo.sourceType = SourceType::SOURCE_TYPE_VOICE_RECOGNITION; 636 SessionInfo sessionInfoThree; 637 sessionInfoThree.sourceType = SourceType::SOURCE_TYPE_VOICE_CALL; 638 audioCapturerSession->sessionWithNormalSourceType_[2] = sessionInfoTwo; 639 audioCapturerSession->sessionWithNormalSourceType_[3] = sessionInfoThree; 640 641 auto ret = audioCapturerSession->ReloadCaptureSessionSoftLink(); 642 EXPECT_EQ(ret, SUCCESS); 643 644 auto ioRet = AudioIOHandleMap::GetInstance().ClosePortAndEraseIOHandle("test"); 645 EXPECT_EQ(ioRet, SUCCESS); 646 647 auto pipeRet = pipeManager->GetUnusedRecordPipe(); 648 EXPECT_EQ(pipeRet.size(), 0); 649 } 650 } // namespace AudioStandard 651 } // namespace OHOS 652