• 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 "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