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 "privacy_priority_router_unit_test.h"
17 #include "audio_errors.h"
18 #include "audio_policy_log.h"
19
20 #include <thread>
21 #include <memory>
22 #include <vector>
23 using namespace testing::ext;
24
25 namespace OHOS {
26 namespace AudioStandard {
27
SetUpTestCase(void)28 void PrivacyPriorityRouterUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)29 void PrivacyPriorityRouterUnitTest::TearDownTestCase(void) {}
SetUp(void)30 void PrivacyPriorityRouterUnitTest::SetUp(void) {}
TearDown(void)31 void PrivacyPriorityRouterUnitTest::TearDown(void) {}
32
33 /**
34 * @tc.name : Test PrivacyPriorityRouter.
35 * @tc.number: GetRecordCaptureDevice_002
36 * @tc.desc : Test GetRecordCaptureDevice interface.
37 */
38 HWTEST(PrivacyPriorityRouterUnitTest, GetRecordCaptureDevice_002, TestSize.Level1)
39 {
40 PrivacyPriorityRouter privacyPriorityRouter;
41 SourceType sourceType = SOURCE_TYPE_VOICE_RECOGNITION;
42 int32_t clientUID = 1;
43 uint32_t sessionID = 1;
44 auto result = privacyPriorityRouter.GetRecordCaptureDevice(sourceType, clientUID, sessionID);
45 EXPECT_NE(result, nullptr);
46 }
47
48 /**
49 * @tc.name : Test PrivacyPriorityRouter.
50 * @tc.number: GetRecordCaptureDevice_003
51 * @tc.desc : Test GetRecordCaptureDevice interface.
52 */
53 HWTEST(PrivacyPriorityRouterUnitTest, GetRecordCaptureDevice_003, TestSize.Level1)
54 {
55 PrivacyPriorityRouter privacyPriorityRouter;
56 SourceType sourceType = SOURCE_TYPE_INVALID;
57 int32_t clientUID = 1;
58 uint32_t sessionID = 1;
59 auto result = privacyPriorityRouter.GetRecordCaptureDevice(sourceType, clientUID, sessionID);
60 EXPECT_NE(result, nullptr);
61 }
62
63 /**
64 * @tc.name : Test PrivacyPriorityRouter.
65 * @tc.number: GetRecordCaptureDevice_004
66 * @tc.desc : Test GetRecordCaptureDevice interface.
67 */
68 HWTEST(PrivacyPriorityRouterUnitTest, GetRecordCaptureDevice_004, TestSize.Level1)
69 {
70 PrivacyPriorityRouter privacyPriorityRouter;
71 SourceType sourceType = SOURCE_TYPE_INVALID;
72 int32_t clientUID = 1;
73 uint32_t sessionID = 1;
74 shared_ptr<AudioDeviceDescriptor> desc = make_shared<AudioDeviceDescriptor>();
75 desc->deviceType_ = DEVICE_TYPE_BLUETOOTH_SCO;
76 auto result = privacyPriorityRouter.GetRecordCaptureDevice(sourceType, clientUID, sessionID);
77 EXPECT_NE(result->deviceType_, desc->deviceType_);
78 }
79
80 /**
81 * @tc.name : Test PrivacyPriorityRouter.
82 * @tc.number: GetCallRenderDevice_001
83 * @tc.desc : Test GetCallRenderDevice interface.
84 */
85 HWTEST(PrivacyPriorityRouterUnitTest, GetCallRenderDevice_001, TestSize.Level1)
86 {
87 PrivacyPriorityRouter privacyPriorityRouter;
88 StreamUsage streamUsage = STREAM_USAGE_VOICE_MODEM_COMMUNICATION;
89 int32_t clientUID = 12345;
90 auto result = privacyPriorityRouter.GetCallRenderDevice(streamUsage, clientUID);
91 EXPECT_NE(result, nullptr);
92 }
93
94 /**
95 * @tc.name : Test PrivacyPriorityRouter.
96 * @tc.number: GetCallRenderDevice_002
97 * @tc.desc : Test GetCallRenderDevice interface.
98 */
99 HWTEST(PrivacyPriorityRouterUnitTest, GetCallRenderDevice_002, TestSize.Level1)
100 {
101 PrivacyPriorityRouter privacyPriorityRouter;
102 StreamUsage streamUsage = STREAM_USAGE_MEDIA;
103 int32_t clientUID = 12345;
104 auto result = privacyPriorityRouter.GetCallRenderDevice(streamUsage, clientUID);
105 EXPECT_NE(result, nullptr);
106 }
107
108 /**
109 * @tc.name : Test PrivacyPriorityRouter.
110 * @tc.number: PrivacyPriorityRouter_001
111 * @tc.desc : Test NeedLatestConnectWithDefaultDevices interface.
112 */
113 HWTEST(PrivacyPriorityRouterUnitTest, PrivacyPriorityRouter_001, TestSize.Level1)
114 {
115 PrivacyPriorityRouter router;
116
117 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_WIRED_HEADSET));
118 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_WIRED_HEADPHONES));
119 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_BLUETOOTH_SCO));
120 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_USB_HEADSET));
121 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_BLUETOOTH_A2DP));
122 EXPECT_TRUE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_USB_ARM_HEADSET));
123 EXPECT_FALSE(router.NeedLatestConnectWithDefaultDevices(DEVICE_TYPE_NONE));
124 }
125
126 /**
127 * @tc.name : Test PrivacyPriorityRouter.
128 * @tc.number: PrivacyPriorityRouter_002
129 * @tc.desc : Test GetRingRenderDevices interface.
130 */
131 HWTEST(PrivacyPriorityRouterUnitTest, PrivacyPriorityRouter_002, TestSize.Level1)
132 {
133 PrivacyPriorityRouter router;
134
135 EXPECT_EQ(1, router.GetRingRenderDevices(STREAM_USAGE_VOICE_RINGTONE, 1).size());
136 EXPECT_EQ(1, router.GetRingRenderDevices(STREAM_USAGE_RINGTONE, 1).size());
137 EXPECT_EQ(1, router.GetRingRenderDevices(STREAM_USAGE_ALARM, 1).size());
138 }
139 } // namespace AudioStandard
140 } // namespace OHOS
141