1 /*
2 * Copyright (c) 2021-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_device_descriptor.h"
17 #include "audio_connected_device_unit_test.h"
18
19 using namespace testing::ext;
20
21 namespace OHOS {
22 namespace AudioStandard {
23
SetUpTestCase(void)24 void AudioConnectedDeviceUnitTest::SetUpTestCase(void) {}
TearDownTestCase(void)25 void AudioConnectedDeviceUnitTest::TearDownTestCase(void) {}
SetUp(void)26 void AudioConnectedDeviceUnitTest::SetUp(void) {}
TearDown(void)27 void AudioConnectedDeviceUnitTest::TearDown(void) {}
28
29 /**
30 * @tc.name : Test AudioConnectedDevice.
31 * @tc.number: AudioConnectedDeviceUnitTest_001.
32 * @tc.desc : Test IsConnectedOutputDevice.
33 */
34 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_001, TestSize.Level1)
35 {
36 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_FILE_SINK,
37 DeviceRole::OUTPUT_DEVICE);
38 AudioConnectedDevice::GetInstance().connectedDevices_.push_back(desc);
39 bool result = AudioConnectedDevice::GetInstance().IsConnectedOutputDevice(desc);
40 EXPECT_EQ(result, false);
41 }
42
43 /**
44 * @tc.name : Test AudioConnectedDevice.
45 * @tc.number: AudioConnectedDeviceUnitTest_002.
46 * @tc.desc : Test IsConnectedOutputDevice.
47 */
48 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_002, TestSize.Level1)
49 {
50 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_EARPIECE,
51 DeviceRole::OUTPUT_DEVICE);
52 AudioConnectedDevice::GetInstance().connectedDevices_.push_back(desc);
53 bool result = AudioConnectedDevice::GetInstance().IsConnectedOutputDevice(desc);
54 EXPECT_EQ(result, true);
55 }
56
57 /**
58 * @tc.name : Test AudioConnectedDevice.
59 * @tc.number: AudioConnectedDeviceUnitTest_003.
60 * @tc.desc : Test CheckExistOutputDevice.
61 */
62 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_003, TestSize.Level1)
63 {
64 std::string macAddress = "test";
65 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
66 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_EARPIECE,
67 DeviceRole::OUTPUT_DEVICE);
68 audioConnectedDevice->connectedDevices_.push_back(desc);
69 auto result = audioConnectedDevice->CheckExistOutputDevice(DeviceType::DEVICE_TYPE_EARPIECE, macAddress);
70 EXPECT_NE(result, nullptr);
71 }
72
73 /**
74 * @tc.name : Test AudioConnectedDevice.
75 * @tc.number: AudioConnectedDeviceUnitTest_004.
76 * @tc.desc : Test CheckExistOutputDevice.
77 */
78 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_004, TestSize.Level1)
79 {
80 std::string macAddress = "test";
81 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
82 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
83 DeviceRole::OUTPUT_DEVICE);
84 desc->macAddress_ = macAddress;
85 audioConnectedDevice->connectedDevices_.push_back(desc);
86 auto result = audioConnectedDevice->CheckExistOutputDevice(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP, macAddress);
87 EXPECT_NE(result, nullptr);
88 }
89
90 /**
91 * @tc.name : Test AudioConnectedDevice.
92 * @tc.number: AudioConnectedDeviceUnitTest_005.
93 * @tc.desc : Test CheckExistOutputDevice.
94 */
95 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_005, TestSize.Level1)
96 {
97 std::string macAddress = "test";
98 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
99 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
100 DeviceRole::INPUT_DEVICE);
101 audioConnectedDevice->connectedDevices_.push_back(desc);
102 auto result = audioConnectedDevice->CheckExistOutputDevice(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP, macAddress);
103 EXPECT_EQ(result, nullptr);
104
105 result = audioConnectedDevice->CheckExistOutputDevice(DeviceType::DEVICE_TYPE_DP, macAddress);
106 EXPECT_EQ(result, nullptr);
107 }
108
109 /**
110 * @tc.name : Test AudioConnectedDevice.
111 * @tc.number: AudioConnectedDeviceUnitTest_006.
112 * @tc.desc : Test CheckExistOutputDevice.
113 */
114 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_006, TestSize.Level1)
115 {
116 std::string macAddress = "test";
117 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
118 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
119 DeviceRole::OUTPUT_DEVICE);
120 audioConnectedDevice->connectedDevices_.push_back(desc);
121 auto result = audioConnectedDevice->CheckExistOutputDevice(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP, macAddress);
122 EXPECT_EQ(result, nullptr);
123 }
124
125 /**
126 * @tc.name : Test AudioConnectedDevice.
127 * @tc.number: AudioConnectedDeviceUnitTest_007.
128 * @tc.desc : Test CheckExistInputDevice.
129 */
130 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_007, TestSize.Level1)
131 {
132 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
133 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO,
134 DeviceRole::INPUT_DEVICE);
135 audioConnectedDevice->connectedDevices_.push_back(desc);
136 auto result = audioConnectedDevice->CheckExistInputDevice(DeviceType::DEVICE_TYPE_DP);
137 EXPECT_EQ(result, nullptr);
138
139 result = audioConnectedDevice->CheckExistInputDevice(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO);
140 EXPECT_NE(result, nullptr);
141 }
142
143 /**
144 * @tc.name : Test AudioConnectedDevice.
145 * @tc.number: AudioConnectedDeviceUnitTest_008.
146 * @tc.desc : Test GetConnectedDeviceByType.
147 */
148 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_008, TestSize.Level1)
149 {
150 std::string networkId = "test";
151 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
152 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
153 desc->networkId_ = networkId;
154 audioConnectedDevice->connectedDevices_.push_back(desc);
155 auto result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP);
156 EXPECT_NE(result, nullptr);
157
158 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_EARPIECE);
159 EXPECT_EQ(result, nullptr);
160 }
161
162 /**
163 * @tc.name : Test AudioConnectedDevice.
164 * @tc.number: AudioConnectedDeviceUnitTest_009.
165 * @tc.desc : Test GetConnectedDeviceByType.
166 */
167 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_009, TestSize.Level1)
168 {
169 std::string networkId = "test";
170 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
171 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
172 desc->networkId_ = "networkId";
173 audioConnectedDevice->connectedDevices_.push_back(desc);
174 auto result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP);
175 EXPECT_EQ(result, nullptr);
176
177 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_EARPIECE);
178 EXPECT_EQ(result, nullptr);
179 }
180
181 /**
182 * @tc.name : Test AudioConnectedDevice.
183 * @tc.number: AudioConnectedDeviceUnitTest_010.
184 * @tc.desc : Test GetConnectedDeviceByType.
185 */
186 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_010, TestSize.Level1)
187 {
188 std::string networkId = "test";
189 std::string macAddress = "macAddress";
190 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
191 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
192 desc->networkId_ = "networkId";
193 desc->macAddress_ = macAddress;
194 audioConnectedDevice->connectedDevices_.push_back(desc);
195 auto result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP, macAddress);
196 EXPECT_EQ(result, nullptr);
197
198 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_EARPIECE, macAddress);
199 EXPECT_EQ(result, nullptr);
200
201 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP, macAddress);
202 EXPECT_EQ(result, nullptr);
203 }
204
205 /**
206 * @tc.name : Test AudioConnectedDevice.
207 * @tc.number: AudioConnectedDeviceUnitTest_011.
208 * @tc.desc : Test GetConnectedDeviceByType.
209 */
210 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_011, TestSize.Level1)
211 {
212 std::string networkId = "test";
213 std::string macAddress = "macAddress";
214 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
215 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
216 desc->networkId_ = networkId;
217 desc->macAddress_ = "test1";
218 audioConnectedDevice->connectedDevices_.push_back(desc);
219 auto result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP, macAddress);
220 EXPECT_EQ(result, nullptr);
221
222 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_EARPIECE, macAddress);
223 EXPECT_EQ(result, nullptr);
224 }
225
226 /**
227 * @tc.name : Test AudioConnectedDevice.
228 * @tc.number: AudioConnectedDeviceUnitTest_012.
229 * @tc.desc : Test GetConnectedDeviceByType.
230 */
231 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_012, TestSize.Level1)
232 {
233 std::string networkId = "test";
234 std::string macAddress = "macAddress";
235 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
236 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
237 desc->networkId_ = "networkId";
238 desc->macAddress_ = "test1";
239 audioConnectedDevice->connectedDevices_.push_back(desc);
240 auto result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_DP, macAddress);
241 EXPECT_EQ(result, nullptr);
242
243 result = audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceType::DEVICE_TYPE_EARPIECE,
244 macAddress);
245 EXPECT_EQ(result, nullptr);
246 }
247
248 /**
249 * @tc.name : Test AudioConnectedDevice.
250 * @tc.number: AudioConnectedDeviceUnitTest_013.
251 * @tc.desc : Test UpdateConnectDevice.
252 */
253 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_013, TestSize.Level1)
254 {
255 std::string macAddress = "macAddress";
256 std::string deviceName = "deviceName";
257 AudioStreamInfo streamInfo;
258 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
259 audioConnectedDevice->UpdateConnectDevice(DeviceType::DEVICE_TYPE_DP, macAddress, deviceName, streamInfo);
260 EXPECT_NE(audioConnectedDevice, nullptr);
261
262 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_DP, DeviceRole::OUTPUT_DEVICE);
263 desc->macAddress_ = macAddress;
264 audioConnectedDevice->connectedDevices_.push_back(desc);
265 audioConnectedDevice->UpdateConnectDevice(DeviceType::DEVICE_TYPE_DP, macAddress, deviceName, streamInfo);
266 EXPECT_NE(audioConnectedDevice, nullptr);
267 }
268
269 /**
270 * @tc.name : Test AudioConnectedDevice.
271 * @tc.number: AudioConnectedDeviceUnitTest_014.
272 * @tc.desc : Test GetUsbDeviceDescriptor.
273 */
274 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_014, TestSize.Level1)
275 {
276 std::string address = "test";
277 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
278 auto result = audioConnectedDevice->GetUsbDeviceDescriptor(address, DeviceRole::INPUT_DEVICE);
279 EXPECT_NE(audioConnectedDevice, nullptr);
280 }
281
282 /**
283 * @tc.name : Test AudioConnectedDevice.
284 * @tc.number: AudioConnectedDeviceUnitTest_015.
285 * @tc.desc : Test UpdateSpatializationSupported.
286 */
287 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_015, TestSize.Level1)
288 {
289 std::string macAddress = "test";
290 bool spatializationSupported = true;
291 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
292 std::string encryAddress =
293 AudioSpatializationService::GetAudioSpatializationService().GetSha256EncryptAddress(macAddress);
294
295 auto desc1 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
296 DeviceRole::OUTPUT_DEVICE);
297 desc1->macAddress_ = macAddress;
298 desc1->spatializationSupported_ = spatializationSupported;
299 audioConnectedDevice->connectedDevices_.push_back(desc1);
300
301 auto desc2 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
302 DeviceRole::OUTPUT_DEVICE);
303 desc2->macAddress_ = macAddress;
304 audioConnectedDevice->connectedDevices_.push_back(desc2);
305
306 auto desc3 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO,
307 DeviceRole::OUTPUT_DEVICE);
308 desc3->macAddress_ = macAddress;
309 desc3->spatializationSupported_ = spatializationSupported;
310 audioConnectedDevice->connectedDevices_.push_back(desc3);
311
312 auto desc4 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO,
313 DeviceRole::OUTPUT_DEVICE);
314 desc4->macAddress_ = macAddress;
315 audioConnectedDevice->connectedDevices_.push_back(desc4);
316
317 audioConnectedDevice->UpdateSpatializationSupported(encryAddress, spatializationSupported);
318 EXPECT_NE(audioConnectedDevice, nullptr);
319 }
320
321 /**
322 * @tc.name : Test AudioConnectedDevice.
323 * @tc.number: AudioConnectedDeviceUnitTest_016.
324 * @tc.desc : Test UpdateSpatializationSupported.
325 */
326 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_016, TestSize.Level1)
327 {
328 std::string macAddress = "test";
329 bool spatializationSupported = true;
330 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
331 std::string encryAddress =
332 AudioSpatializationService::GetAudioSpatializationService().GetSha256EncryptAddress(macAddress);
333
334 auto desc1 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
335 DeviceRole::OUTPUT_DEVICE);
336 desc1->macAddress_ = "test1";
337 desc1->spatializationSupported_ = spatializationSupported;
338 audioConnectedDevice->connectedDevices_.push_back(desc1);
339
340 auto desc2 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
341 DeviceRole::OUTPUT_DEVICE);
342 desc2->macAddress_ = "test1";
343 audioConnectedDevice->connectedDevices_.push_back(desc2);
344
345 auto desc3 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO,
346 DeviceRole::OUTPUT_DEVICE);
347 desc3->macAddress_ = "test1";
348 desc3->spatializationSupported_ = spatializationSupported;
349 audioConnectedDevice->connectedDevices_.push_back(desc3);
350
351 auto desc4 = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_SCO,
352 DeviceRole::OUTPUT_DEVICE);
353 desc4->macAddress_ = "test1";
354 audioConnectedDevice->connectedDevices_.push_back(desc4);
355
356 audioConnectedDevice->UpdateSpatializationSupported(encryAddress, spatializationSupported);
357 EXPECT_NE(audioConnectedDevice, nullptr);
358 }
359
360 /**
361 * @tc.name : Test AudioConnectedDevice.
362 * @tc.number: AudioConnectedDeviceUnitTest_017.
363 * @tc.desc : Test CheckDeviceConnected.
364 */
365 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_017, TestSize.Level1)
366 {
367 std::string selectedDevice = "test";
368 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
369 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_BLUETOOTH_A2DP,
370 DeviceRole::OUTPUT_DEVICE);
371 desc->networkId_ = selectedDevice;
372 audioConnectedDevice->connectedDevices_.push_back(desc);
373 bool result = audioConnectedDevice->CheckDeviceConnected(selectedDevice);
374 EXPECT_EQ(result, false);
375
376 result = audioConnectedDevice->CheckDeviceConnected("test1");
377 EXPECT_EQ(result, false);
378 }
379
380 /**
381 * @tc.name : Test AudioConnectedDevice.
382 * @tc.number: AudioConnectedDeviceUnitTest_018.
383 * @tc.desc : Test HasArm.
384 */
385 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_018, TestSize.Level1)
386 {
387 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
388 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_USB_ARM_HEADSET,
389 DeviceRole::OUTPUT_DEVICE);
390 audioConnectedDevice->connectedDevices_.push_back(desc);
391 bool result = audioConnectedDevice->HasArm(DeviceRole::OUTPUT_DEVICE);
392 EXPECT_EQ(result, true);
393
394 result = audioConnectedDevice->HasArm(DeviceRole::INPUT_DEVICE);
395 EXPECT_EQ(result, false);
396 }
397
398 /**
399 * @tc.name : Test AudioConnectedDevice.
400 * @tc.number: AudioConnectedDeviceUnitTest_019.
401 * @tc.desc : Test HasHifi.
402 */
403 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_019, TestSize.Level1)
404 {
405 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
406 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_USB_HEADSET,
407 DeviceRole::OUTPUT_DEVICE);
408 audioConnectedDevice->connectedDevices_.push_back(desc);
409 bool result = audioConnectedDevice->HasHifi(DeviceRole::OUTPUT_DEVICE);
410 EXPECT_EQ(result, true);
411
412 result = audioConnectedDevice->HasHifi(DeviceRole::INPUT_DEVICE);
413 EXPECT_EQ(result, false);
414 }
415
416 /**
417 * @tc.name : Test AudioConnectedDevice.
418 * @tc.number: AudioConnectedDeviceUnitTest_020.
419 * @tc.desc : Test IsArmDevice.
420 */
421 HWTEST_F(AudioConnectedDeviceUnitTest, AudioConnectedDeviceUnitTest_020, TestSize.Level1)
422 {
423 std::string address = "test";
424 auto audioConnectedDevice = std::make_shared<AudioConnectedDevice>();
425 auto desc = std::make_shared<AudioDeviceDescriptor>(DeviceType::DEVICE_TYPE_USB_ARM_HEADSET,
426 DeviceRole::OUTPUT_DEVICE);
427 desc->macAddress_ = address;
428 audioConnectedDevice->connectedDevices_.push_back(desc);
429 bool result = audioConnectedDevice->IsArmDevice(address, DeviceRole::OUTPUT_DEVICE);
430 EXPECT_EQ(result, true);
431
432 result = audioConnectedDevice->IsArmDevice(address, DeviceRole::INPUT_DEVICE);
433 EXPECT_EQ(result, false);
434 }
435 } // namespace AudioStandard
436 } // namespace OHOS
437