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 "dash_period_manager_unit_test.h"
17
18 namespace OHOS {
19 namespace Media {
20 namespace Plugins {
21 namespace HttpPlugin {
22
23 using namespace testing::ext;
24 using namespace OHOS::Media::Plugins::HttpPlugin;
25
SetUpTestCase(void)26 void DashPeriodManagerUnitTest::SetUpTestCase(void) {}
27
TearDownTestCase(void)28 void DashPeriodManagerUnitTest::TearDownTestCase(void) {}
29
SetUp(void)30 void DashPeriodManagerUnitTest::SetUp(void)
31 {
32 dashPeriodManager_ = std::make_shared<DashPeriodManager>();
33 ASSERT_TRUE(dashPeriodManager_ != nullptr);
34 }
35
TearDown(void)36 void DashPeriodManagerUnitTest::TearDown(void)
37 {
38 dashPeriodManager_ = nullptr;
39 }
40
41 /**
42 * @tc.name : Test Reset
43 * @tc.number: Reset_001
44 * @tc.desc : Test Reset return
45 */
46 HWTEST_F(DashPeriodManagerUnitTest, Reset_001, TestSize.Level1)
47 {
48 dashPeriodManager_->Reset();
49 EXPECT_EQ(dashPeriodManager_->GetPeriod(), nullptr);
50 EXPECT_EQ(dashPeriodManager_->GetPreviousPeriod(), nullptr);
51 }
52
53 /**
54 * @tc.name : Test Init
55 * @tc.number: Init_001
56 * @tc.desc : Test this->periodInfo_ == nullptr
57 */
58 HWTEST_F(DashPeriodManagerUnitTest, Init_001, TestSize.Level1)
59 {
60 dashPeriodManager_->periodInfo_ = nullptr;
61 dashPeriodManager_->Init();
62 EXPECT_EQ(dashPeriodManager_->Empty(), true);
63 }
64
65 /**
66 * @tc.name : Test ParseAdptSetList
67 * @tc.number: ParseAdptSetList_001
68 * @tc.desc : Test mimeType/contentType is empty and contentCompList is empty
69 */
70 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetList_001, TestSize.Level1)
71 {
72 DashAdptSetInfo dashAdptSetInfoTest;
73 dashAdptSetInfoTest.commonAttrsAndElements_.mimeType_ = "";
74 dashAdptSetInfoTest.contentType_ = "";
75
76 DashList<DashAdptSetInfo *> adptSetListTest;
77 adptSetListTest.push_back(&dashAdptSetInfoTest);
78
79 dashPeriodManager_->videoAdptSetsVector_.clear();
80
81 dashPeriodManager_->ParseAdptSetList(adptSetListTest);
82 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), false);
83 }
84
85 /**
86 * @tc.name : Test ParseAdptSetTypeByMime
87 * @tc.number: ParseAdptSetTypeByMime_001
88 * @tc.desc : Test mimeType.find(SUBTITLE_MIME_APPLICATION) != std::string::npos
89 */
90 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByMime_001, TestSize.Level1)
91 {
92 dashPeriodManager_->subtitleAdptSetsVector_.clear();
93
94 DashAdptSetInfo dashAdptSetInfoTest;
95 dashAdptSetInfoTest.mimeType_ = "";
96 std::string mimeTypeTest = "http://application:appTest";
97 dashPeriodManager_->subtitleMimeType_ = "";
98 dashPeriodManager_->ParseAdptSetTypeByMime(mimeTypeTest, &dashAdptSetInfoTest);
99 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
100 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_, DashPeriodManager::SUBTITLE_MIME_APPLICATION);
101 }
102
103 /**
104 * @tc.name : Test ParseAdptSetTypeByMime
105 * @tc.number: ParseAdptSetTypeByMime_002
106 * @tc.desc : Test mimeType.find(SUBTITLE_MIME_TEXT) != std::string::npos
107 */
108 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByMime_002, TestSize.Level1)
109 {
110 dashPeriodManager_->subtitleAdptSetsVector_.clear();
111
112 DashAdptSetInfo dashAdptSetInfoTest;
113 dashAdptSetInfoTest.mimeType_ = "";
114 std::string mimeTypeTest = "http://text:appTest";
115 dashPeriodManager_->subtitleMimeType_ = "";
116 dashPeriodManager_->ParseAdptSetTypeByMime(mimeTypeTest, &dashAdptSetInfoTest);
117 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
118 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_, DashPeriodManager::SUBTITLE_MIME_TEXT);
119 }
120
121 /**
122 * @tc.name : Test ParseAdptSetTypeByMime
123 * @tc.number: ParseAdptSetTypeByMime_003
124 * @tc.desc : Test mimeType.find(subtitleMimeType_) == std::string::npos
125 */
126 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByMime_003, TestSize.Level1)
127 {
128 dashPeriodManager_->subtitleAdptSetsVector_.clear();
129
130 DashAdptSetInfo dashAdptSetInfoTest;
131 dashAdptSetInfoTest.mimeType_ = "";
132 std::string mimeTypeTest = "http://text:appTest";
133 dashPeriodManager_->subtitleMimeType_ = "video";
134 dashPeriodManager_->ParseAdptSetTypeByMime(mimeTypeTest, &dashAdptSetInfoTest);
135 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
136 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_.empty(), false);
137 }
138
139 /**
140 * @tc.name : Test ParseAdptSetTypeByMime
141 * @tc.number: ParseAdptSetTypeByMime_004
142 * @tc.desc : Test mimeType is SUBTITLE_MIME_APPLICATION and subtitleMimeType_ is other
143 */
144 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByMime_004, TestSize.Level1)
145 {
146 dashPeriodManager_->subtitleAdptSetsVector_.clear();
147 dashPeriodManager_->videoAdptSetsVector_.clear();
148
149 DashAdptSetInfo dashAdptSetInfoTest;
150 dashAdptSetInfoTest.mimeType_ = "";
151 std::string mimeTypeTest = "http://appTest";
152 dashPeriodManager_->subtitleMimeType_ = "app";
153 dashPeriodManager_->ParseAdptSetTypeByMime(mimeTypeTest, &dashAdptSetInfoTest);
154 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
155 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), false);
156 }
157
158 /**
159 * @tc.name : Test ParseAdptSetTypeByMime
160 * @tc.number: ParseAdptSetTypeByMime_005
161 * @tc.desc : Test mimeType is other
162 */
163 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByMime_005, TestSize.Level1)
164 {
165 dashPeriodManager_->subtitleAdptSetsVector_.clear();
166 dashPeriodManager_->videoAdptSetsVector_.clear();
167
168 DashAdptSetInfo dashAdptSetInfoTest;
169 dashAdptSetInfoTest.mimeType_ = "";
170 std::string mimeTypeTest = "http://appTest";
171 dashPeriodManager_->subtitleMimeType_ = "app";
172 dashPeriodManager_->ParseAdptSetTypeByMime(mimeTypeTest, &dashAdptSetInfoTest);
173 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
174 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), false);
175 }
176
177 /**
178 * @tc.name : Test ParseAdptSetTypeByComp
179 * @tc.number: ParseAdptSetTypeByComp_001
180 * @tc.desc : Test ContainType(contentCompList, AUDIO_MIME_TYPE)
181 */
182 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_001, TestSize.Level1)
183 {
184 dashPeriodManager_->subtitleAdptSetsVector_.clear();
185 dashPeriodManager_->videoAdptSetsVector_.clear();
186 dashPeriodManager_->audioAdptSetsVector_.clear();
187
188 DashContentCompInfo dashContentCompInfoTest;
189 dashContentCompInfoTest.contentType_ = AUDIO_MIME_TYPE;
190
191 DashList<DashContentCompInfo *> contentCompListTest;
192 contentCompListTest.push_back(&dashContentCompInfoTest);
193
194 DashAdptSetInfo adptSetInfoTest;
195 adptSetInfoTest.mimeType_ = "";
196
197 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
198 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
199 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
200 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), false);
201 }
202
203 /**
204 * @tc.name : Test ParseAdptSetTypeByComp
205 * @tc.number: ParseAdptSetTypeByComp_002
206 * @tc.desc : Test ContainType(contentCompList, SUBTITLE_MIME_APPLICATION)
207 */
208 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_002, TestSize.Level1)
209 {
210 dashPeriodManager_->subtitleAdptSetsVector_.clear();
211 dashPeriodManager_->videoAdptSetsVector_.clear();
212 dashPeriodManager_->audioAdptSetsVector_.clear();
213
214 DashContentCompInfo dashContentCompInfoTest;
215 dashContentCompInfoTest.contentType_ = DashPeriodManager::SUBTITLE_MIME_APPLICATION;
216
217 DashList<DashContentCompInfo *> contentCompListTest;
218 contentCompListTest.push_back(&dashContentCompInfoTest);
219
220 DashAdptSetInfo adptSetInfoTest;
221 adptSetInfoTest.mimeType_ = "http://application:appTest";
222 dashPeriodManager_->subtitleMimeType_ = "";
223
224 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
225 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
226 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
227 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
228 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_, DashPeriodManager::SUBTITLE_MIME_APPLICATION);
229 }
230
231 /**
232 * @tc.name : Test ParseAdptSetTypeByComp
233 * @tc.number: ParseAdptSetTypeByComp_003
234 * @tc.desc : Test ContainType(contentCompList, SUBTITLE_MIME_TEXT)
235 */
236 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_003, TestSize.Level1)
237 {
238 dashPeriodManager_->subtitleAdptSetsVector_.clear();
239 dashPeriodManager_->videoAdptSetsVector_.clear();
240 dashPeriodManager_->audioAdptSetsVector_.clear();
241
242 DashContentCompInfo dashContentCompInfoTest;
243 dashContentCompInfoTest.contentType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
244
245 DashList<DashContentCompInfo *> contentCompListTest;
246 contentCompListTest.push_back(&dashContentCompInfoTest);
247
248 DashAdptSetInfo adptSetInfoTest;
249 adptSetInfoTest.mimeType_ = "http:://text:appTest";
250 dashPeriodManager_->subtitleMimeType_ = "";
251
252 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
253 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
254 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
255 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
256 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_, DashPeriodManager::SUBTITLE_MIME_TEXT);
257 }
258
259 /**
260 * @tc.name : Test ParseAdptSetTypeByComp
261 * @tc.number: ParseAdptSetTypeByComp_004
262 * @tc.desc : Test subtitleMimeType_.empty()
263 */
264 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_004, TestSize.Level1)
265 {
266 dashPeriodManager_->subtitleAdptSetsVector_.clear();
267 dashPeriodManager_->videoAdptSetsVector_.clear();
268 dashPeriodManager_->audioAdptSetsVector_.clear();
269
270 DashContentCompInfo dashContentCompInfoTest;
271 dashContentCompInfoTest.contentType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
272
273 DashList<DashContentCompInfo *> contentCompListTest;
274 contentCompListTest.push_back(&dashContentCompInfoTest);
275
276 DashAdptSetInfo adptSetInfoTest;
277 adptSetInfoTest.mimeType_ = "http:://text:appTest111";
278 dashPeriodManager_->subtitleMimeType_ = "";
279
280 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
281 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
282 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
283 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
284 EXPECT_EQ(dashPeriodManager_->subtitleMimeType_, DashPeriodManager::SUBTITLE_MIME_TEXT);
285 }
286
287 /**
288 * @tc.name : Test ParseAdptSetTypeByComp
289 * @tc.number: ParseAdptSetTypeByComp_005
290 * @tc.desc : Test !ContainType(contentCompList, subtitleMimeType_)
291 */
292 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_005, TestSize.Level1)
293 {
294 dashPeriodManager_->subtitleAdptSetsVector_.clear();
295 dashPeriodManager_->videoAdptSetsVector_.clear();
296 dashPeriodManager_->audioAdptSetsVector_.clear();
297
298 DashContentCompInfo dashContentCompInfoTest;
299 dashContentCompInfoTest.contentType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
300
301 DashList<DashContentCompInfo *> contentCompListTest;
302 contentCompListTest.push_back(&dashContentCompInfoTest);
303
304 DashAdptSetInfo adptSetInfoTest;
305 adptSetInfoTest.mimeType_ = "http:://text:appTest111";
306 dashPeriodManager_->subtitleMimeType_ = "app";
307
308 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
309 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
310 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
311 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
312 }
313
314 /**
315 * @tc.name : Test ParseAdptSetTypeByComp
316 * @tc.number: ParseAdptSetTypeByComp_006
317 * @tc.desc : Test ContainType(contentCompList, subtitleMimeType_)
318 */
319 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_006, TestSize.Level1)
320 {
321 dashPeriodManager_->subtitleAdptSetsVector_.clear();
322 dashPeriodManager_->videoAdptSetsVector_.clear();
323 dashPeriodManager_->audioAdptSetsVector_.clear();
324
325 DashContentCompInfo dashContentCompInfoTest;
326 dashContentCompInfoTest.contentType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
327
328 DashList<DashContentCompInfo *> contentCompListTest;
329 contentCompListTest.push_back(&dashContentCompInfoTest);
330
331 DashAdptSetInfo adptSetInfoTest;
332 adptSetInfoTest.mimeType_ = "http:://text:appTest111";
333 dashPeriodManager_->subtitleMimeType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
334
335 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
336 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), false);
337 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), true);
338 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
339 }
340
341 /**
342 * @tc.name : Test ParseAdptSetTypeByComp
343 * @tc.number: ParseAdptSetTypeByComp_007
344 * @tc.desc : Test ContainType(contentCompList, subtitleMimeType_) is other
345 */
346 HWTEST_F(DashPeriodManagerUnitTest, ParseAdptSetTypeByComp_007, TestSize.Level1)
347 {
348 dashPeriodManager_->subtitleAdptSetsVector_.clear();
349 dashPeriodManager_->videoAdptSetsVector_.clear();
350 dashPeriodManager_->audioAdptSetsVector_.clear();
351
352 DashContentCompInfo dashContentCompInfoTest;
353 dashContentCompInfoTest.contentType_ = "app";
354
355 DashList<DashContentCompInfo *> contentCompListTest;
356 contentCompListTest.push_back(&dashContentCompInfoTest);
357
358 DashAdptSetInfo adptSetInfoTest;
359 adptSetInfoTest.mimeType_ = "http:://text:appTest111";
360 dashPeriodManager_->subtitleMimeType_ = DashPeriodManager::SUBTITLE_MIME_TEXT;
361
362 dashPeriodManager_->ParseAdptSetTypeByComp(contentCompListTest, &adptSetInfoTest);
363 EXPECT_EQ(dashPeriodManager_->subtitleAdptSetsVector_.empty(), true);
364 EXPECT_EQ(dashPeriodManager_->videoAdptSetsVector_.empty(), false);
365 EXPECT_EQ(dashPeriodManager_->audioAdptSetsVector_.empty(), true);
366 }
367
368 /**
369 * @tc.name : Test ParseInitSegment
370 * @tc.number: ParseInitSegment_001
371 * @tc.desc : Test periodInfo_->periodSegBase_ && periodInfo_->periodSegBase_->initialization_
372 */
373 HWTEST_F(DashPeriodManagerUnitTest, ParseInitSegment_001, TestSize.Level1)
374 {
375 DashUrlType dashUrlTypeTest;
376 dashUrlTypeTest.range_ = "test_range";
377 dashUrlTypeTest.sourceUrl_ = "test_sourceUrl";
378 DashSegBaseInfo dashSegBaseInfoTest;
379 DashPeriodInfo dashPeriodInfoTest;
380 dashSegBaseInfoTest.initialization_ = &dashUrlTypeTest;
381 dashPeriodInfoTest.periodSegBase_ = &dashSegBaseInfoTest;
382
383 dashPeriodManager_->periodInfo_ = &dashPeriodInfoTest;
384
385 dashPeriodManager_->ParseInitSegment();
386 EXPECT_TRUE(dashPeriodManager_->initSegment_ != nullptr);
387 EXPECT_EQ(dashPeriodManager_->initSegment_->range_, "test_range");
388 EXPECT_EQ(dashPeriodManager_->initSegment_->sourceUrl_, "test_sourceUrl");
389 }
390
391 /**
392 * @tc.name : Test ParseInitSegment
393 * @tc.number: ParseInitSegment_002
394 * @tc.desc : Test periodInfo_->periodSegList_ &&
395 * periodInfo_->periodSegList_->multSegBaseInfo_.segBaseInfo_.initialization_
396 */
397 HWTEST_F(DashPeriodManagerUnitTest, ParseInitSegment_002, TestSize.Level1)
398 {
399 DashUrlType dashUrlTypeTest;
400 dashUrlTypeTest.range_ = "test_range";
401 dashUrlTypeTest.sourceUrl_ = "test_sourceUrl";
402
403 DashSegListInfo periodSegListTest;
404 periodSegListTest.multSegBaseInfo_.segBaseInfo_.initialization_ = &dashUrlTypeTest;
405
406 DashPeriodInfo dashPeriodInfoTest;
407 dashPeriodInfoTest.periodSegBase_ = nullptr;
408 dashPeriodInfoTest.periodSegList_ = &periodSegListTest;
409
410 dashPeriodManager_->periodInfo_ = &dashPeriodInfoTest;
411
412 dashPeriodManager_->ParseInitSegment();
413 EXPECT_TRUE(dashPeriodManager_->initSegment_ != nullptr);
414 EXPECT_EQ(dashPeriodManager_->initSegment_->range_, "test_range");
415 EXPECT_EQ(dashPeriodManager_->initSegment_->sourceUrl_, "test_sourceUrl");
416 }
417
418 /**
419 * @tc.name : Test ParseInitSegmentBySegTmplt
420 * @tc.number: ParseInitSegmentBySegTmplt_001
421 * @tc.desc : Test periodInfo_->periodSegTmplt_->multSegBaseInfo_.segBaseInfo_.initialization_
422 */
423 HWTEST_F(DashPeriodManagerUnitTest, ParseInitSegmentBySegTmplt_001, TestSize.Level1)
424 {
425 DashUrlType dashUrlTypeTest;
426 dashUrlTypeTest.range_ = "test_range";
427 dashUrlTypeTest.sourceUrl_ = "test_sourceUrl";
428
429 DashSegTmpltInfo dashSegTmpltInfoTest;
430 DashPeriodInfo dashPeriodInfoTest;
431
432 dashSegTmpltInfoTest.multSegBaseInfo_.segBaseInfo_.initialization_ = &dashUrlTypeTest;
433 dashPeriodInfoTest.periodSegTmplt_ = &dashSegTmpltInfoTest;
434
435 dashPeriodManager_->periodInfo_ = &dashPeriodInfoTest;
436
437 dashPeriodManager_->ParseInitSegmentBySegTmplt();
438 EXPECT_TRUE(dashPeriodManager_->initSegment_ != nullptr);
439 EXPECT_EQ(dashPeriodManager_->initSegment_->range_, "test_range");
440 EXPECT_EQ(dashPeriodManager_->initSegment_->sourceUrl_, "test_sourceUrl");
441 }
442
443 /**
444 * @tc.name : Test ParseInitSegmentBySegTmplt
445 * @tc.number: ParseInitSegmentBySegTmplt_002
446 * @tc.desc : Test periodInfo_->periodSegTmplt_->segTmpltInitialization_.length() > 0
447 */
448 HWTEST_F(DashPeriodManagerUnitTest, ParseInitSegmentBySegTmplt_002, TestSize.Level1)
449 {
450 DashSegTmpltInfo dashSegTmpltInfoTest;
451 DashPeriodInfo dashPeriodInfoTest;
452 dashSegTmpltInfoTest.segTmpltInitialization_ = "test1";
453 dashSegTmpltInfoTest.multSegBaseInfo_.segBaseInfo_.initialization_ = nullptr;
454 dashPeriodInfoTest.periodSegTmplt_ = &dashSegTmpltInfoTest;
455
456 dashPeriodManager_->periodInfo_ = &dashPeriodInfoTest;
457
458 dashPeriodManager_->ParseInitSegmentBySegTmplt();
459 EXPECT_TRUE(dashPeriodManager_->initSegment_ != nullptr);
460 EXPECT_EQ(dashPeriodManager_->segTmpltFlag_, 1);
461 EXPECT_EQ(dashPeriodManager_->initSegment_->sourceUrl_, "test1");
462 }
463
464 /**
465 * @tc.name : Test SetPeriodInfo
466 * @tc.number: SetPeriodInfo_001
467 * @tc.desc : Test previousPeriodInfo_ == period
468 */
469 HWTEST_F(DashPeriodManagerUnitTest, SetPeriodInfo_001, TestSize.Level1)
470 {
471 DashPeriodInfo dashPeriodInfoTest;
472 dashPeriodInfoTest.bitstreamSwitching_ = true;
473
474 dashPeriodManager_->previousPeriodInfo_ = &dashPeriodInfoTest;
475 dashPeriodManager_->SetPeriodInfo(&dashPeriodInfoTest);
476 EXPECT_TRUE(dashPeriodManager_->periodInfo_ != nullptr);
477 EXPECT_EQ(dashPeriodManager_->periodInfo_->bitstreamSwitching_, true);
478 EXPECT_EQ(dashPeriodManager_->previousPeriodInfo_->bitstreamSwitching_, true);
479 }
480
481 /**
482 * @tc.name : Test SetPeriodInfo
483 * @tc.number: SetPeriodInfo_002
484 * @tc.desc : Test previousPeriodInfo_ != period
485 */
486 HWTEST_F(DashPeriodManagerUnitTest, SetPeriodInfo_002, TestSize.Level1)
487 {
488 DashPeriodInfo dashPeriodInfoTest;
489 DashPeriodInfo dashPeriodInfoTest1;
490 dashPeriodInfoTest.bitstreamSwitching_ = true;
491 dashPeriodInfoTest1.bitstreamSwitching_ = false;
492
493 dashPeriodManager_->previousPeriodInfo_ = &dashPeriodInfoTest1;
494
495 dashPeriodManager_->SetPeriodInfo(&dashPeriodInfoTest);
496 EXPECT_TRUE(dashPeriodManager_->periodInfo_ != nullptr);
497 EXPECT_EQ(dashPeriodManager_->periodInfo_->bitstreamSwitching_, true);
498 EXPECT_EQ(dashPeriodManager_->periodInfo_->bitstreamSwitching_, true);
499 }
500
501 /**
502 * @tc.name : Test GetBaseUrlList
503 * @tc.number: GetBaseUrlList_001
504 * @tc.desc : Test initSegment_ != nullptr
505 */
506 HWTEST_F(DashPeriodManagerUnitTest, GetBaseUrlList_001, TestSize.Level1)
507 {
508 DashPeriodInfo dashPeriodInfoTest;
509 dashPeriodInfoTest.bitstreamSwitching_ = true;
510 std::string baseUrlTest = "test";
511 dashPeriodInfoTest.baseUrl_.push_back(baseUrlTest);
512
513 dashPeriodManager_->periodInfo_ = &dashPeriodInfoTest;
514
515 std::list<std::string> baseUrlListTest;
516 dashPeriodManager_->GetBaseUrlList(baseUrlListTest);
517
518 EXPECT_TRUE(dashPeriodManager_->periodInfo_ != nullptr);
519 EXPECT_TRUE(baseUrlListTest.size() > 0);
520 }
521 } //HttpPlugin
522 } //Plugins
523 } //Media
524 } //OHOS