• 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_adpt_set_manager_unit_test.h"
17 #include "dash_adpt_set_manager.h"
18 
19 namespace OHOS {
20 namespace Media {
21 namespace Plugins {
22 namespace HttpPlugin {
23 using namespace testing::ext;
24 
SetUpTestCase(void)25 void DashAdptSetManagerUnitTest::SetUpTestCase(void) {}
26 
TearDownTestCase(void)27 void DashAdptSetManagerUnitTest::TearDownTestCase(void) {}
28 
SetUp(void)29 void DashAdptSetManagerUnitTest::SetUp(void) {}
30 
TearDown(void)31 void DashAdptSetManagerUnitTest::TearDown(void) {}
32 
33 /**
34  * @tc.name  : Test Init API
35  * @tc.number: Dash_Adpt_SetManager_Init_001
36  * @tc.desc  : Test Dash Adpt Set Manager Init interface
37  */
38 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_Init_001, TestSize.Level1)
39 {
40     auto setManager = std::make_shared<DashAdptSetManager>(nullptr);
41     ASSERT_NE(nullptr, setManager);
42     ASSERT_EQ(nullptr, setManager->adptSetInfo_);
43     ASSERT_EQ(nullptr, setManager->previousAdptSetInfo_);
44 }
45 
46 /**
47  * @tc.name  : Test ParseInitSegment API
48  * @tc.number: Dash_Adpt_SetManager_ParseInitSegment_001
49  * @tc.desc  : Test Dash Adpt Set Manager ParseInitSegment interface
50  */
51 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_ParseInitSegment_001, TestSize.Level1)
52 {
53     DashUrlType init {.sourceUrl_ = "mock url", .range_ = "mock range"};
54     DashSegBaseInfo baseInfo {.initialization_ = &init};
55     DashAdptSetInfo info {.adptSetSegBase_ = &baseInfo};
56     DashAdptSetManager setManager;
57     setManager.adptSetInfo_ = &info;
58     ASSERT_NE(nullptr, setManager.adptSetInfo_);
59     setManager.ParseInitSegment();
60     ASSERT_NE(nullptr, setManager.initSegment_);
61 }
62 
63 /**
64  * @tc.name  : Test ParseInitSegment API
65  * @tc.number: Dash_Adpt_SetManager_ParseInitSegment_002
66  * @tc.desc  : Test Dash Adpt Set Manager ParseInitSegment interface
67  */
68 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_ParseInitSegment_002, TestSize.Level1)
69 {
70     DashUrlType *init = new DashUrlType();
71     DashAdptSetInfo info;
72     DashAdptSetManager setManager;
73     setManager.adptSetInfo_ = &info;
74     ASSERT_NE(nullptr, setManager.adptSetInfo_);
75     setManager.initSegment_ = init;
76     ASSERT_EQ(nullptr, setManager.adptSetInfo_->adptSetSegBase_);
77     ASSERT_EQ(nullptr, setManager.adptSetInfo_->adptSetSegList_);
78     ASSERT_EQ(nullptr, setManager.adptSetInfo_->adptSetSegTmplt_);
79     ASSERT_NE(nullptr, setManager.initSegment_);
80     setManager.ParseInitSegment();
81     ASSERT_EQ(nullptr, setManager.initSegment_);
82 }
83 
84 /**
85  * @tc.name  : Test ParseInitSegmentBySegTmplt API
86  * @tc.number: Dash_Adpt_SetManager_ParseInitSegmentBySegTmplt_001
87  * @tc.desc  : Test Dash Adpt Set Manager ParseInitSegmentBySegTmplt interface
88  */
89 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_ParseInitSegmentBySegTmplt_001, TestSize.Level1)
90 {
91     DashUrlType init {.sourceUrl_ = "mock url", .range_ = "mock range"};
92     DashSegTmpltInfo tmpltInfo;
93     tmpltInfo.multSegBaseInfo_.segBaseInfo_.initialization_ = &init;
94     DashAdptSetInfo info {.adptSetSegTmplt_ = &tmpltInfo};
95     DashAdptSetManager setManager;
96     setManager.adptSetInfo_ = &info;
97     setManager.ParseInitSegmentBySegTmplt();
98     ASSERT_NE(nullptr, setManager.initSegment_);
99     tmpltInfo.multSegBaseInfo_.segBaseInfo_.initialization_ = nullptr;
100     setManager.ParseInitSegmentBySegTmplt();
101     ASSERT_EQ(nullptr, setManager.initSegment_);
102 }
103 
104 /**
105  * @tc.name  : Test GetBaseUrlList API
106  * @tc.number: Dash_Adpt_SetManager_GetBaseUrlList_001
107  * @tc.desc  : Test Dash Adpt Set Manager GetBaseUrlList interface
108  */
109 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetBaseUrlList_001, TestSize.Level1)
110 {
111     DashAdptSetManager setManager;
112     ASSERT_EQ(nullptr, setManager.adptSetInfo_);
113     std::list<std::string> baseUrlList;
114     setManager.GetBaseUrlList(baseUrlList);
115     ASSERT_EQ(0, baseUrlList.size());
116 }
117 
118 /**
119  * @tc.name  : Test GetBandwidths API
120  * @tc.number: Dash_Adpt_SetManager_GetBandwidths_001
121  * @tc.desc  : Test Dash Adpt Set Manager GetBandwidths interface
122  */
123 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetBandwidths_001, TestSize.Level1)
124 {
125     DashAdptSetManager setManager;
126     ASSERT_EQ(0, setManager.representationList_.size());
127     DashVector<uint32_t> bandwidths;
128     setManager.GetBandwidths(bandwidths);
129     ASSERT_EQ(0, bandwidths.size());
130     DashRepresentationInfo info;
131     setManager.representationList_.emplace_back(&info);
132     setManager.representationList_.emplace_back(nullptr);
133     setManager.GetBandwidths(bandwidths);
134     ASSERT_EQ(1, bandwidths.size());
135 }
136 
137 /**
138  * @tc.name  : Test GetRepresentationByBandwidth API
139  * @tc.number: Dash_Adpt_SetManager_GetRepresentationByBandwidth_001
140  * @tc.desc  : Test Dash Adpt Set Manager GetRepresentationByBandwidth interface
141  */
142 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetRepresentationByBandwidth_001, TestSize.Level1)
143 {
144     DashAdptSetManager setManager;
145     ASSERT_EQ(0, setManager.representationList_.size());
146     ASSERT_EQ(nullptr, setManager.GetRepresentationByBandwidth(0));
147     DashRepresentationInfo info {.bandwidth_ = 1};
148     setManager.representationList_.emplace_back(&info);
149     ASSERT_EQ(nullptr, setManager.GetRepresentationByBandwidth(0));
150 }
151 
152 /**
153  * @tc.name  : Test GetHighRepresentation API
154  * @tc.number: Dash_Adpt_SetManager_GetHighRepresentation_001
155  * @tc.desc  : Test Dash Adpt Set Manager GetHighRepresentation interface
156  */
157 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetHighRepresentation_001, TestSize.Level1)
158 {
159     DashAdptSetManager setManager;
160     ASSERT_EQ(0, setManager.representationList_.size());
161     ASSERT_EQ(nullptr, setManager.GetHighRepresentation());
162 }
163 
164 /**
165  * @tc.name  : Test GetLowRepresentation API
166  * @tc.number: Dash_Adpt_SetManager_GetLowRepresentation_001
167  * @tc.desc  : Test Dash Adpt Set Manager GetLowRepresentation interface
168  */
169 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetLowRepresentation_001, TestSize.Level1)
170 {
171     DashAdptSetManager setManager;
172     ASSERT_EQ(0, setManager.representationList_.size());
173     ASSERT_EQ(nullptr, setManager.GetLowRepresentation());
174 }
175 
176 /**
177  * @tc.name  : Test GetMime API
178  * @tc.number: Dash_Adpt_SetManager_GetMime_001
179  * @tc.desc  : Test Dash Adpt Set Manager GetMime interface
180  */
181 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetMime_001, TestSize.Level1)
182 {
183     DashAdptSetManager setManager;
184     ASSERT_EQ(nullptr, setManager.adptSetInfo_);
185     ASSERT_EQ(true, setManager.GetMime().empty());
186 }
187 
188 /**
189  * @tc.name  : Test GetMime API
190  * @tc.number: Dash_Adpt_SetManager_GetMime_002
191  * @tc.desc  : Test Dash Adpt Set Manager GetMime interface
192  */
193 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetMime_002, TestSize.Level1)
194 {
195     DashAdptSetInfo info;
196     std::string mimeType = "mockMimeType";
197     info.commonAttrsAndElements_.mimeType_ = mimeType;
198     DashAdptSetManager setManager {&info};
199     ASSERT_NE(nullptr, setManager.adptSetInfo_);
200     ASSERT_EQ(mimeType, setManager.GetMime());
201 }
202 
203 /**
204  * @tc.name  : Test GetMime API
205  * @tc.number: Dash_Adpt_SetManager_GetMime_003
206  * @tc.desc  : Test Dash Adpt Set Manager GetMime interface
207  */
208 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_GetMime_003, TestSize.Level1)
209 {
210     DashAdptSetInfo info;
211     std::string mimeType = "mockMimeType";
212     DashRepresentationInfo reInfo;
213     reInfo.commonAttrsAndElements_.mimeType_ = mimeType;
214     info.representationList_.emplace_back(&reInfo);
215     DashAdptSetManager setManager {&info};
216     ASSERT_NE(nullptr, setManager.adptSetInfo_);
217     ASSERT_EQ(mimeType, setManager.GetMime());
218 }
219 
220 /**
221  * @tc.name  : Test IsOnDemand API
222  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_001
223  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
224  */
225 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_001, TestSize.Level1)
226 {
227     DashAdptSetManager setManager;
228     ASSERT_EQ(nullptr, setManager.adptSetInfo_);
229     ASSERT_EQ(false, setManager.IsOnDemand());
230 }
231 
232 /**
233  * @tc.name  : Test IsOnDemand API
234  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_002
235  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
236  */
237 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_002, TestSize.Level1)
238 {
239     DashAdptSetInfo info;
240     DashAdptSetManager setManager {&info};
241     ASSERT_NE(nullptr, setManager.adptSetInfo_);
242     ASSERT_EQ(0, setManager.adptSetInfo_->representationList_.size());
243     ASSERT_EQ(nullptr, setManager.adptSetInfo_->adptSetSegBase_);
244     ASSERT_EQ(false, setManager.IsOnDemand());
245 }
246 
247 /**
248  * @tc.name  : Test IsOnDemand API
249  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_003
250  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
251  */
252 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_003, TestSize.Level1)
253 {
254     DashSegBaseInfo baseInfo;
255     DashAdptSetInfo info {.adptSetSegBase_ = &baseInfo};
256     DashAdptSetManager setManager {&info};
257     ASSERT_NE(nullptr, setManager.adptSetInfo_);
258     ASSERT_EQ(0, setManager.adptSetInfo_->representationList_.size());
259     ASSERT_NE(nullptr, setManager.adptSetInfo_->adptSetSegBase_);
260     ASSERT_EQ(false, setManager.adptSetInfo_->adptSetSegBase_->indexRange_.size() > 0);
261     ASSERT_EQ(false, setManager.IsOnDemand());
262 }
263 
264 /**
265  * @tc.name  : Test IsOnDemand API
266  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_004
267  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
268  */
269 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_004, TestSize.Level1)
270 {
271     DashSegBaseInfo baseInfo {.indexRange_ = "mock index range"};
272     DashAdptSetInfo info {.adptSetSegBase_ = &baseInfo};
273     DashAdptSetManager setManager {&info};
274     ASSERT_NE(nullptr, setManager.adptSetInfo_);
275     ASSERT_EQ(0, setManager.adptSetInfo_->representationList_.size());
276     ASSERT_NE(nullptr, setManager.adptSetInfo_->adptSetSegBase_);
277     ASSERT_EQ(true, setManager.adptSetInfo_->adptSetSegBase_->indexRange_.size() > 0);
278     ASSERT_EQ(true, setManager.IsOnDemand());
279 }
280 
281 /**
282  * @tc.name  : Test IsOnDemand API
283  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_005
284  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
285  */
286 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_005, TestSize.Level1)
287 {
288     DashAdptSetInfo info;
289     DashSegListInfo segInfo;
290     DashRepresentationInfo reInfo {.representationSegList_ = &segInfo};
291     info.representationList_.emplace_back(&reInfo);
292     DashAdptSetManager setManager {&info};
293     ASSERT_NE(nullptr, setManager.adptSetInfo_);
294     ASSERT_EQ(1, setManager.adptSetInfo_->representationList_.size());
295     ASSERT_EQ(false, setManager.IsOnDemand());
296 }
297 
298 /**
299  * @tc.name  : Test IsOnDemand API
300  * @tc.number: Dash_Adpt_SetManager_IsOnDemand_006
301  * @tc.desc  : Test Dash Adpt Set Manager IsOnDemand interface
302  */
303 HWTEST_F(DashAdptSetManagerUnitTest, Dash_Adpt_SetManager_IsOnDemand_006, TestSize.Level1)
304 {
305     DashAdptSetInfo info;
306     DashSegTmpltInfo segInfo;
307     DashRepresentationInfo reInfo {.representationSegTmplt_ = &segInfo};
308     info.representationList_.emplace_back(&reInfo);
309     DashAdptSetManager setManager {&info};
310     ASSERT_NE(nullptr, setManager.adptSetInfo_);
311     ASSERT_EQ(1, setManager.adptSetInfo_->representationList_.size());
312     ASSERT_EQ(false, setManager.IsOnDemand());
313 }
314 }
315 }
316 }
317 }