1 /*
2 * Copyright (c) 2022-2022 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 #include <chrono>
16 #include <math.h>
17 #include <thread>
18 #include "helper/test_player.hpp"
19 #include "testngpp/testngpp.hpp"
20 #include "foundation/log.h"
21
22 using namespace OHOS::Media::Test;
23
24 // @fixture(tags=3daAudio_player_fast)
FIXTURE(DataDriven3DaSinglePlayerTestFast)25 FIXTURE(DataDriven3DaSinglePlayerTestFast)
26 {
27 bool CheckTimeEquality(int32_t expectValue, int32_t currentValue)
28 {
29 MEDIA_LOG_I("expectValue : %d, currentValue : %d", expectValue, currentValue);
30 return fabs(expectValue - currentValue) < 1000; // if open debug log, should use value >= 1000
31 }
32 DATA_PROVIDER(myTsUrls, 1,
33 DATA_GROUP(std::string(RESOURCE_DIR "/TS/h264_aac_270p_10r_voiced.ts")));
34
35 // @test(data="myTsUrls", tags=3da_audio_play_fast)
36 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_SRC_API_0200)
37 {
38 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
39 ASSERT_EQ(0, player->SetSource(TestSource(url)));
40 ASSERT_EQ(0, player->Prepare());
41 ASSERT_EQ(0, player->Play());
42 ASSERT_EQ(0, player->Pause());
43 ASSERT_EQ(0, player->Play());
44 ASSERT_EQ(0, player->Release());
45 }
46
47 // @test(data="myTsUrls", tags=3da_audio_play_fast)
48 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200)
49 {
50 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
51 ASSERT_EQ(0, player->SetSource(TestSource(url)));
52 ASSERT_EQ(0, player->Prepare());
53 ASSERT_EQ(0, player->Play());
54 ASSERT_EQ(0, player->Stop());
55 ASSERT_EQ(0, player->Release());
56 }
57
58 // @test(data="myTsUrls", tags=3da_audio_play_fast)
59 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300)
60 {
61 int64_t timeMs = 5000;
62 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
63 ASSERT_EQ(0, player->SetSource(TestSource(url)));
64 ASSERT_EQ(0, player->Prepare());
65 ASSERT_EQ(0, player->Play());
66 ASSERT_EQ(0, player->Pause());
67 ASSERT_EQ(0, player->Seek(timeMs));
68 ASSERT_EQ(0, player->Release());
69 }
70
71 // @test(data="myTsUrls", tags=3da_audio_play_fast)
72 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100)
73 {
74 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
75 ASSERT_NE(0, player->Pause());
76 ASSERT_EQ(0, player->Release());
77 }
78 // @test(data="myTsUrls", tags=3da_audio_play_fast)
79 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0200)
80 {
81 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
82 ASSERT_EQ(0, player->SetSource(TestSource(url)));
83 ASSERT_EQ(0, player->Prepare());
84 ASSERT_EQ(0, player->Play());
85 ASSERT_EQ(0, player->Pause());
86 ASSERT_EQ(0, player->Release());
87 }
88 // @test(data="myTsUrls", tags=3da_audio_play_fast)
89 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300)
90 {
91 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
92 ASSERT_EQ(0, player->SetSource(TestSource(url)));
93 ASSERT_EQ(0, player->Prepare());
94 ASSERT_EQ(0, player->Play());
95 ASSERT_EQ(0, player->Stop());
96 ASSERT_NE(0, player->Pause());
97 ASSERT_EQ(0, player->Release());
98 }
99 // @test(data="myTsUrls", tags=3da_audio_play_fast)
100 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0400)
101 {
102 int64_t timeMs = 5000;
103 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
104 ASSERT_EQ(0, player->SetSource(TestSource(url)));
105 ASSERT_EQ(0, player->Prepare());
106 ASSERT_EQ(0, player->Play());
107 ASSERT_EQ(0, player->Stop());
108 ASSERT_NE(0, player->Seek(timeMs));
109 ASSERT_NE(0, player->Pause());
110 ASSERT_EQ(0, player->Release());
111 }
112 // @test(data="myTsUrls", tags=3da_audio_play_fast)
113 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0100)
114 {
115 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
116 ASSERT_EQ(0, player->SetSource(TestSource(url)));
117 ASSERT_EQ(0, player->Prepare());
118 ASSERT_EQ(0, player->Play());
119 ASSERT_EQ(0, player->Stop());
120 ASSERT_EQ(0, player->Release());
121 }
122 // @test(data="myTsUrls", tags=3da_audio_play_fast)
123 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200)
124 {
125 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
126 ASSERT_EQ(0, player->SetSource(TestSource(url)));
127 ASSERT_EQ(0, player->Prepare());
128 ASSERT_EQ(0, player->Play());
129 ASSERT_EQ(0, player->Pause());
130 ASSERT_EQ(0, player->Stop());
131 ASSERT_EQ(0, player->Release());
132 }
133 // @test(data="myTsUrls", tags=3da_audio_play_fast)
134 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0300)
135 {
136 int64_t timeMs = 5000;
137 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
138 ASSERT_EQ(0, player->SetSource(TestSource(url)));
139 ASSERT_EQ(0, player->Prepare());
140 ASSERT_EQ(0, player->Play());
141 ASSERT_EQ(0, player->Seek(timeMs));
142 ASSERT_EQ(0, player->Stop());
143 ASSERT_EQ(0, player->Release());
144 }
145 // @test(data="myTsUrls", tags=3da_audio_play_fast)
146 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0100)
147 {
148 int64_t timeMs = 5000;
149 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
150 ASSERT_EQ(0, player->SetSource(TestSource(url)));
151 ASSERT_EQ(0, player->Prepare());
152 ASSERT_EQ(0, player->Play());
153 ASSERT_EQ(0, player->Seek(timeMs));
154 ASSERT_EQ(0, player->Release());
155 }
156 // @test(data="myTsUrls", tags=3da_audio_play_fast)
157 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200)
158 {
159 int64_t timeMs = 5000;
160 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
161 ASSERT_EQ(0, player->SetSource(TestSource(url)));
162 ASSERT_EQ(0, player->Prepare());
163 ASSERT_EQ(0, player->Play());
164 ASSERT_EQ(0, player->Pause());
165 ASSERT_EQ(0, player->Seek(timeMs));
166 ASSERT_EQ(0, player->Release());
167 }
168 // @test(data="myTsUrls", tags=3da_audio_play_fast)
169 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0300)
170 {
171 int64_t timeMs = 0;
172 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
173 ASSERT_EQ(0, player->SetSource(TestSource(url)));
174 ASSERT_EQ(0, player->Prepare());
175 ASSERT_EQ(0, player->Play());
176 ASSERT_EQ(0, player->Seek(timeMs));
177 ASSERT_EQ(0, player->Release());
178 }
179 // @test(data="myTsUrls", tags=3da_audio_play_fast)
180 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0100)
181 {
182 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
183 ASSERT_EQ(0, player->SetSource(TestSource(url)));
184 ASSERT_EQ(0, player->Prepare());
185 ASSERT_EQ(0, player->Play());
186 ASSERT_EQ(0, player->Reset());
187 ASSERT_EQ(0, player->Release());
188 }
189 // @test(data="myTsUrls", tags=3da_audio_play_fast)
190 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200)
191 {
192 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
193 ASSERT_EQ(0, player->SetSource(TestSource(url)));
194 ASSERT_EQ(0, player->Prepare());
195 ASSERT_EQ(0, player->Play());
196 ASSERT_EQ(0, player->Pause());
197 ASSERT_EQ(0, player->Reset());
198 ASSERT_EQ(0, player->Release());
199 }
200 // @test(data="myTsUrls", tags=3da_audio_play_fast)
201 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_SetVolume_API_0100/0200)
202 {
203 float lv = 0.5;
204 float rv = 0.5;
205 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
206 ASSERT_EQ(0, player->SetSource(TestSource(url)));
207 ASSERT_EQ(0, player->Prepare());
208 ASSERT_EQ(0, player->Play());
209 ASSERT_EQ(0, player->SetVolume(lv, rv));
210 ASSERT_EQ(0, player->Release());
211 }
212 // @test(data="myTsUrls", tags=3da_audio_play_fast)
213 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_SetVolume_API_0300)
214 {
215 float lv = 0.5;
216 float rv = 0.5;
217 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
218 ASSERT_EQ(0, player->SetSource(TestSource(url)));
219 ASSERT_EQ(0, player->Prepare());
220 ASSERT_EQ(0, player->Play());
221 ASSERT_EQ(0, player->Pause());
222 ASSERT_EQ(0, player->SetVolume(lv, rv));
223 ASSERT_EQ(0, player->Release());
224 }
225
226 // @test(data="myTsUrls", tags=3da_audio_play_fast)
227 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0100/0200)
228 {
229 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
230 ASSERT_EQ(0, player->SetSource(TestSource(url)));
231 ASSERT_EQ(0, player->Prepare());
232 ASSERT_EQ(0, player->Play());
233 ASSERT_EQ(0, player->Pause());
234 ASSERT_EQ(0, player->Release());
235 }
236 // @test(data="myTsUrls", tags=3da_audio_play_fast)
237 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0300)
238 {
239 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
240 ASSERT_EQ(0, player->SetSource(TestSource(url)));
241 ASSERT_EQ(0, player->Prepare());
242 ASSERT_EQ(0, player->Play());
243 ASSERT_EQ(0, player->Stop());
244 ASSERT_EQ(0, player->Release());
245 }
246 // @test(data="myTsUrls", tags=3da_audio_play_fast)
247 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0400)
248 {
249 int64_t timeMs = 5000;
250 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
251 ASSERT_EQ(0, player->SetSource(TestSource(url)));
252 ASSERT_EQ(0, player->Prepare());
253 ASSERT_EQ(0, player->Play());
254 ASSERT_EQ(0, player->Seek(timeMs));
255 ASSERT_EQ(0, player->Release());
256 }
257 // @test(data="myTsUrls", tags=3da_audio_play_fast)
258 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0500)
259 {
260 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
261 ASSERT_EQ(0, player->SetSource(TestSource(url)));
262 ASSERT_EQ(0, player->Prepare());
263 ASSERT_EQ(0, player->Play());
264 ASSERT_EQ(0, player->Reset());
265 ASSERT_EQ(0, player->Release());
266 }
267 // @test(data="myTsUrls", tags=3da_audio_play_fast)
268 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100)
269 {
270 int64_t durationMs;
271 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
272 ASSERT_EQ(0, player->SetSource(TestSource(url)));
273 ASSERT_EQ(0, player->Prepare());
274 ASSERT_EQ(0, player->Play());
275 std::this_thread::sleep_for(std::chrono::milliseconds(1000));
276 ASSERT_EQ(0, player->GetDuration(durationMs));
277 ASSERT_TRUE(CheckTimeEquality(3010, durationMs)); // 3010---duration of audio
278 ASSERT_EQ(0, player->Release());
279 }
280 // @test(data="myTsUrls", tags=3da_audio_play_fast)
281 PTEST((std::string url), SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0400)
282 {
283 std::unique_ptr<TestPlayer> player = TestPlayer::Create();
284 ASSERT_EQ(0, player->SetSource(TestSource(url)));
285 ASSERT_EQ(0, player->Prepare());
286 ASSERT_EQ(0, player->Reset());
287 ASSERT_NE(0, player->Play());
288 ASSERT_EQ(0, player->Release());
289 }
290 };
291
292