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 }