• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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