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 <gtest/gtest.h>
17 #include "tone_player_impl.h"
18 #include "audio_renderer_private.h"
19 #include "audio_errors.h"
20 #include "parameter.h"
21
22 using namespace testing::ext;
23 namespace OHOS {
24 namespace AudioStandard {
25 constexpr uint32_t SLEEP_TIME = 30000;
26 static size_t g_reqBufLen = 0;
27 class AudioToneplayerUnitTest : public testing::Test {
28 public:
29 static void SetUpTestCase(void);
30 static void TearDownTestCase(void);
31 void SetUp();
32 void TearDown();
33 };
34
SetUpTestCase(void)35 void AudioToneplayerUnitTest::SetUpTestCase(void)
36 {
37 // input testsuit setup step,setup invoked before all testcases
38 }
39
TearDownTestCase(void)40 void AudioToneplayerUnitTest::TearDownTestCase(void)
41 {
42 // input testsuit teardown step,teardown invoked after all testcases
43 }
44
SetUp(void)45 void AudioToneplayerUnitTest::SetUp(void)
46 {
47 // input testcase setup step,setup invoked before each testcases
48 }
49
TearDown(void)50 void AudioToneplayerUnitTest::TearDown(void)
51 {
52 // input testcase teardown step,teardown invoked after each testcases
53 }
54
55 class AudioRendererCallbackTest : public AudioRendererCallback {
56 public:
OnInterrupt(const InterruptEvent & interruptEvent)57 void OnInterrupt(const InterruptEvent &interruptEvent) override {}
OnStateChange(const RendererState state,const StateChangeCmdType cmdType)58 void OnStateChange(const RendererState state, const StateChangeCmdType cmdType) override {}
59 };
60
61 class AudioToneplayerCallbackTest : public AudioRendererCallback {
62 public:
63 void OnWriteData(size_t length);
64 };
65
OnWriteData(size_t length)66 void AudioToneplayerCallbackTest::OnWriteData(size_t length)
67 {
68 g_reqBufLen = length;
69 }
70
71 /**
72 * @tc.name : Test Create API
73 * @tc.type : FUNC
74 * @tc.number: Create_001
75 * @tc.desc : Test Create interface.
76 */
77 HWTEST(AudioToneplayerUnitTest, Create_001, TestSize.Level1)
78 {
79 std::shared_ptr<TonePlayer> toneplayer = nullptr;
80 AudioRendererInfo rendererInfo = {};
81 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
82 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_MEDIA;
83 rendererInfo.rendererFlags = 0;
84 toneplayer = TonePlayer::Create(rendererInfo);
85 ASSERT_NE(nullptr, toneplayer);
86
87 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
88 toneplayer = TonePlayer::Create(rendererInfo);
89 ASSERT_NE(nullptr, toneplayer);
90
91 toneplayer->Release();
92 }
93
94 /**
95 * @tc.name : Test toneplayer loading API
96 * @tc.type : FUNC
97 * @tc.number: Toneplayer_001
98 * @tc.desc : Test create->LoadTone->StartTone->StopTone->Release interface.
99 */
100 HWTEST(AudioToneplayerUnitTest, Toneplayer_001, TestSize.Level1)
101 {
102 AudioRendererInfo rendererInfo = {};
103 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
104 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_MEDIA;
105 rendererInfo.rendererFlags = 0;
106 std::shared_ptr<TonePlayer> toneplayer = TonePlayer::Create(rendererInfo);
107 ASSERT_NE(nullptr, toneplayer);
108
109 bool ret = toneplayer->LoadTone(TONE_TYPE_DIAL_1);
110 EXPECT_EQ(true, ret);
111
112 bool startRet = toneplayer->StartTone();
113 EXPECT_EQ(true, startRet);
114
115 usleep(SLEEP_TIME); // 30ms sleep time
116 bool stopRet = toneplayer->StopTone();
117 EXPECT_EQ(true, stopRet);
118
119 bool releaseRet = toneplayer->Release();
120 EXPECT_EQ(true, releaseRet);
121 }
122
123 #ifdef TEMP_DISABLE
124 /**
125 * @tc.name : Test toneplayer loading API
126 * @tc.type : FUNC
127 * @tc.number: Toneplayer_002
128 * @tc.desc : Test create->StartTone->StopTone->Release interface.
129 */
130 HWTEST(AudioToneplayerUnitTest, Toneplayer_002, TestSize.Level1)
131 {
132 AudioRendererInfo rendererInfo = {};
133 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
134 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
135 rendererInfo.rendererFlags = 0;
136 std::shared_ptr<TonePlayer> toneplayer = TonePlayer::Create(rendererInfo);
137 ASSERT_NE(nullptr, toneplayer);
138
139 bool ret = toneplayer->LoadTone(TONE_TYPE_DIAL_2);
140 EXPECT_EQ(true, ret);
141
142 usleep(SLEEP_TIME); // 30ms sleep time
143 bool stopRet = toneplayer->StopTone();
144 EXPECT_EQ(false, stopRet);
145
146 bool releaseRet = toneplayer->Release();
147 EXPECT_EQ(true, releaseRet);
148 }
149 #endif
150
151 /**
152 * @tc.name : Test toneplayer loading API
153 * @tc.type : FUNC
154 * @tc.number: Toneplayer_003
155 * @tc.desc : Test create->StartTone->Release interface.
156 */
157 HWTEST(AudioToneplayerUnitTest, Toneplayer_003, TestSize.Level1)
158 {
159 AudioRendererInfo rendererInfo = {};
160 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
161 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_MEDIA;
162 rendererInfo.rendererFlags = 0;
163 std::shared_ptr<TonePlayer> toneplayer = TonePlayer::Create(rendererInfo);
164 ASSERT_NE(nullptr, toneplayer);
165
166 bool startRet = toneplayer->StartTone();
167 EXPECT_EQ(false, startRet);
168
169 bool releaseRet = toneplayer->Release();
170 EXPECT_EQ(true, releaseRet);
171 }
172
173 /**
174 * @tc.name : Test toneplayer loading API
175 * @tc.type : FUNC
176 * @tc.number: Toneplayer_004
177 * @tc.desc : Test create->LoadTone->StartTone->Release interface.
178 */
179 HWTEST(AudioToneplayerUnitTest, Toneplayer_004, TestSize.Level1)
180 {
181 AudioRendererInfo rendererInfo = {};
182 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
183 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
184 rendererInfo.rendererFlags = 0;
185 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
186 ASSERT_NE(nullptr, toneplayer);
187
188 bool ret = toneplayer->LoadTone(TONE_TYPE_DIAL_6);
189 EXPECT_EQ(true, ret);
190
191 bool startRet = toneplayer->StartTone();
192 EXPECT_EQ(true, startRet);
193
194 usleep(SLEEP_TIME); // 30ms sleep time
195
196 bool releaseRet = toneplayer->Release();
197 EXPECT_EQ(true, releaseRet);
198 }
199
200 /**
201 * @tc.name : Test toneplayer loading API
202 * @tc.type : FUNC
203 * @tc.number: Toneplayer_005
204 * @tc.desc : Test create->LoadTone->StartTone->Release interface.
205 */
206 HWTEST(AudioToneplayerUnitTest, Toneplayer_005, TestSize.Level1)
207 {
208 AudioRendererInfo rendererInfo = {};
209 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
210 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
211 rendererInfo.rendererFlags = 0;
212 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
213 ASSERT_NE(nullptr, toneplayer);
214
215 bool ret = toneplayer->LoadTone(TONE_TYPE_DIAL_6);
216 EXPECT_EQ(true, ret);
217
218 bool startRet = toneplayer->StartTone();
219 EXPECT_EQ(true, startRet);
220
221 bool stopRet = toneplayer->StopTone();
222 EXPECT_EQ(true, stopRet);
223
224 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_STOPPED;
225 bool checkRet = toneplayer->CheckToneStopped();
226 EXPECT_EQ(true, checkRet);
227
228 bool releaseRet = toneplayer->Release();
229 EXPECT_EQ(true, releaseRet);
230 }
231
232 /**
233 * @tc.name : Test toneplayer loading API
234 * @tc.type : FUNC
235 * @tc.number: Toneplayer_006
236 * @tc.desc : Test create->StartTone->StopTone->LoadTone->LoadTone->Release interface.
237 */
238 HWTEST(AudioToneplayerUnitTest, Toneplayer_006, TestSize.Level1)
239 {
240 AudioRendererInfo rendererInfo = {};
241 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
242 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
243 rendererInfo.rendererFlags = 0;
244 std::shared_ptr<TonePlayer> toneplayer = TonePlayer::Create(rendererInfo);
245 ASSERT_NE(nullptr, toneplayer);
246
247 bool ret = toneplayer->StartTone();
248 EXPECT_EQ(false, ret);
249
250 ret = toneplayer->StopTone();
251 EXPECT_EQ(false, ret);
252
253 ret = toneplayer->LoadTone(NUM_TONES);
254 ret = toneplayer->LoadTone(NUM_TONES);
255 EXPECT_EQ(false, ret);
256
257 bool releaseRet = toneplayer->Release();
258 EXPECT_EQ(true, releaseRet);
259 }
260
261 /**
262 * @tc.name : Test toneplayer loading API
263 * @tc.type : FUNC
264 * @tc.number: Toneplayer_StartTone_001
265 * @tc.desc : Test StartTone interface.
266 */
267 HWTEST(AudioToneplayerUnitTest, Toneplayer_StartTone_001, TestSize.Level1)
268 {
269 AudioRendererInfo rendererInfo = {};
270 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
271 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
272 rendererInfo.rendererFlags = 0;
273 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
274 ASSERT_NE(nullptr, toneplayer);
275
276 toneplayer->isRendererInited_ = true;
277 bool ret = toneplayer->StartTone();
278 ret = toneplayer->StopTone();
279
280 bool releaseRet = toneplayer->Release();
281 EXPECT_EQ(true, releaseRet);
282 }
283
284 /**
285 * @tc.name : Test toneplayer loading API
286 * @tc.type : FUNC
287 * @tc.number: Toneplayer_StartTone_002
288 * @tc.desc : Test StartTone interface.
289 */
290 HWTEST(AudioToneplayerUnitTest, Toneplayer_StartTone_002, TestSize.Level1)
291 {
292 AudioRendererInfo rendererInfo = {};
293 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
294 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
295 rendererInfo.rendererFlags = 0;
296 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
297 ASSERT_NE(nullptr, toneplayer);
298
299 toneplayer->isRendererInited_ = true;
300 toneplayer->audioRenderer_ = nullptr;
301 toneplayer->StartTone();
302 toneplayer->StopTone();
303
304 bool releaseRet = toneplayer->Release();
305 EXPECT_EQ(true, releaseRet);
306 }
307
308 /**
309 * @tc.name : Test toneplayer loading API
310 * @tc.type : FUNC
311 * @tc.number: Toneplayer_StartTone_003
312 * @tc.desc : Test StartTone interface.
313 */
314 HWTEST(AudioToneplayerUnitTest, Toneplayer_StartTone_003, TestSize.Level1)
315 {
316 AudioRendererInfo rendererInfo = {};
317 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
318 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
319 rendererInfo.rendererFlags = 0;
320 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
321 ASSERT_NE(nullptr, toneplayer);
322
323 toneplayer->isRendererInited_ = false;
324 toneplayer->StartTone();
325 toneplayer->StopTone();
326
327 bool releaseRet = toneplayer->Release();
328 EXPECT_EQ(true, releaseRet);
329 }
330
331 /**
332 * @tc.name : Test toneplayer loading API
333 * @tc.type : FUNC
334 * @tc.number: Toneplayer_StartTone_004
335 * @tc.desc : Test StartTone interface.
336 */
337 HWTEST(AudioToneplayerUnitTest, Toneplayer_StartTone_004, TestSize.Level1)
338 {
339 AudioRendererInfo rendererInfo = {};
340 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
341 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
342 rendererInfo.rendererFlags = 0;
343 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
344 ASSERT_NE(nullptr, toneplayer);
345
346 toneplayer->isRendererInited_ = false;
347 toneplayer->audioRenderer_ = nullptr;
348 toneplayer->StartTone();
349 toneplayer->StopTone();
350
351 bool releaseRet = toneplayer->Release();
352 EXPECT_EQ(true, releaseRet);
353 }
354
355 /**
356 * @tc.name : Test Create API
357 * @tc.type : FUNC
358 * @tc.number: Create_002
359 * @tc.desc : Test Create interface.
360 */
361 HWTEST(AudioToneplayerUnitTest, Create_002, TestSize.Level1)
362 {
363 std::string cachePath = "/data/local/tmp";
364 std::shared_ptr<TonePlayer> toneplayer = nullptr;
365 AudioRendererInfo rendererInfo = {};
366 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
367 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_MEDIA;
368 rendererInfo.rendererFlags = 0;
369 toneplayer = TonePlayer::Create(cachePath, rendererInfo);
370 ASSERT_NE(nullptr, toneplayer);
371
372 toneplayer->Release();
373 }
374
375 #ifdef TEMP_DISABLE
376 /**
377 * @tc.name : Test GetCurrentSegmentUpdated API
378 * @tc.type : FUNC
379 * @tc.number: GetCurrentSegmentUpdated_001
380 * @tc.desc : Test GetCurrentSegmentUpdated interface.
381 */
382 HWTEST(AudioToneplayerUnitTest, GetCurrentSegmentUpdated_001, TestSize.Level1)
383 {
384 AudioRendererInfo rendererInfo = {};
385 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
386 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
387 rendererInfo.rendererFlags = 0;
388 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
389 ASSERT_NE(nullptr, toneplayer);
390
391 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
392 EXPECT_NE(nullptr, toneplayer->toneInfo_);
393
394 toneplayer->currSegment_ = 0;
395 toneplayer->toneInfo_->segments[0].loopCnt = 0;
396 toneplayer->GetCurrentSegmentUpdated();
397 EXPECT_EQ(1, toneplayer->currSegment_);
398
399 toneplayer->loopCounter_ = 0;
400 toneplayer->currSegment_ = 0;
401 toneplayer->toneInfo_->segments[0].loopCnt = 1;
402 toneplayer->GetCurrentSegmentUpdated();
403 EXPECT_EQ(1, toneplayer->loopCounter_);
404
405 toneplayer->loopCounter_ = 2;
406 toneplayer->currSegment_ = 0;
407 toneplayer->toneInfo_->segments[0].loopCnt = 1;
408 toneplayer->GetCurrentSegmentUpdated();
409 EXPECT_EQ(0, toneplayer->loopCounter_);
410 }
411
412 /**
413 * @tc.name : Test CheckToneContinuity API
414 * @tc.type : FUNC
415 * @tc.number: CheckToneContinuity_001
416 * @tc.desc : Test CheckToneContinuity interface.
417 */
418 HWTEST(AudioToneplayerUnitTest, CheckToneContinuity_001, TestSize.Level1)
419 {
420 bool ret = false;
421 AudioRendererInfo rendererInfo = {};
422 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
423 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
424 rendererInfo.rendererFlags = 0;
425 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
426 ASSERT_NE(nullptr, toneplayer);
427
428 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
429 EXPECT_NE(nullptr, toneplayer->toneInfo_);
430
431 toneplayer->currSegment_ = 0;
432 toneplayer->toneInfo_->segments[0].duration = 1;
433 ret = toneplayer->CheckToneContinuity();
434 EXPECT_EQ(true, ret);
435
436 toneplayer->currSegment_ = 0;
437 toneplayer->toneInfo_->segments[0].duration = 0;
438 toneplayer->currCount_ = 0;
439 toneplayer->toneInfo_->repeatCnt = 1;
440 ret = toneplayer->CheckToneContinuity();
441 EXPECT_EQ(true, ret);
442
443 toneplayer->currSegment_ = 0;
444 toneplayer->toneInfo_->segments[0].duration = 0;
445 toneplayer->currCount_ = 1;
446 toneplayer->toneInfo_->repeatCnt = 0;
447 ret = toneplayer->CheckToneContinuity();
448 EXPECT_EQ(false, ret);
449 }
450 #endif
451
452 /**
453 * @tc.name : Test OnInterrupt API
454 * @tc.type : FUNC
455 * @tc.number: OnInterrupt_001
456 * @tc.desc : Test OnInterrupt interface.
457 */
458 HWTEST(AudioToneplayerUnitTest, OnInterrupt_001, TestSize.Level1)
459 {
460 AudioRendererInfo rendererInfo = {};
461 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
462 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
463 rendererInfo.rendererFlags = 0;
464 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
465 ASSERT_NE(nullptr, toneplayer);
466
467 InterruptEvent interruptEvent;
468 interruptEvent.eventType = InterruptType::INTERRUPT_TYPE_END;
469 toneplayer->OnInterrupt(interruptEvent);
470 EXPECT_EQ(ToneType::NUM_TONES, toneplayer->toneType_);
471 }
472
473 #ifdef TEMP_DISABLE
474 /**
475 * @tc.name : Test ContinueToneplay API
476 * @tc.type : FUNC
477 * @tc.number: ContinueToneplay_001
478 * @tc.desc : Test ContinueToneplay interface.
479 */
480 HWTEST(AudioToneplayerUnitTest, ContinueToneplay_001, TestSize.Level1)
481 {
482 bool ret = false;
483 AudioRendererInfo rendererInfo = {};
484 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
485 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
486 rendererInfo.rendererFlags = 0;
487 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
488 ASSERT_NE(nullptr, toneplayer);
489 uint32_t reqSample = 4;
490 int8_t buff[8] = {0};
491 int8_t *audioBuffer = buff;
492
493 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_STOPPED;
494 ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
495 EXPECT_EQ(ret, false);
496
497 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
498 EXPECT_NE(nullptr, toneplayer->toneInfo_);
499 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
500 toneplayer->totalSample_ = 2;
501 toneplayer->nextSegSample_ = 1;
502 toneplayer->currSegment_ = 0;
503 toneplayer->toneInfo_->segments[0].duration = 1;
504 ret = toneplayer->CheckToneContinuity();
505 EXPECT_EQ(true, ret);
506 ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
507 EXPECT_EQ(ret, true);
508
509 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
510 toneplayer->currSegment_ = 0;
511 toneplayer->toneInfo_->segments[0].duration = 0;
512 ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
513 EXPECT_EQ(ret, true);
514 }
515
516 /**
517 * @tc.name : Test ContinueToneplay API
518 * @tc.type : FUNC
519 * @tc.number: ContinueToneplay_002
520 * @tc.desc : Test ContinueToneplay interface.
521 */
522 HWTEST(AudioToneplayerUnitTest, ContinueToneplay_002, TestSize.Level1)
523 {
524 bool ret = false;
525 AudioRendererInfo rendererInfo = {};
526 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
527 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
528 rendererInfo.rendererFlags = 0;
529 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
530 ASSERT_NE(nullptr, toneplayer);
531 uint32_t reqSample = 4;
532 int8_t buff[8] = {0};
533 int8_t *audioBuffer = buff;
534
535 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
536 EXPECT_NE(nullptr, toneplayer->toneInfo_);
537 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
538 toneplayer->totalSample_ = 0;
539 toneplayer->nextSegSample_ = 1;
540 toneplayer->currSegment_ = 0;
541 toneplayer->toneInfo_->segments[0].duration = 0;
542 ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
543 EXPECT_EQ(ret, true);
544 }
545
546 /**
547 * @tc.name : Test ContinueToneplay API
548 * @tc.type : FUNC
549 * @tc.number: ContinueToneplay_003
550 * @tc.desc : Test ContinueToneplay interface.
551 */
552 HWTEST(AudioToneplayerUnitTest, ContinueToneplay_003, TestSize.Level1)
553 {
554 bool ret = false;
555 AudioRendererInfo rendererInfo = {};
556 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
557 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
558 rendererInfo.rendererFlags = 0;
559 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
560 ASSERT_NE(nullptr, toneplayer);
561 uint32_t reqSample = 4;
562 int8_t buff[8] = {0};
563 int8_t *audioBuffer = buff;
564
565 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
566 EXPECT_NE(nullptr, toneplayer->toneInfo_);
567 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
568 toneplayer->totalSample_ = 0;
569 toneplayer->nextSegSample_ = 1;
570 toneplayer->currSegment_ = 0;
571 toneplayer->toneInfo_->segments[0].duration = 1;
572 ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
573 EXPECT_EQ(ret, true);
574 }
575
576 /**
577 * @tc.name : Test CheckToneStopped API
578 * @tc.type : FUNC
579 * @tc.number: CheckToneStopped_001
580 * @tc.desc : Test CheckToneStopped interface.
581 */
582 HWTEST(AudioToneplayerUnitTest, CheckToneStopped_001, TestSize.Level1)
583 {
584 AudioRendererInfo rendererInfo = {};
585 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
586 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
587 rendererInfo.rendererFlags = 0;
588 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
589 ASSERT_NE(nullptr, toneplayer);
590
591 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_STOPPED;
592 bool ret = toneplayer->CheckToneStopped();
593 EXPECT_EQ(true, ret);
594
595 toneplayer->LoadTone(TONE_TYPE_DIAL_6);
596 EXPECT_NE(nullptr, toneplayer->toneInfo_);
597 toneplayer->currSegment_ = 0;
598 toneplayer->toneInfo_->segments[0].duration = 0;
599 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
600 ret = toneplayer->CheckToneStopped();
601 EXPECT_EQ(true, ret);
602
603 toneplayer->currSegment_ = 0;
604 toneplayer->toneInfo_->segments[0].duration = 1;
605 toneplayer->totalSample_ = 3;
606 toneplayer->maxSample_ = 2;
607 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_RUNNING;
608 ret = toneplayer->CheckToneStopped();
609 EXPECT_EQ(true, ret);
610
611 toneplayer->currSegment_ = 0;
612 toneplayer->toneInfo_->segments[0].duration = 1;
613 toneplayer->totalSample_ = 1;
614 toneplayer->maxSample_ = 2;
615 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_STOPPING;
616 ret = toneplayer->CheckToneStopped();
617 EXPECT_EQ(true, ret);
618
619 toneplayer->currSegment_ = 0;
620 toneplayer->toneInfo_->segments[0].duration = 1;
621 toneplayer->totalSample_ = 1;
622 toneplayer->maxSample_ = 2;
623 toneplayer->toneState_ = TonePlayerImpl::ToneState::TONE_IDLE;
624 ret = toneplayer->CheckToneStopped();
625 EXPECT_EQ(false, ret);
626 }
627 #endif
628
629 /**
630 * @tc.name : Test TonePlayerImpl API
631 * @tc.type : FUNC
632 * @tc.number: TonePlayerImpl_001
633 * @tc.desc : Test TonePlayerImpl interface.
634 */
635 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_001, TestSize.Level1)
636 {
637 AudioRendererInfo rendererInfo = {};
638 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
639 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
640 rendererInfo.rendererFlags = 0;
641 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
642 EXPECT_NE(nullptr, toneplayer);
643
644 toneplayer->initialToneInfo_ = nullptr;
645 auto ret = toneplayer->InitToneWaveInfo();
646 EXPECT_EQ(ret, false);
647 }
648
649 /**
650 * @tc.name : Test TonePlayerImpl API
651 * @tc.type : FUNC
652 * @tc.number: TonePlayerImpl_002
653 * @tc.desc : Test TonePlayerImpl interface.
654 */
655 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_002, TestSize.Level1)
656 {
657 AudioRendererInfo rendererInfo = {};
658 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
659 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
660 rendererInfo.rendererFlags = 0;
661 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
662 EXPECT_NE(nullptr, toneplayer);
663
664 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
665 toneplayer->isRendererInited_ = false;
666 auto ret = toneplayer->StartTone();
667 EXPECT_EQ(ret, false);
668 }
669
670 /**
671 * @tc.name : Test TonePlayerImpl API
672 * @tc.type : FUNC
673 * @tc.number: TonePlayerImpl_003
674 * @tc.desc : Test TonePlayerImpl interface.
675 */
676 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_003, TestSize.Level1)
677 {
678 AudioRendererInfo rendererInfo = {};
679 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
680 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
681 rendererInfo.rendererFlags = 0;
682 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
683 EXPECT_NE(nullptr, toneplayer);
684
685 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
686 toneplayer->isRendererInited_ = true;
687 toneplayer->audioRenderer_ = nullptr;
688
689 auto ret = toneplayer->StartTone();
690 EXPECT_EQ(ret, false);
691 }
692
693 /**
694 * @tc.name : Test TonePlayerImpl API
695 * @tc.type : FUNC
696 * @tc.number: TonePlayerImpl_004
697 * @tc.desc : Test TonePlayerImpl interface.
698 */
699 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_004, TestSize.Level1)
700 {
701 AudioRendererInfo rendererInfo = {};
702 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
703 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
704 rendererInfo.rendererFlags = 0;
705 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
706 EXPECT_NE(toneplayer, nullptr);
707
708 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
709 toneplayer->isRendererInited_ = true;
710 toneplayer->currSegment_ = 0;
711
712 toneplayer->InitAudioRenderer();
713 EXPECT_NE(toneplayer->audioRenderer_, nullptr);
714
715 auto ret = toneplayer->StartTone();
716 EXPECT_EQ(ret, true);
717 }
718
719 /**
720 * @tc.name : Test TonePlayerImpl API
721 * @tc.type : FUNC
722 * @tc.number: TonePlayerImpl_005
723 * @tc.desc : Test TonePlayerImpl interface.
724 */
725 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_005, TestSize.Level1)
726 {
727 AudioRendererInfo rendererInfo = {};
728 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
729 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
730 rendererInfo.rendererFlags = 0;
731 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
732 EXPECT_NE(toneplayer, nullptr);
733
734 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
735 toneplayer->audioRenderer_ = nullptr;
736
737 size_t length = 0;
738
739 toneplayer->OnWriteData(length);
740 EXPECT_NE(toneplayer, nullptr);
741 }
742
743 /**
744 * @tc.name : Test TonePlayerImpl API
745 * @tc.type : FUNC
746 * @tc.number: TonePlayerImpl_006
747 * @tc.desc : Test TonePlayerImpl interface.
748 */
749 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_006, TestSize.Level1)
750 {
751 AudioRendererInfo rendererInfo = {};
752 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
753 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
754 rendererInfo.rendererFlags = 0;
755 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
756 EXPECT_NE(toneplayer, nullptr);
757 toneplayer->isRendererInited_ = true;
758 toneplayer->currSegment_ = 0;
759 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
760 EXPECT_NE(toneplayer->toneInfo_, nullptr);
761
762 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
763 toneplayer->InitAudioRenderer();
764 EXPECT_NE(toneplayer->audioRenderer_, nullptr);
765 size_t length = 0;
766
767 toneplayer->OnWriteData(length);
768 EXPECT_NE(toneplayer, nullptr);
769 }
770
771 /**
772 * @tc.name : Test TonePlayerImpl API
773 * @tc.type : FUNC
774 * @tc.number: TonePlayerImpl_007
775 * @tc.desc : Test ~TonePlayerImpl interface. audioRenderer_ != nullptr
776 */
777 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_007, TestSize.Level4)
778 {
779 AudioRendererInfo rendererInfo = {};
780 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
781 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
782 rendererInfo.rendererFlags = 0;
783
784 {
785 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
786 EXPECT_NE(toneplayer, nullptr);
787 toneplayer->isRendererInited_ = true;
788 toneplayer->currSegment_ = 0;
789
790 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
791 EXPECT_NE(toneplayer->toneInfo_, nullptr);
792
793 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
794 toneplayer->InitAudioRenderer();
795 EXPECT_NE(toneplayer->audioRenderer_, nullptr);
796 }
797 }
798
799 /**
800 * @tc.name : Test TonePlayerImpl API
801 * @tc.type : FUNC
802 * @tc.number: TonePlayerImpl_008
803 * @tc.desc : Test GetCurrentSegmentUpdated interface.
804 */
805 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_008, TestSize.Level4)
806 {
807 AudioRendererInfo rendererInfo = {};
808 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
809 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
810 rendererInfo.rendererFlags = 0;
811
812 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
813 EXPECT_NE(toneplayer, nullptr);
814
815 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
816 EXPECT_NE(toneplayer->toneInfo_, nullptr);
817
818 toneplayer->currSegment_ = 0;
819 toneplayer->loopCounter_ = 0;
820 toneplayer->toneInfo_->segments[0].loopCnt = 1;
821 toneplayer->toneInfo_->segments[0].loopIndx = 1;
822
823 toneplayer->GetCurrentSegmentUpdated();
824 EXPECT_EQ(toneplayer->currSegment_, 1);
825 EXPECT_EQ(toneplayer->loopCounter_, 1);
826 }
827
828 /**
829 * @tc.name : Test TonePlayerImpl API
830 * @tc.type : FUNC
831 * @tc.number: TonePlayerImpl_009
832 * @tc.desc : Test GetCurrentSegmentUpdated interface.
833 */
834 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_009, TestSize.Level4)
835 {
836 AudioRendererInfo rendererInfo = {};
837 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
838 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
839 rendererInfo.rendererFlags = 0;
840
841 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
842 EXPECT_NE(toneplayer, nullptr);
843
844 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
845 EXPECT_NE(toneplayer->toneInfo_, nullptr);
846
847 toneplayer->currSegment_ = 1;
848 toneplayer->loopCounter_ = 1;
849 toneplayer->toneInfo_->segments[1].loopCnt = 3;
850 toneplayer->toneInfo_->segments[1].loopIndx = 3;
851
852 toneplayer->GetCurrentSegmentUpdated();
853 EXPECT_EQ(toneplayer->currSegment_, 3);
854 EXPECT_EQ(toneplayer->loopCounter_, 2);
855 }
856
857 /**
858 * @tc.name : Test TonePlayerImpl API
859 * @tc.type : FUNC
860 * @tc.number: TonePlayerImpl_010
861 * @tc.desc : Test GetCurrentSegmentUpdated interface.
862 */
863 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_010, TestSize.Level4)
864 {
865 AudioRendererInfo rendererInfo = {};
866 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
867 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
868 rendererInfo.rendererFlags = 0;
869
870 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
871 EXPECT_NE(toneplayer, nullptr);
872
873 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
874 EXPECT_NE(toneplayer->toneInfo_, nullptr);
875
876 toneplayer->currSegment_ = 0;
877 toneplayer->loopCounter_ = 3;
878 toneplayer->toneInfo_->segments[0].loopCnt = 1;
879 toneplayer->toneInfo_->segments[0].loopIndx = 1;
880
881 toneplayer->GetCurrentSegmentUpdated();
882 EXPECT_EQ(toneplayer->currSegment_, 1);
883 EXPECT_EQ(toneplayer->loopCounter_, 0);
884 }
885
886 /**
887 * @tc.name : Test TonePlayerImpl API
888 * @tc.type : FUNC
889 * @tc.number: TonePlayerImpl_011
890 * @tc.desc : Test GetCurrentSegmentUpdated interface.
891 */
892 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_011, TestSize.Level4)
893 {
894 AudioRendererInfo rendererInfo = {};
895 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
896 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
897 rendererInfo.rendererFlags = 0;
898
899 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
900 EXPECT_NE(toneplayer, nullptr);
901
902 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
903 EXPECT_NE(toneplayer->toneInfo_, nullptr);
904
905 toneplayer->currSegment_ = 1;
906 toneplayer->loopCounter_ = 1;
907 toneplayer->toneInfo_->segments[1].loopCnt = 1;
908 toneplayer->toneInfo_->segments[1].loopIndx = 1;
909
910 toneplayer->GetCurrentSegmentUpdated();
911 EXPECT_EQ(toneplayer->currSegment_, 2);
912 EXPECT_EQ(toneplayer->loopCounter_, 0);
913 }
914
915 /**
916 * @tc.name : Test TonePlayerImpl API
917 * @tc.type : FUNC
918 * @tc.number: TonePlayerImpl_012
919 * @tc.desc : Test CheckToneContinuity interface.
920 */
921 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_012, TestSize.Level4)
922 {
923 AudioRendererInfo rendererInfo = {};
924 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
925 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
926 rendererInfo.rendererFlags = 0;
927
928 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
929 EXPECT_NE(toneplayer, nullptr);
930
931 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
932 EXPECT_NE(toneplayer->toneInfo_, nullptr);
933
934 toneplayer->currSegment_ = 1;
935 toneplayer->loopCounter_ = 1;
936 toneplayer->toneInfo_->segments[1].loopCnt = 1;
937 toneplayer->toneInfo_->segments[1].loopIndx = 1;
938 toneplayer->toneInfo_->segments[2].duration = 1;
939
940 bool ret = toneplayer->CheckToneContinuity();
941 EXPECT_EQ(ret, true);
942 EXPECT_EQ(toneplayer->currSegment_, 2);
943 EXPECT_EQ(toneplayer->loopCounter_, 0);
944 }
945
946 /**
947 * @tc.name : Test TonePlayerImpl API
948 * @tc.type : FUNC
949 * @tc.number: TonePlayerImpl_013
950 * @tc.desc : Test ContinueToneplay interface.
951 */
952 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_013, TestSize.Level4)
953 {
954 AudioRendererInfo rendererInfo = {};
955 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
956 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
957 rendererInfo.rendererFlags = 0;
958
959 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
960 EXPECT_NE(toneplayer, nullptr);
961
962 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
963 EXPECT_NE(toneplayer->toneInfo_, nullptr);
964
965 toneplayer->toneState_ = TonePlayerImpl::TONE_STOPPED;
966 uint32_t reqSample = 0;
967 const size_t bufferSize = 1024;
968 int8_t* audioBuffer = new int8_t[bufferSize];
969
970 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
971 EXPECT_EQ(ret, false);
972
973 delete[] audioBuffer;
974 }
975
976 /**
977 * @tc.name : Test TonePlayerImpl API
978 * @tc.type : FUNC
979 * @tc.number: TonePlayerImpl_014
980 * @tc.desc : Test ContinueToneplay interface.
981 */
982 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_014, TestSize.Level4)
983 {
984 AudioRendererInfo rendererInfo = {};
985 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
986 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
987 rendererInfo.rendererFlags = 0;
988
989 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
990 EXPECT_NE(toneplayer, nullptr);
991
992 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
993 EXPECT_NE(toneplayer->toneInfo_, nullptr);
994
995 toneplayer->toneState_ = TonePlayerImpl::TONE_RUNNING;
996 toneplayer->totalSample_ = 8000;
997 toneplayer->nextSegSample_ = 8000;
998 toneplayer->currSegment_ = 1;
999 toneplayer->sampleCount_ = 1;
1000 toneplayer->needFadeOut_ = false;
1001 toneplayer->toneInfo_->segments[1].duration = 1;
1002
1003 uint32_t reqSample = 0;
1004 const size_t bufferSize = 1024;
1005 int8_t* audioBuffer = new int8_t[bufferSize];
1006
1007 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
1008 EXPECT_EQ(ret, true);
1009 EXPECT_EQ(toneplayer->needFadeOut_, true);
1010
1011 delete[] audioBuffer;
1012 }
1013
1014 /**
1015 * @tc.name : Test TonePlayerImpl API
1016 * @tc.type : FUNC
1017 * @tc.number: TonePlayerImpl_015
1018 * @tc.desc : Test ContinueToneplay interface.
1019 */
1020 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_015, TestSize.Level4)
1021 {
1022 AudioRendererInfo rendererInfo = {};
1023 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1024 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1025 rendererInfo.rendererFlags = 0;
1026
1027 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1028 EXPECT_NE(toneplayer, nullptr);
1029
1030 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1031 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1032
1033 toneplayer->toneState_ = TonePlayerImpl::TONE_RUNNING;
1034 toneplayer->totalSample_ = 8000;
1035 toneplayer->nextSegSample_ = 8000;
1036 toneplayer->currSegment_ = 0;
1037 toneplayer->sampleCount_ = 1;
1038 toneplayer->needFadeOut_ = false;
1039 toneplayer->toneInfo_->segments[0].duration = 0;
1040
1041 uint32_t reqSample = 0;
1042 const size_t bufferSize = 1024;
1043 int8_t* audioBuffer = new int8_t[bufferSize];
1044
1045 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
1046 EXPECT_EQ(ret, true);
1047 EXPECT_EQ(toneplayer->needFadeOut_, true);
1048
1049 delete[] audioBuffer;
1050 }
1051
1052 /**
1053 * @tc.name : Test TonePlayerImpl API
1054 * @tc.type : FUNC
1055 * @tc.number: TonePlayerImpl_016
1056 * @tc.desc : Test ContinueToneplay interface.
1057 */
1058 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_016, TestSize.Level4)
1059 {
1060 AudioRendererInfo rendererInfo = {};
1061 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1062 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1063 rendererInfo.rendererFlags = 0;
1064
1065 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1066 EXPECT_NE(toneplayer, nullptr);
1067
1068 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1069 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1070
1071 toneplayer->toneState_ = TonePlayerImpl::TONE_RUNNING;
1072 toneplayer->totalSample_ = 8000;
1073 toneplayer->nextSegSample_ = 8000;
1074 toneplayer->currSegment_ = 1;
1075 toneplayer->sampleCount_ = 1;
1076 toneplayer->needFadeOut_ = false;
1077 toneplayer->toneInfo_->segments[1].duration = 0;
1078
1079 uint32_t reqSample = 0;
1080 const size_t bufferSize = 1024;
1081 int8_t* audioBuffer = new int8_t[bufferSize];
1082
1083 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
1084 EXPECT_EQ(ret, true);
1085 EXPECT_EQ(toneplayer->needFadeOut_, true);
1086
1087 delete[] audioBuffer;
1088 }
1089
1090 /**
1091 * @tc.name : Test TonePlayerImpl API
1092 * @tc.type : FUNC
1093 * @tc.number: TonePlayerImpl_017
1094 * @tc.desc : Test ContinueToneplay interface.
1095 */
1096 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_017, TestSize.Level4)
1097 {
1098 AudioRendererInfo rendererInfo = {};
1099 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1100 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1101 rendererInfo.rendererFlags = 0;
1102
1103 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1104 EXPECT_NE(toneplayer, nullptr);
1105
1106 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1107 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1108
1109 toneplayer->toneState_ = TonePlayerImpl::TONE_RUNNING;
1110 toneplayer->totalSample_ = 16000;
1111 toneplayer->nextSegSample_ = 8000;
1112 toneplayer->currSegment_ = 0;
1113 toneplayer->currCount_ = 1;
1114 toneplayer->sampleCount_ = 1;
1115 toneplayer->toneInfo_->repeatCnt = 2;
1116 toneplayer->toneInfo_->repeatSegment = 0;
1117 toneplayer->toneInfo_->segments[1].duration = 0;
1118 toneplayer->toneInfo_->segments[0].duration = 1;
1119
1120 uint32_t reqSample = 0;
1121 const size_t bufferSize = 1024;
1122 int8_t* audioBuffer = new int8_t[bufferSize];
1123
1124 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
1125 EXPECT_EQ(ret, true);
1126 EXPECT_EQ(toneplayer->sampleCount_, 0);
1127
1128 delete[] audioBuffer;
1129 }
1130
1131 /**
1132 * @tc.name : Test TonePlayerImpl API
1133 * @tc.type : FUNC
1134 * @tc.number: TonePlayerImpl_018
1135 * @tc.desc : Test ContinueToneplay interface.
1136 */
1137 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_018, TestSize.Level4)
1138 {
1139 AudioRendererInfo rendererInfo = {};
1140 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1141 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1142 rendererInfo.rendererFlags = 0;
1143
1144 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1145 EXPECT_NE(toneplayer, nullptr);
1146
1147 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1148 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1149
1150 toneplayer->toneState_ = TonePlayerImpl::TONE_RUNNING;
1151 toneplayer->totalSample_ = 16000;
1152 toneplayer->nextSegSample_ = 8000;
1153 toneplayer->currSegment_ = 0;
1154 toneplayer->currCount_ = 1;
1155 toneplayer->sampleCount_ = 1;
1156 toneplayer->toneInfo_->repeatCnt = 2;
1157 toneplayer->toneInfo_->repeatSegment = 2;
1158 toneplayer->toneInfo_->segments[1].duration = 0;
1159 toneplayer->toneInfo_->segments[2].duration = 1;
1160
1161 uint32_t reqSample = 0;
1162 const size_t bufferSize = 1024;
1163 int8_t* audioBuffer = new int8_t[bufferSize];
1164
1165 bool ret = toneplayer->ContinueToneplay(reqSample, audioBuffer);
1166 EXPECT_EQ(ret, true);
1167 EXPECT_EQ(toneplayer->sampleCount_, 0);
1168
1169 delete[] audioBuffer;
1170 }
1171
1172 /**
1173 * @tc.name : Test TonePlayerImpl API
1174 * @tc.type : FUNC
1175 * @tc.number: TonePlayerImpl_019
1176 * @tc.desc : Test GetCountryCode interface.
1177 */
1178 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_019, TestSize.Level4)
1179 {
1180 AudioRendererInfo rendererInfo = {};
1181 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1182 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1183 rendererInfo.rendererFlags = 0;
1184
1185 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1186 EXPECT_NE(toneplayer, nullptr);
1187
1188 SetParameter("debug.toneplayer.country", "TEST");
1189
1190
1191 std::string ret = toneplayer->GetCountryCode();
1192 EXPECT_EQ(ret, "test");
1193 }
1194
1195 /**
1196 * @tc.name : Test TonePlayerImpl API
1197 * @tc.type : FUNC
1198 * @tc.number: TonePlayerImpl_020
1199 * @tc.desc : Test CheckToneStarted interface.
1200 */
1201 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_020, TestSize.Level4)
1202 {
1203 AudioRendererInfo rendererInfo = {};
1204 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1205 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1206 rendererInfo.rendererFlags = 0;
1207
1208 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1209 EXPECT_NE(toneplayer, nullptr);
1210
1211 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1212 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1213
1214 toneplayer->toneState_ = TonePlayerImpl::TONE_STARTING;
1215 toneplayer->currSegment_ = 0;
1216 toneplayer->sampleCount_ = 1;
1217 toneplayer->toneInfo_->segments[0].duration = 1;
1218
1219 uint32_t reqSample = 0;
1220 const size_t bufferSize = 1024;
1221 int8_t* audioBuffer = new int8_t[bufferSize];
1222
1223 bool ret = toneplayer->CheckToneStarted(reqSample, audioBuffer);
1224 EXPECT_EQ(ret, true);
1225 EXPECT_EQ(toneplayer->toneState_, TonePlayerImpl::TONE_RUNNING);
1226 EXPECT_EQ(toneplayer->sampleCount_, 0);
1227
1228 delete[] audioBuffer;
1229 }
1230
1231 /**
1232 * @tc.name : Test TonePlayerImpl API
1233 * @tc.type : FUNC
1234 * @tc.number: TonePlayerImpl_021
1235 * @tc.desc : Test CheckToneStarted interface.
1236 */
1237 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_021, TestSize.Level4)
1238 {
1239 AudioRendererInfo rendererInfo = {};
1240 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1241 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1242 rendererInfo.rendererFlags = 0;
1243
1244 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1245 EXPECT_NE(toneplayer, nullptr);
1246
1247 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1248 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1249
1250 toneplayer->toneState_ = TonePlayerImpl::TONE_STARTING;
1251 toneplayer->currSegment_ = 1;
1252 toneplayer->sampleCount_ = 1;
1253 toneplayer->toneInfo_->segments[0].duration = 0;
1254
1255 uint32_t reqSample = 0;
1256 const size_t bufferSize = 1024;
1257 int8_t* audioBuffer = new int8_t[bufferSize];
1258
1259 bool ret = toneplayer->CheckToneStarted(reqSample, audioBuffer);
1260 EXPECT_EQ(ret, true);
1261 EXPECT_EQ(toneplayer->toneState_, TonePlayerImpl::TONE_RUNNING);
1262 EXPECT_EQ(toneplayer->sampleCount_, 1);
1263
1264 delete[] audioBuffer;
1265 }
1266
1267 /**
1268 * @tc.name : Test TonePlayerImpl API
1269 * @tc.type : FUNC
1270 * @tc.number: TonePlayerImpl_022
1271 * @tc.desc : Test CheckToneStopped interface.
1272 */
1273 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_022, TestSize.Level4)
1274 {
1275 AudioRendererInfo rendererInfo = {};
1276 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1277 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1278 rendererInfo.rendererFlags = 0;
1279
1280 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1281 EXPECT_NE(toneplayer, nullptr);
1282
1283 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1284 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1285
1286 toneplayer->toneState_ = TonePlayerImpl::TONE_STARTING;
1287 toneplayer->currSegment_ = 0;
1288 toneplayer->totalSample_ = 8000;
1289 toneplayer->maxSample_ = 8000;
1290 toneplayer->toneInfo_->segments[0].duration = 1;
1291
1292 bool ret = toneplayer->CheckToneStopped();
1293 EXPECT_EQ(ret, false);
1294 }
1295
1296 /**
1297 * @tc.name : Test TonePlayerImpl API
1298 * @tc.type : FUNC
1299 * @tc.number: TonePlayerImpl_023
1300 * @tc.desc : Test CheckToneStopped interface.
1301 */
1302 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_023, TestSize.Level4)
1303 {
1304 AudioRendererInfo rendererInfo = {};
1305 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1306 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1307 rendererInfo.rendererFlags = 0;
1308
1309 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1310 EXPECT_NE(toneplayer, nullptr);
1311
1312 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1313 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1314
1315 toneplayer->toneState_ = TonePlayerImpl::TONE_STOPPING;
1316 toneplayer->currSegment_ = 0;
1317 toneplayer->totalSample_ = 8000;
1318 toneplayer->maxSample_ = 8000;
1319 toneplayer->toneInfo_->segments[1].duration = 1;
1320
1321 bool ret = toneplayer->CheckToneStopped();
1322 EXPECT_EQ(ret, true);
1323 }
1324
1325 /**
1326 * @tc.name : Test TonePlayerImpl API
1327 * @tc.type : FUNC
1328 * @tc.number: TonePlayerImpl_024
1329 * @tc.desc : Test AudioToneSequenceGen interface.
1330 */
1331 HWTEST(AudioToneplayerUnitTest, TonePlayerImpl_024, TestSize.Level4)
1332 {
1333 AudioRendererInfo rendererInfo = {};
1334 rendererInfo.contentType = ContentType::CONTENT_TYPE_MUSIC;
1335 rendererInfo.streamUsage = StreamUsage::STREAM_USAGE_DTMF;
1336 rendererInfo.rendererFlags = 0;
1337
1338 std::shared_ptr<TonePlayerImpl> toneplayer = std::make_shared<TonePlayerImpl>("", rendererInfo);
1339 EXPECT_NE(toneplayer, nullptr);
1340
1341 toneplayer->toneState_ = TonePlayerImpl::TONE_INIT;
1342
1343 toneplayer->toneInfo_ = std::make_shared<ToneInfo>();
1344 EXPECT_NE(toneplayer->toneInfo_, nullptr);
1345 toneplayer->currSegment_ = 1;
1346 toneplayer->totalSample_ = 8000;
1347 toneplayer->maxSample_ = 8000;
1348 toneplayer->toneInfo_->segments[1].duration = 1;
1349 toneplayer->processSize_ = 100;
1350
1351 BufferDesc bufDesc;
1352 const size_t bufferSize = sizeof(int16_t);
1353 bufDesc.buffer = new uint8_t[bufferSize];
1354
1355 bool ret = toneplayer->AudioToneSequenceGen(bufDesc);
1356 EXPECT_EQ(ret, true);
1357 }
1358
1359 } // namespace AudioStandard
1360 } // namespace OHOS
1361