From 238c2db7798e3d3cbee693868c2cb5865bc1eb69 Mon Sep 17 00:00:00 2001 From: zhangwenting3652 Date: Tue, 26 Aug 2025 16:58:47 +0800 Subject: [PATCH] add ut Signed-off-by: zhangwenting3652 --- .../audio_device_common_unit_next_test.cpp | 33 +++++- ...dio_interrupt_service_second_unit_test.cpp | 89 +++++++++++++++ .../src/audio_state_manager_unit_test.cpp | 108 ++++++++++++++++++ 3 files changed, 229 insertions(+), 1 deletion(-) diff --git a/services/audio_policy/server/domain/device/test/audio_device_common_unit_test/src/audio_device_common_unit_next_test.cpp b/services/audio_policy/server/domain/device/test/audio_device_common_unit_test/src/audio_device_common_unit_next_test.cpp index 1ff177f332..da53569cfa 100644 --- a/services/audio_policy/server/domain/device/test/audio_device_common_unit_test/src/audio_device_common_unit_next_test.cpp +++ b/services/audio_policy/server/domain/device/test/audio_device_common_unit_test/src/audio_device_common_unit_next_test.cpp @@ -262,12 +262,13 @@ HWTEST_F(AudioDeviceCommonUnitNextTest, FetchOutputDevice_001, TestSize.Level4) { AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); audioDeviceCommon.DeInit(); + const string CALL_RENDER_ROUTERS = "CallRenderRouters"; std::vector> rendererChangeInfos; std::shared_ptr rendererChangeInfo = std::make_shared(); rendererChangeInfos.push_back(rendererChangeInfo); rendererChangeInfo->rendererInfo.streamUsage = STREAM_USAGE_VOICE_MODEM_COMMUNICATION; audioDeviceCommon.audioSceneManager_.audioScene_ = AUDIO_SCENE_PHONE_CALL; - + audioDeviceCommon.audioRouterCenter_.renderConfigMap_[STREAM_USAGE_VOICE_MODEM_COMMUNICATION] = CALL_RENDER_ROUTERS; AudioStreamDeviceChangeReasonExt reason = AudioStreamDeviceChangeReasonExt::ExtEnum::UNKNOWN; audioDeviceCommon.FetchOutputDevice(rendererChangeInfos, reason); EXPECT_NE(rendererChangeInfo, nullptr); @@ -1500,5 +1501,35 @@ HWTEST_F(AudioDeviceCommonUnitNextTest, SwitchActiveA2dpDevice_002, TestSize.Lev int32_t result = audioDeviceCommon.SwitchActiveA2dpDevice(deviceDescriptor); EXPECT_EQ(result, ERROR); } + +/** +* @tc.name : Test UpdateConnectedDevicesWhenConnectingForOutputDevice +* @tc.number: UpdateConnectedDevicesWhenConnectingForOutputDevice_001 +* @tc.desc : Test UpdateConnectedDevicesWhenConnectingForOutputDevice interface. +*/ +HWTEST_F(AudioDeviceCommonUnitNextTest, UpdateConnectedDevicesWhenConnectingForOutputDevice_001, TestSize.Level4) +{ + AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); + std::shared_ptr desc = std::make_shared(); + desc->connectState_ = VIRTUAL_CONNECTED; + desc->deviceRole_ = INPUT_DEVICE; + desc->deviceType_ = DEVICE_TYPE_HEARING_AID; + desc->networkId_ == "123"; + desc->macAddress_ == "00:11:22:33:44:55"; + audioDeviceCommon.audioDeviceManager_.connectedDevices_.push_back(desc); + + std::shared_ptr deviceDescriptor = std::make_shared(); + deviceDescriptor->macAddress_ = "00:11:22:33:44:55"; + deviceDescriptor->deviceName_ = "TestA2dpDevice"; + deviceDescriptor->deviceType_ = DEVICE_TYPE_HEARING_AID; + deviceDescriptor->networkId_ = "123"; + deviceDescriptor->deviceRole_ = INPUT_DEVICE; + deviceDescriptor->connectState_ = VIRTUAL_CONNECTED; + std::vector> descForCb; + descForCb.push_back(deviceDescriptor); + + audioDeviceCommon.UpdateConnectedDevicesWhenConnectingForOutputDevice(deviceDescriptor, descForCb); + EXPECT_NE(nullptr, deviceDescriptor); +} } // namespace AudioStandard } // namespace OHOS \ No newline at end of file diff --git a/services/audio_policy/test/unittest/audio_interrupt_service_test/src/audio_interrupt_service_second_unit_test.cpp b/services/audio_policy/test/unittest/audio_interrupt_service_test/src/audio_interrupt_service_second_unit_test.cpp index a0c3411826..2d56672473 100644 --- a/services/audio_policy/test/unittest/audio_interrupt_service_test/src/audio_interrupt_service_second_unit_test.cpp +++ b/services/audio_policy/test/unittest/audio_interrupt_service_test/src/audio_interrupt_service_second_unit_test.cpp @@ -1746,5 +1746,94 @@ HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_063, TestSize. audioInterruptService->DispatchInterruptEventWithStreamId(streamId, interruptEvent); EXPECT_EQ(true, interruptEvent.callbackToApp); } + +/** +* @tc.name : Test AudioInterruptService +* @tc.number: AudioInterruptService_064 +* @tc.desc : Test ShouldCallbackToClient +*/ +HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_064, TestSize.Level1) +{ + auto audioInterruptService = std::make_shared(); + ASSERT_NE(audioInterruptService, nullptr); + uint32_t streamId = 0; + uint32_t uid = 123; + InterruptEventInternal interruptEvent; + auto ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(true, ret); + + ClientTypeManager::GetInstance()->clientTypeMap_[uid] = CLIENT_TYPE_GAME; + interruptEvent.hintType = INTERRUPT_HINT_DUCK; + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(true, ret); + + interruptEvent.hintType = INTERRUPT_HINT_UNDUCK; + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(true, ret); + + interruptEvent.hintType = INTERRUPT_HINT_RESUME; + sptr server = new AudioPolicyServer(0); + audioInterruptService->Init(server); + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(false, ret); + + interruptEvent.hintType = INTERRUPT_HINT_STOP; + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(false, ret); + + interruptEvent.hintType = INTERRUPT_HINT_MUTE; + ret = audioInterruptService->ShouldCallbackToClient(uid, streamId, interruptEvent); + EXPECT_EQ(false, ret); +} + +/** +* @tc.name : Test AudioInterruptService +* @tc.number: AudioInterruptService_065 +* @tc.desc : Test RemoveClient_001 +*/ +HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_065, TestSize.Level1) +{ + auto audioInterruptService = std::make_shared(); + ASSERT_NE(audioInterruptService, nullptr); + int32_t zoneId = 123; + uint32_t streamId = 123; + auto audioInterruptZone = make_shared(); + AudioInterrupt audioInterrupt; + audioInterrupt.streamId = streamId; + audioInterruptZone->audioFocusInfoList.push_back({audioInterrupt, STOP}); + audioInterruptService->zonesMap_[0] = audioInterruptZone; + audioInterruptService->RemoveClient(zoneId, streamId); + EXPECT_EQ(false, audioInterrupt.isAudioSessionInterrupt); +} + +/** +* @tc.name : Test AudioInterruptService +* @tc.number: AudioInterruptService_066 +* @tc.desc : Test RemoveClient_002 +*/ +HWTEST(AudioInterruptServiceSecondUnitTest, AudioInterruptService_066, TestSize.Level1) +{ + auto audioInterruptService = std::make_shared(); + ASSERT_NE(audioInterruptService, nullptr); + int32_t zoneId = 123; + uint32_t streamId = 123; + auto audioInterruptZone = make_shared(); + AudioInterrupt audioInterrupt; + audioInterrupt.streamId = 0; + audioInterruptZone->audioFocusInfoList.push_back({audioInterrupt, STOP}); + audioInterruptService->zonesMap_[zoneId] = nullptr; + audioInterruptService->zonesMap_[0] = audioInterruptZone; + audioInterruptService->RemoveClient(zoneId, streamId); + EXPECT_EQ(false, audioInterrupt.isAudioSessionInterrupt); + + audioInterruptService->zonesMap_[zoneId] = audioInterruptZone; + audioInterruptService->RemoveClient(zoneId, streamId); + EXPECT_EQ(false, audioInterrupt.isAudioSessionInterrupt); + + audioInterruptZone->interruptCbsMap[streamId] = std::make_shared(); + audioInterruptService->zonesMap_[zoneId] = audioInterruptZone; + audioInterruptService->RemoveClient(zoneId, streamId); + EXPECT_EQ(false, audioInterrupt.isAudioSessionInterrupt); +} } // namespace AudioStandard } // namespace OHOS diff --git a/services/audio_policy/test/unittest/audio_state_manager_unit_test/src/audio_state_manager_unit_test.cpp b/services/audio_policy/test/unittest/audio_state_manager_unit_test/src/audio_state_manager_unit_test.cpp index 127dee9f46..d32b078306 100644 --- a/services/audio_policy/test/unittest/audio_state_manager_unit_test/src/audio_state_manager_unit_test.cpp +++ b/services/audio_policy/test/unittest/audio_state_manager_unit_test/src/audio_state_manager_unit_test.cpp @@ -32,6 +32,61 @@ void AudioStateManagerUnitTest::TearDownTestCase(void) {} void AudioStateManagerUnitTest::SetUp(void) {} void AudioStateManagerUnitTest::TearDown(void) {} +class IStandardAudioPolicyManagerListenerStub : public IStandardAudioPolicyManagerListener { +public: + sptr AsObject() override { return nullptr; } + + ~IStandardAudioPolicyManagerListenerStub() {} + + ErrCode OnInterrupt(const InterruptEventInternal& interruptEvent) override { return SUCCESS; } + + ErrCode OnRouteUpdate(uint32_t routeFlag, const std::string& networkId) override { return SUCCESS; } + + ErrCode OnAvailableDeviceChange(uint32_t usage, const DeviceChangeAction& deviceChangeAction) override + { + return SUCCESS; + } + + ErrCode OnQueryClientType(const std::string& bundleName, uint32_t uid, bool& ret) override + { + return SUCCESS; + } + + ErrCode OnCheckClientInfo(const std::string& bundleName, int32_t& uid, int32_t pid, bool& ret) override + { + return SUCCESS; + } + + ErrCode OnCheckVKBInfo(const std::string& bundleName, bool& isValid) override + { + return SUCCESS; + } + + ErrCode OnQueryAllowedPlayback(int32_t uid, int32_t pid, bool& ret) override + { + return SUCCESS; + } + + ErrCode OnBackgroundMute(int32_t uid) override + { + return SUCCESS; + } + + ErrCode OnQueryBundleNameIsInList(const std::string& bundleName, const std::string& listType, bool& ret) override + { + ret = true; + return SUCCESS; + } + + ErrCode OnQueryDeviceVolumeBehavior(VolumeBehavior &volumeBehavior) override + { + volumeBehavior.isReady = false; + volumeBehavior.isVolumeControlDisabled = false; + volumeBehavior.databaseVolumeName = ""; + return SUCCESS; + } +}; + /** * @tc.name : Test AudioStateManager. * @tc.number: AudioStateManagerUnitTest_001 @@ -69,6 +124,8 @@ HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_002, TestSize.Leve AudioStateManager::GetAudioStateManager().SetAudioSceneOwnerUid(790); deviceDesc = AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice(); EXPECT_NE(deviceDesc, nullptr); + sptr callback = new IStandardAudioPolicyManagerListenerStub(); + AudioStateManager::GetAudioStateManager().SetAudioClientInfoMgrCallback(callback); AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(speaker, 1); AudioStateManager::GetAudioStateManager().SetPreferredCallRenderDevice(desc, 790); deviceDesc = AudioStateManager::GetAudioStateManager().GetPreferredCallRenderDevice(); @@ -174,5 +231,56 @@ HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_010, TestSize.Leve EXPECT_NE(AudioStateManager::GetAudioStateManager().GetPreferredRecordCaptureDevice()->connectState_, ConnectState::CONNECTED); } + +/** +* @tc.name : Test AudioStateManager. +* @tc.number: AudioStateManagerUnitTest_011 +* @tc.desc : Test ExcludeOutputDevices interface. +*/ +HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_011, TestSize.Level1) +{ + AudioDeviceUsage audioDevUsage = MEDIA_OUTPUT_DEVICES; + auto descriptor = std::make_shared(); + vector> audioDeviceDescriptors; + audioDeviceDescriptors.push_back(descriptor); + AudioStateManager::GetAudioStateManager().ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + AudioStateManager::GetAudioStateManager().UnexcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + EXPECT_NE(0, audioDeviceDescriptors.size()); + + audioDevUsage = CALL_OUTPUT_DEVICES; + AudioStateManager::GetAudioStateManager().ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + AudioStateManager::GetAudioStateManager().UnexcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + EXPECT_NE(0, audioDeviceDescriptors.size()); + + audioDevUsage = CALL_INPUT_DEVICES; + AudioStateManager::GetAudioStateManager().ExcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + AudioStateManager::GetAudioStateManager().UnexcludeOutputDevices(audioDevUsage, audioDeviceDescriptors); + EXPECT_NE(0, audioDeviceDescriptors.size()); +} + +/** +* @tc.name : Test AudioStateManager. +* @tc.number: AudioStateManagerUnitTest_012 +* @tc.desc : Test SetAudioSceneOwnerUid interface. +*/ +HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_012, TestSize.Level1) +{ + int32_t uid = 1041; + AudioStateManager::GetAudioStateManager().SetAudioSceneOwnerUid(uid); + EXPECT_EQ(5557, AudioStateManager::GetAudioStateManager().ownerUid_); +} + +/** +* @tc.name : Test AudioStateManager. +* @tc.number: AudioStateManagerUnitTest_013 +* @tc.desc : Test GetExcludedDevices interface. +*/ +HWTEST_F(AudioStateManagerUnitTest, AudioStateManagerUnitTest_013, TestSize.Level1) +{ + AudioDeviceUsage usage = CALL_INPUT_DEVICES; + auto ret = AudioStateManager::GetAudioStateManager().GetExcludedDevices(usage); + EXPECT_EQ(0, ret.size()); +} } // namespace AudioStandard } // namespace OHOS + \ No newline at end of file -- Gitee