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_haptic_manager_impl_unit_test.h"
17
18 #include "media_errors.h"
19 #include <fcntl.h>
20 #include <sys/stat.h>
21
22 namespace OHOS {
23 namespace Media {
24 using namespace std;
25 using namespace testing::ext;
26 using namespace Security::AccessToken;
27 using Security::AccessToken::AccessTokenID;
28
29 const std::string AUDIO_TEST_URI = "ringtone.ogg";
30 const std::string HAPTIC_TEST_URI = "ringtone.json";
31 const std::string HAPTIC_TEST_EFFECT_ID = "haptic.clock.timer";
32
33 static std::shared_ptr<AudioHapticManagerImpl> g_audioHapticManagerImpl = nullptr;
34
35 static AccessTokenID g_tokenId = 0;
36
SetUpTestCase(void)37 void AudioHapticManagerImplUnitTest::SetUpTestCase(void)
38 {
39 // SetSelfTokenID to foundation for ohos.permission.VIBRATE
40 g_tokenId = AccessTokenKit::GetNativeTokenId("foundation");
41 ASSERT_NE(0, g_tokenId);
42 ASSERT_EQ(0, SetSelfTokenID(g_tokenId));
43
44 g_audioHapticManagerImpl = std::make_shared<AudioHapticManagerImpl>();
45 ASSERT_NE(g_audioHapticManagerImpl, nullptr);
46 }
47
TearDownTestCase(void)48 void AudioHapticManagerImplUnitTest::TearDownTestCase(void)
49 {
50 }
51
SetUp(void)52 void AudioHapticManagerImplUnitTest::SetUp(void) {}
53
TearDown(void)54 void AudioHapticManagerImplUnitTest::TearDown(void) {}
55
56 /**
57 * @tc.name : Test AudioHapticManagerImpl RegisterSource API
58 * @tc.number: AudioHapticManagerImpl_RegisterSource_001
59 * @tc.desc : Test AudioHapticManagerImpl RegisterSource interface
60 */
61 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_RegisterSource_001, TestSize.Level1)
62 {
63 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
64
65 std::string audioUri = AUDIO_TEST_URI;
66 std::string hapticUri = HAPTIC_TEST_URI;
67 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
68 EXPECT_NE(-1, sourceId);
69
70 g_audioHapticManagerImpl->UnregisterSource(sourceId);
71 }
72
73 /**
74 * @tc.name : Test AudioHapticManagerImpl RegisterSourceWithEffectId API
75 * @tc.number: AudioHapticManagerImpl_RegisterSourceWithEffectId_001
76 * @tc.desc : Test AudioHapticManagerImpl RegisterSourceWithEffectId interface
77 */
78 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_RegisterSourceWithEffectId_001, TestSize.Level1)
79 {
80 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
81
82 std::string audioUri = AUDIO_TEST_URI;
83 std::string effectId = HAPTIC_TEST_EFFECT_ID;
84 int32_t sourceId = g_audioHapticManagerImpl->RegisterSourceWithEffectId(audioUri, effectId);
85 EXPECT_NE(-1, sourceId);
86
87 g_audioHapticManagerImpl->UnregisterSource(sourceId);
88 }
89
90 /**
91 * @tc.name : Test AudioHapticManagerImpl UnregisterSource API
92 * @tc.number: AudioHapticManagerImpl_UnregisterSource_001
93 * @tc.desc : Test AudioHapticManagerImpl UnregisterSource interface
94 */
95 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_UnregisterSource_001, TestSize.Level1)
96 {
97 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
98
99 std::string audioUri = AUDIO_TEST_URI;
100 std::string hapticUri = HAPTIC_TEST_URI;
101 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
102 EXPECT_NE(-1, sourceId);
103
104 int32_t result = g_audioHapticManagerImpl->UnregisterSource(sourceId);
105 EXPECT_EQ(MSERR_OK, result);
106 }
107
108 /**
109 * @tc.name : Test AudioHapticManagerImpl UnregisterSource API
110 * @tc.number: AudioHapticManagerImpl_UnregisterSource_002
111 * @tc.desc : Test AudioHapticManagerImpl UnregisterSource interface
112 */
113 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_UnregisterSource_002, TestSize.Level1)
114 {
115 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
116
117 int32_t sourceId = -1;
118 int32_t result = g_audioHapticManagerImpl->UnregisterSource(sourceId);
119 EXPECT_NE(MSERR_OK, result);
120 }
121
122 /**
123 * @tc.name : Test AudioHapticManagerImpl UnregisterSource API
124 * @tc.number: AudioHapticManagerImpl_UnregisterSource_003
125 * @tc.desc : Test AudioHapticManagerImpl UnregisterSource interface
126 */
127 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_UnregisterSource_003, TestSize.Level1)
128 {
129 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
130
131 std::string audioUri = AUDIO_TEST_URI;
132 std::string effectId = HAPTIC_TEST_EFFECT_ID;
133 int32_t sourceId = g_audioHapticManagerImpl->RegisterSourceWithEffectId(audioUri, effectId);
134 EXPECT_NE(-1, sourceId);
135
136 int32_t result = g_audioHapticManagerImpl->UnregisterSource(sourceId);
137 EXPECT_EQ(MSERR_OK, result);
138 }
139
140 /**
141 * @tc.name : Test AudioHapticManagerImpl SetAudioLatencyMode API
142 * @tc.number: AudioHapticManagerImpl_SetAudioLatencyMode_001
143 * @tc.desc : Test AudioHapticManagerImpl SetAudioLatencyMode interface
144 */
145 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetAudioLatencyMode_001, TestSize.Level1)
146 {
147 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
148
149 std::string audioUri = AUDIO_TEST_URI;
150 std::string hapticUri = HAPTIC_TEST_URI;
151 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
152 EXPECT_NE(-1, sourceId);
153
154 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_FAST;
155 int32_t result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
156 EXPECT_EQ(MSERR_OK, result);
157
158 g_audioHapticManagerImpl->UnregisterSource(sourceId);
159 }
160
161 /**
162 * @tc.name : Test AudioHapticManagerImpl SetAudioLatencyMode API
163 * @tc.number: AudioHapticManagerImpl_SetAudioLatencyMode_002
164 * @tc.desc : Test AudioHapticManagerImpl SetAudioLatencyMode interface
165 */
166 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetAudioLatencyMode_002, TestSize.Level1)
167 {
168 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
169
170 std::string audioUri = AUDIO_TEST_URI;
171 std::string hapticUri = HAPTIC_TEST_URI;
172 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
173 EXPECT_NE(-1, sourceId);
174
175 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
176 int32_t result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
177 EXPECT_EQ(MSERR_OK, result);
178
179 g_audioHapticManagerImpl->UnregisterSource(sourceId);
180 }
181
182 /**
183 * @tc.name : Test AudioHapticManagerImpl SetAudioLatencyMode API
184 * @tc.number: AudioHapticManagerImpl_SetAudioLatencyMode_003
185 * @tc.desc : Test AudioHapticManagerImpl SetAudioLatencyMode interface
186 */
187 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetAudioLatencyMode_003, TestSize.Level1)
188 {
189 int32_t sourceId = -1;
190 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
191 int32_t result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
192 EXPECT_NE(MSERR_OK, result);
193 }
194
195 /**
196 * @tc.name : Test AudioHapticManagerImpl SetAudioLatencyMode API
197 * @tc.number: AudioHapticManagerImpl_SetAudioLatencyMode_004
198 * @tc.desc : Test AudioHapticManagerImpl SetAudioLatencyMode interface
199 */
200 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetAudioLatencyMode_004, TestSize.Level1)
201 {
202 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
203
204 std::string audioUri = AUDIO_TEST_URI;
205 std::string effectId = HAPTIC_TEST_EFFECT_ID;
206 int32_t sourceId = g_audioHapticManagerImpl->RegisterSourceWithEffectId(audioUri, effectId);
207 EXPECT_NE(-1, sourceId);
208
209 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
210 int32_t result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
211 EXPECT_NE(MSERR_OK, result);
212
213 g_audioHapticManagerImpl->UnregisterSource(sourceId);
214 }
215
216 /**
217 * @tc.name : Test AudioHapticManagerImpl SetAudioLatencyMode API
218 * @tc.number: AudioHapticManagerImpl_SetAudioLatencyMode_005
219 * @tc.desc : Test AudioHapticManagerImpl SetAudioLatencyMode interface
220 */
221 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetAudioLatencyMode_005, TestSize.Level1)
222 {
223 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
224
225 std::string audioUri = AUDIO_TEST_URI;
226 std::string effectId = HAPTIC_TEST_EFFECT_ID;
227 int32_t sourceId = g_audioHapticManagerImpl->RegisterSourceWithEffectId(audioUri, effectId);
228 EXPECT_NE(-1, sourceId);
229
230 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_FAST;
231 int32_t result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
232 EXPECT_EQ(MSERR_OK, result);
233
234 g_audioHapticManagerImpl->UnregisterSource(sourceId);
235 }
236
237 /**
238 * @tc.name : Test AudioHapticManagerImpl SetStreamUsage API
239 * @tc.number: AudioHapticManagerImpl_SetStreamUsage_001
240 * @tc.desc : Test AudioHapticManagerImpl SetStreamUsage interface
241 */
242 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetStreamUsage_001, TestSize.Level1)
243 {
244 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
245
246 std::string audioUri = AUDIO_TEST_URI;
247 std::string hapticUri = HAPTIC_TEST_URI;
248 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
249 EXPECT_NE(-1, sourceId);
250
251 int32_t result = MSERR_OK;
252 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
253 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
254 EXPECT_EQ(MSERR_OK, result);
255
256 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
257 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
258 EXPECT_EQ(MSERR_OK, result);
259
260 g_audioHapticManagerImpl->UnregisterSource(sourceId);
261 }
262
263 /**
264 * @tc.name : Test AudioHapticManagerImpl SetStreamUsage API
265 * @tc.number: AudioHapticManagerImpl_SetStreamUsage_002
266 * @tc.desc : Test AudioHapticManagerImpl SetStreamUsage interface
267 */
268 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetStreamUsage_002, TestSize.Level1)
269 {
270 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
271
272 std::string audioUri = AUDIO_TEST_URI;
273 std::string hapticUri = HAPTIC_TEST_URI;
274 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
275 EXPECT_NE(-1, sourceId);
276
277 int32_t result = MSERR_OK;
278 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
279 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
280 EXPECT_EQ(MSERR_OK, result);
281
282 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_RINGTONE;
283 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
284 EXPECT_EQ(MSERR_OK, result);
285
286 g_audioHapticManagerImpl->UnregisterSource(sourceId);
287 }
288
289 /**
290 * @tc.name : Test AudioHapticManagerImpl SetStreamUsage API
291 * @tc.number: AudioHapticManagerImpl_SetStreamUsage_003
292 * @tc.desc : Test AudioHapticManagerImpl SetStreamUsage interface
293 */
294 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetStreamUsage_003, TestSize.Level1)
295 {
296 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
297
298 std::string audioUri = AUDIO_TEST_URI;
299 std::string hapticUri = HAPTIC_TEST_URI;
300 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
301 EXPECT_NE(-1, sourceId);
302
303 int32_t result = MSERR_OK;
304 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
305 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
306 EXPECT_EQ(MSERR_OK, result);
307
308 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_NOTIFICATION;
309 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
310 EXPECT_EQ(MSERR_OK, result);
311
312 g_audioHapticManagerImpl->UnregisterSource(sourceId);
313 }
314
315 /**
316 * @tc.name : Test AudioHapticManagerImpl SetStreamUsage API
317 * @tc.number: AudioHapticManagerImpl_SetStreamUsage_004
318 * @tc.desc : Test AudioHapticManagerImpl SetStreamUsage interface
319 */
320 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetStreamUsage_004, TestSize.Level1)
321 {
322 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
323
324 std::string audioUri = AUDIO_TEST_URI;
325 std::string hapticUri = HAPTIC_TEST_URI;
326 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
327 EXPECT_NE(-1, sourceId);
328
329 int32_t result = MSERR_OK;
330 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
331 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
332 EXPECT_EQ(MSERR_OK, result);
333
334 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_UNKNOWN;
335 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
336 EXPECT_NE(MSERR_OK, result);
337
338 g_audioHapticManagerImpl->UnregisterSource(sourceId);
339 }
340
341 /**
342 * @tc.name : Test AudioHapticManagerImpl SetStreamUsage API
343 * @tc.number: AudioHapticManagerImpl_SetStreamUsage_005
344 * @tc.desc : Test AudioHapticManagerImpl SetStreamUsage interface
345 */
346 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_SetStreamUsage_005, TestSize.Level1)
347 {
348 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
349
350 std::string audioUri = AUDIO_TEST_URI;
351 std::string hapticUri = HAPTIC_TEST_URI;
352 int32_t sourceId = -1;
353 int32_t result = MSERR_OK;
354
355 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
356 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
357 EXPECT_NE(MSERR_OK, result);
358 }
359
360 /**
361 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
362 * @tc.number: AudioHapticManagerImpl_CreatePlayer_001
363 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
364 */
365 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_001, TestSize.Level1)
366 {
367 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
368
369 std::string audioUri = AUDIO_TEST_URI;
370 std::string hapticUri = HAPTIC_TEST_URI;
371 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
372 EXPECT_NE(-1, sourceId);
373
374 int32_t result = MSERR_OK;
375 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
376 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
377 EXPECT_EQ(MSERR_OK, result);
378
379 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
380 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
381 EXPECT_EQ(MSERR_OK, result);
382
383 AudioHapticPlayerOptions options;
384 options.muteAudio = false;
385 options.muteHaptics = false;
386 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
387 g_audioHapticManagerImpl->CreatePlayer(sourceId, options);
388 EXPECT_NE(nullptr, audioHapticPlayer);
389
390 g_audioHapticManagerImpl->UnregisterSource(sourceId);
391 }
392
393 /**
394 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
395 * @tc.number: AudioHapticManagerImpl_CreatePlayer_002
396 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
397 */
398 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_002, TestSize.Level1)
399 {
400 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
401
402 std::string audioUri = AUDIO_TEST_URI;
403 std::string hapticUri = HAPTIC_TEST_URI;
404 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
405 EXPECT_NE(-1, sourceId);
406
407 int32_t result = MSERR_OK;
408 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
409 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
410 EXPECT_EQ(MSERR_OK, result);
411
412 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
413 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
414 EXPECT_EQ(MSERR_OK, result);
415
416 AudioHapticPlayerOptions options;
417 options.muteAudio = true;
418 options.muteHaptics = false;
419 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
420 g_audioHapticManagerImpl->CreatePlayer(sourceId, options);
421 EXPECT_NE(nullptr, audioHapticPlayer);
422
423 g_audioHapticManagerImpl->UnregisterSource(sourceId);
424 }
425
426 /**
427 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
428 * @tc.number: AudioHapticManagerImpl_CreatePlayer_003
429 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
430 */
431 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_003, TestSize.Level1)
432 {
433 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
434
435 std::string audioUri = AUDIO_TEST_URI;
436 std::string hapticUri = HAPTIC_TEST_URI;
437 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
438 EXPECT_NE(-1, sourceId);
439
440 int32_t result = MSERR_OK;
441 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
442 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
443 EXPECT_EQ(MSERR_OK, result);
444
445 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
446 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
447 EXPECT_EQ(MSERR_OK, result);
448
449 AudioHapticPlayerOptions options;
450 options.muteAudio = false;
451 options.muteHaptics = true;
452 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
453 g_audioHapticManagerImpl->CreatePlayer(sourceId, options);
454 EXPECT_NE(nullptr, audioHapticPlayer);
455
456 g_audioHapticManagerImpl->UnregisterSource(sourceId);
457 }
458
459 /**
460 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
461 * @tc.number: AudioHapticManagerImpl_CreatePlayer_004
462 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
463 */
464 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_004, TestSize.Level1)
465 {
466 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
467
468 std::string audioUri = AUDIO_TEST_URI;
469 std::string hapticUri = HAPTIC_TEST_URI;
470 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, hapticUri);
471 EXPECT_NE(-1, sourceId);
472
473 int32_t result = MSERR_OK;
474 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
475 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
476 EXPECT_EQ(MSERR_OK, result);
477
478 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
479 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
480 EXPECT_EQ(MSERR_OK, result);
481
482 AudioHapticPlayerOptions options;
483 options.muteAudio = true;
484 options.muteHaptics = true;
485 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
486 g_audioHapticManagerImpl->CreatePlayer(sourceId, options);
487 EXPECT_NE(nullptr, audioHapticPlayer);
488
489 g_audioHapticManagerImpl->UnregisterSource(sourceId);
490 }
491
492 /**
493 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
494 * @tc.number: AudioHapticManagerImpl_CreatePlayer_005
495 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
496 */
497 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_005, TestSize.Level1)
498 {
499 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
500
501 AudioHapticPlayerOptions options;
502 options.muteAudio = false;
503 options.muteHaptics = false;
504 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
505 g_audioHapticManagerImpl->CreatePlayer(-1, options);
506 EXPECT_EQ(nullptr, audioHapticPlayer);
507 }
508
509 /**
510 * @tc.name : Test AudioHapticManagerImpl CreatePlayer API
511 * @tc.number: AudioHapticManagerImpl_CreatePlayer_006
512 * @tc.desc : Test AudioHapticManagerImpl CreatePlayer interface
513 */
514 HWTEST_F(AudioHapticManagerImplUnitTest, AudioHapticManagerImpl_CreatePlayer_006, TestSize.Level1)
515 {
516 EXPECT_NE(g_audioHapticManagerImpl, nullptr);
517
518 std::string audioUri = AUDIO_TEST_URI;
519 std::string hapticUri = HAPTIC_TEST_URI;
520 int32_t fd = open(hapticUri.c_str(), O_RDONLY);
521 EXPECT_NE(-1, fd);
522 std::string newHapticUri = "fd://" + to_string(fd);
523
524 int32_t sourceId = g_audioHapticManagerImpl->RegisterSource(audioUri, newHapticUri);
525 EXPECT_NE(-1, sourceId);
526
527 int32_t result = MSERR_OK;
528 AudioLatencyMode latencyMode = AudioLatencyMode::AUDIO_LATENCY_MODE_NORMAL;
529 result = g_audioHapticManagerImpl->SetAudioLatencyMode(sourceId, latencyMode);
530 EXPECT_EQ(MSERR_OK, result);
531
532 AudioStandard::StreamUsage streamUsage = AudioStandard::StreamUsage::STREAM_USAGE_MUSIC;
533 result = g_audioHapticManagerImpl->SetStreamUsage(sourceId, streamUsage);
534 EXPECT_EQ(MSERR_OK, result);
535
536 AudioHapticPlayerOptions options = {false, false};
537 std::shared_ptr<AudioHapticPlayer> audioHapticPlayer =
538 g_audioHapticManagerImpl->CreatePlayer(sourceId, options);
539 EXPECT_NE(nullptr, audioHapticPlayer);
540
541 g_audioHapticManagerImpl->UnregisterSource(sourceId);
542 }
543 } // namespace Media
544 } // namespace OHOS