1 /*
2 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development 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 "rtsp_unit_test.h"
17 #include <iostream>
18 #include "protocol/rtsp/include/rtsp_common.h"
19 #include "protocol/rtsp/include/rtsp_request.h"
20 #include "protocol/rtsp/include/rtsp_response.h"
21 #include "protocol/rtsp/include/rtsp_sdp.h"
22 #include "protocol/rtsp/include/rtsp_url.h"
23
24 using namespace testing::ext;
25 using namespace OHOS::Sharing;
26
27 namespace OHOS {
28 namespace Sharing {
29
SetUpTestCase()30 void RtspUnitTest::SetUpTestCase() {}
TearDownTestCase()31 void RtspUnitTest::TearDownTestCase() {}
SetUp()32 void RtspUnitTest::SetUp() {}
TearDown()33 void RtspUnitTest::TearDown() {}
34
35 namespace {
36
HWTEST_F(RtspUnitTest, RtspUnitTest_001, Function | SmallTest | Level2)37 HWTEST_F(RtspUnitTest, RtspUnitTest_001, Function | SmallTest | Level2)
38 {
39 auto ret = RtspCommon::GetRtspDate();
40 ASSERT_TRUE(ret != "");
41 }
42
HWTEST_F(RtspUnitTest, RtspUnitTest_002, Function | SmallTest | Level2)43 HWTEST_F(RtspUnitTest, RtspUnitTest_002, Function | SmallTest | Level2)
44 {
45 const std::string str = "123";
46 auto ret = RtspCommon::Trim(str);
47 EXPECT_EQ(ret, str);
48 const std::string str1 = " 123";
49 auto ret1 = RtspCommon::Trim(str1);
50 EXPECT_EQ(ret1, str);
51 const std::string str2 = "123 ";
52 auto ret2 = RtspCommon::Trim(str2);
53 EXPECT_EQ(ret2, str);
54 const std::string str3 = " 123 ";
55 auto ret3 = RtspCommon::Trim(str3);
56 EXPECT_EQ(ret3, str);
57 }
58
HWTEST_F(RtspUnitTest, RtspUnitTest_003, Function | SmallTest | Level2)59 HWTEST_F(RtspUnitTest, RtspUnitTest_003, Function | SmallTest | Level2)
60 {
61 const std::string str = "12 3";
62 auto ret = RtspCommon::Trim(str);
63 EXPECT_EQ(ret, str);
64 const std::string str1 = " 12 3";
65 auto ret1 = RtspCommon::Trim(str1);
66 EXPECT_EQ(ret1, str);
67 const std::string str2 = "12 3 ";
68 auto ret2 = RtspCommon::Trim(str2);
69 EXPECT_EQ(ret2, str);
70 const std::string str3 = " 12 3 ";
71 auto ret3 = RtspCommon::Trim(str3);
72 EXPECT_EQ(ret3, str);
73 }
74
HWTEST_F(RtspUnitTest, RtspUnitTest_004, Function | SmallTest | Level2)75 HWTEST_F(RtspUnitTest, RtspUnitTest_004, Function | SmallTest | Level2)
76 {
77 const std::string method = RTSP_METHOD_OPTIONS;
78 auto ret = RtspCommon::VerifyMethod(method);
79 EXPECT_EQ(ret, true);
80 }
81
HWTEST_F(RtspUnitTest, RtspUnitTest_005, Function | SmallTest | Level2)82 HWTEST_F(RtspUnitTest, RtspUnitTest_005, Function | SmallTest | Level2)
83 {
84 const std::string method = RTSP_METHOD_DESCRIBE;
85 auto ret = RtspCommon::VerifyMethod(method);
86 EXPECT_EQ(ret, true);
87 }
88
HWTEST_F(RtspUnitTest, RtspUnitTest_006, Function | SmallTest | Level2)89 HWTEST_F(RtspUnitTest, RtspUnitTest_006, Function | SmallTest | Level2)
90 {
91 const std::string method = RTSP_METHOD_ANNOUNCE;
92 auto ret = RtspCommon::VerifyMethod(method);
93 EXPECT_EQ(ret, true);
94 }
95
HWTEST_F(RtspUnitTest, RtspUnitTest_007, Function | SmallTest | Level2)96 HWTEST_F(RtspUnitTest, RtspUnitTest_007, Function | SmallTest | Level2)
97 {
98 const std::string method = RTSP_METHOD_SETUP;
99 auto ret = RtspCommon::VerifyMethod(method);
100 EXPECT_EQ(ret, true);
101 }
102
HWTEST_F(RtspUnitTest, RtspUnitTest_008, Function | SmallTest | Level2)103 HWTEST_F(RtspUnitTest, RtspUnitTest_008, Function | SmallTest | Level2)
104 {
105 const std::string method = RTSP_METHOD_PLAY;
106 auto ret = RtspCommon::VerifyMethod(method);
107 EXPECT_EQ(ret, true);
108 }
109
HWTEST_F(RtspUnitTest, RtspUnitTest_009, Function | SmallTest | Level2)110 HWTEST_F(RtspUnitTest, RtspUnitTest_009, Function | SmallTest | Level2)
111 {
112 const std::string method = RTSP_METHOD_PAUSE;
113 auto ret = RtspCommon::VerifyMethod(method);
114 EXPECT_EQ(ret, true);
115 }
116
HWTEST_F(RtspUnitTest, RtspUnitTest_010, Function | SmallTest | Level2)117 HWTEST_F(RtspUnitTest, RtspUnitTest_010, Function | SmallTest | Level2)
118 {
119 const std::string method = RTSP_METHOD_TEARDOWN;
120 auto ret = RtspCommon::VerifyMethod(method);
121 EXPECT_EQ(ret, true);
122 }
123
HWTEST_F(RtspUnitTest, RtspUnitTest_011, Function | SmallTest | Level2)124 HWTEST_F(RtspUnitTest, RtspUnitTest_011, Function | SmallTest | Level2)
125 {
126 const std::string method = RTSP_METHOD_GET_PARAMETER;
127 auto ret = RtspCommon::VerifyMethod(method);
128 EXPECT_EQ(ret, true);
129 }
130
HWTEST_F(RtspUnitTest, RtspUnitTest_012, Function | SmallTest | Level2)131 HWTEST_F(RtspUnitTest, RtspUnitTest_012, Function | SmallTest | Level2)
132 {
133 const std::string method = RTSP_METHOD_SET_PARAMETER;
134 auto ret = RtspCommon::VerifyMethod(method);
135 EXPECT_EQ(ret, true);
136 }
137
HWTEST_F(RtspUnitTest, RtspUnitTest_013, Function | SmallTest | Level2)138 HWTEST_F(RtspUnitTest, RtspUnitTest_013, Function | SmallTest | Level2)
139 {
140 const std::string method = RTSP_METHOD_REDIRECT;
141 auto ret = RtspCommon::VerifyMethod(method);
142 EXPECT_EQ(ret, true);
143 }
144
HWTEST_F(RtspUnitTest, RtspUnitTest_014, Function | SmallTest | Level2)145 HWTEST_F(RtspUnitTest, RtspUnitTest_014, Function | SmallTest | Level2)
146 {
147 const std::string method = RTSP_METHOD_RECORD;
148 auto ret = RtspCommon::VerifyMethod(method);
149 EXPECT_EQ(ret, true);
150 }
151
HWTEST_F(RtspUnitTest, RtspUnitTest_015, Function | SmallTest | Level2)152 HWTEST_F(RtspUnitTest, RtspUnitTest_015, Function | SmallTest | Level2)
153 {
154 const std::string method = "unknown";
155 auto ret = RtspCommon::VerifyMethod(method);
156 EXPECT_NE(ret, true);
157 }
158
HWTEST_F(RtspUnitTest, RtspUnitTest_016, Function | SmallTest | Level2)159 HWTEST_F(RtspUnitTest, RtspUnitTest_016, Function | SmallTest | Level2)
160 {
161 const std::string str = "str";
162 const std::string delimiter = "s";
163 auto ret = RtspCommon::Split(str, delimiter);
164 ASSERT_TRUE(ret.size() > 0);
165 }
166
HWTEST_F(RtspUnitTest, RtspUnitTest_017, Function | SmallTest | Level2)167 HWTEST_F(RtspUnitTest, RtspUnitTest_017, Function | SmallTest | Level2)
168 {
169 std::list<std::string> lines;
170 std::list<std::pair<std::string, std::string>> params;
171 lines.push_front("key:12");
172 lines.push_front("key2:212");
173 lines.push_front("key3:3212");
174 RtspCommon::SplitParameter(lines, params);
175 ASSERT_TRUE(params.size() == 3);
176 }
177
HWTEST_F(RtspUnitTest, RtspUnitTest_018, Function | SmallTest | Level2)178 HWTEST_F(RtspUnitTest, RtspUnitTest_018, Function | SmallTest | Level2)
179 {
180 const std::string message =
181 "Request: GET_PARAMETER rtsp://localhost/wfd1.0 RTSP/1.0\r\nCSeq: 2\r\nContent-type: text/parameters";
182 std::vector<std::string> firstLine;
183 std::unordered_map<std::string, std::string> header;
184 std::list<std::string> body;
185 auto ret = RtspCommon::ParseMessage(message, firstLine, header, body);
186 ASSERT_TRUE(ret.code == RtspErrorType::OK);
187 }
188
HWTEST_F(RtspUnitTest, RtspUnitTest_019, Function | SmallTest | Level2)189 HWTEST_F(RtspUnitTest, RtspUnitTest_019, Function | SmallTest | Level2)
190 {
191 const std::string &username = "username";
192 const std::string &realm = "realm";
193 const std::string &password = "password";
194 const std::string &nonce = "nonce";
195 const std::string &method = "method";
196 const std::string &url = "url";
197 auto ret = RtspCommon::GenerateAuthorization(username, realm, password, nonce, method, url);
198 EXPECT_EQ(ret,
199 "Digest username=\"username\", realm=\"realm\", nonce=\"nonce\", uri=\"url\", response=\"00000000\"");
200 }
201
HWTEST_F(RtspUnitTest, RtspUnitTest_020, Function | SmallTest | Level2)202 HWTEST_F(RtspUnitTest, RtspUnitTest_020, Function | SmallTest | Level2)
203 {
204 auto request = std::make_shared<RtspRequest>();
205 EXPECT_NE(request, nullptr);
206 }
207
HWTEST_F(RtspUnitTest, RtspUnitTest_021, Function | SmallTest | Level2)208 HWTEST_F(RtspUnitTest, RtspUnitTest_021, Function | SmallTest | Level2)
209 {
210 const std::string &request =
211 "OPTIONS * RTSP/1.0\r\nCSeq: 1\r\nUser-Agent: KaihongOS\r\nRequire: org.wfa.wfd1.0\r\n";
212 auto rtspRequest = std::make_shared<RtspRequest>(request);
213 EXPECT_NE(rtspRequest, nullptr);
214 }
215
HWTEST_F(RtspUnitTest, RtspUnitTest_022, Function | SmallTest | Level2)216 HWTEST_F(RtspUnitTest, RtspUnitTest_022, Function | SmallTest | Level2)
217 {
218 const std::string &method = RTSP_METHOD_OPTIONS;
219 int32_t cseq = 1;
220 const std::string &url = "rtsp://192.168.49.1/wfd1.0/streamid=0 RTSP/1.0\r\n";
221 auto request = std::make_shared<RtspRequest>(method, cseq, url);
222 EXPECT_NE(request, nullptr);
223 }
224
HWTEST_F(RtspUnitTest, RtspUnitTest_023, Function | SmallTest | Level2)225 HWTEST_F(RtspUnitTest, RtspUnitTest_023, Function | SmallTest | Level2)
226 {
227 const std::string &method = RTSP_METHOD_OPTIONS;
228 auto request = std::make_shared<RtspRequest>();
229 EXPECT_NE(request, nullptr);
230 request->SetMethod(method);
231 auto ret = request->GetMethod();
232 EXPECT_EQ(ret, method);
233 }
234
HWTEST_F(RtspUnitTest, RtspUnitTest_024, Function | SmallTest | Level2)235 HWTEST_F(RtspUnitTest, RtspUnitTest_024, Function | SmallTest | Level2)
236 {
237 int32_t cseq = 1;
238 auto request = std::make_shared<RtspRequest>();
239 EXPECT_NE(request, nullptr);
240 request->SetCSeq(cseq);
241 auto ret = request->GetCSeq();
242 EXPECT_EQ(ret, cseq);
243 }
244
HWTEST_F(RtspUnitTest, RtspUnitTest_025, Function | SmallTest | Level2)245 HWTEST_F(RtspUnitTest, RtspUnitTest_025, Function | SmallTest | Level2)
246 {
247 const std::string &url = "rtsp://192.168.49.1/wfd1.0/streamid=0 RTSP/1.0\r\n";
248 auto request = std::make_shared<RtspRequest>();
249 EXPECT_NE(request, nullptr);
250 request->SetUrl(url);
251 auto ret = request->GetUrl();
252 EXPECT_EQ(ret, url);
253 }
254
HWTEST_F(RtspUnitTest, RtspUnitTest_026, Function | SmallTest | Level2)255 HWTEST_F(RtspUnitTest, RtspUnitTest_026, Function | SmallTest | Level2)
256 {
257 const std::string &authorization = "authorization";
258 auto request = std::make_shared<RtspRequest>();
259 EXPECT_NE(request, nullptr);
260 request->SetAuthorization(authorization);
261 auto ret = request->GetAuthorization();
262 EXPECT_EQ(ret, authorization);
263 }
264
HWTEST_F(RtspUnitTest, RtspUnitTest_027, Function | SmallTest | Level2)265 HWTEST_F(RtspUnitTest, RtspUnitTest_027, Function | SmallTest | Level2)
266 {
267 const std::string &userAgent = "userAgent";
268 auto request = std::make_shared<RtspRequest>();
269 EXPECT_NE(request, nullptr);
270 request->SetUserAgent(userAgent);
271 auto ret = request->GetUserAgent();
272 EXPECT_EQ(ret, userAgent);
273 }
274
HWTEST_F(RtspUnitTest, RtspUnitTest_028, Function | SmallTest | Level2)275 HWTEST_F(RtspUnitTest, RtspUnitTest_028, Function | SmallTest | Level2)
276 {
277 const std::string &session = "session";
278 auto request = std::make_shared<RtspRequest>();
279 EXPECT_NE(request, nullptr);
280 request->SetSession(session);
281 auto ret = request->GetSession();
282 EXPECT_EQ(ret, session);
283 }
284
HWTEST_F(RtspUnitTest, RtspUnitTest_029, Function | SmallTest | Level2)285 HWTEST_F(RtspUnitTest, RtspUnitTest_029, Function | SmallTest | Level2)
286 {
287 int32_t timeout = 10;
288 auto request = std::make_shared<RtspRequest>();
289 EXPECT_NE(request, nullptr);
290 request->SetTimeout(timeout);
291 EXPECT_EQ(timeout, request->timeout_);
292 }
293
HWTEST_F(RtspUnitTest, RtspUnitTest_030, Function | SmallTest | Level2)294 HWTEST_F(RtspUnitTest, RtspUnitTest_030, Function | SmallTest | Level2)
295 {
296 const std::string &header = "header";
297 auto request = std::make_shared<RtspRequest>();
298 EXPECT_NE(request, nullptr);
299 request->AddCustomHeader(header);
300 EXPECT_EQ(header, request->customHeaders_);
301 request->ClearCustomHeader();
302 EXPECT_EQ(request->customHeaders_, "");
303 }
304
HWTEST_F(RtspUnitTest, RtspUnitTest_031, Function | SmallTest | Level2)305 HWTEST_F(RtspUnitTest, RtspUnitTest_031, Function | SmallTest | Level2)
306 {
307 auto request = std::make_shared<RtspRequest>();
308 EXPECT_NE(request, nullptr);
309 auto ret = request->GetBody();
310 EXPECT_EQ(ret.size(), 0);
311 }
312
HWTEST_F(RtspUnitTest, RtspUnitTest_032, Function | SmallTest | Level2)313 HWTEST_F(RtspUnitTest, RtspUnitTest_032, Function | SmallTest | Level2)
314 {
315 const std::string &method = RTSP_METHOD_OPTIONS;
316 int32_t cseq = 1;
317 const std::string &url = "rtsp://192.168.49.1/wfd1.0/streamid=0 RTSP/1.0\r\n";
318 auto request = std::make_shared<RtspRequest>(method, cseq, url);
319 EXPECT_NE(request, nullptr);
320 auto ret = request->Stringify();
321 EXPECT_NE(ret, "");
322 }
323
HWTEST_F(RtspUnitTest, RtspUnitTest_033, Function | SmallTest | Level2)324 HWTEST_F(RtspUnitTest, RtspUnitTest_033, Function | SmallTest | Level2)
325 {
326 auto rtspRequest = std::make_shared<RtspRequest>();
327 EXPECT_NE(rtspRequest, nullptr);
328 const std::string &request =
329 "OPTIONS * RTSP/1.0\r\nCSeq: 1\r\nUser-Agent: KaihongOS\r\nRequire: org.wfa.wfd1.0\r\n";
330 auto ret = rtspRequest->Parse(request);
331 EXPECT_EQ(ret.code, RtspErrorType::OK);
332 }
333
HWTEST_F(RtspUnitTest, RtspUnitTest_034, Function | SmallTest | Level2)334 HWTEST_F(RtspUnitTest, RtspUnitTest_034, Function | SmallTest | Level2)
335 {
336 auto request = std::make_shared<RtspRequest>();
337 EXPECT_NE(request, nullptr);
338 const std::string token = "token";
339 const std::string value = "value";
340 request->tokens_[token] = value;
341 auto ret = request->GetToken(token);
342 EXPECT_EQ(ret, value);
343 }
344
HWTEST_F(RtspUnitTest, RtspUnitTest_035, Function | SmallTest | Level2)345 HWTEST_F(RtspUnitTest, RtspUnitTest_035, Function | SmallTest | Level2)
346 {
347 auto response = std::make_shared<RtspResponse>();
348 EXPECT_NE(response, nullptr);
349 }
350
HWTEST_F(RtspUnitTest, RtspUnitTest_036, Function | SmallTest | Level2)351 HWTEST_F(RtspUnitTest, RtspUnitTest_036, Function | SmallTest | Level2)
352 {
353 int32_t cseq = 1;
354 int32_t status = 200;
355 auto response = std::make_shared<RtspResponse>(cseq, status);
356 EXPECT_NE(response, nullptr);
357 }
358
HWTEST_F(RtspUnitTest, RtspUnitTest_037, Function | SmallTest | Level2)359 HWTEST_F(RtspUnitTest, RtspUnitTest_037, Function | SmallTest | Level2)
360 {
361 auto response = std::make_shared<RtspResponse>();
362 EXPECT_NE(response, nullptr);
363 const std::string &header = "header";
364 response->AddCustomHeader(header);
365 EXPECT_EQ(header, response->customHeaders_);
366 response->ClearCustomHeader();
367 EXPECT_EQ(response->customHeaders_, "");
368 }
369
HWTEST_F(RtspUnitTest, RtspUnitTest_038, Function | SmallTest | Level2)370 HWTEST_F(RtspUnitTest, RtspUnitTest_038, Function | SmallTest | Level2)
371 {
372 int32_t timeout = 10;
373 auto response = std::make_shared<RtspResponse>();
374 EXPECT_NE(response, nullptr);
375 response->SetTimeout(timeout);
376 auto ret = response->GetTimeout();
377 EXPECT_EQ(ret, timeout);
378 }
379
HWTEST_F(RtspUnitTest, RtspUnitTest_039, Function | SmallTest | Level2)380 HWTEST_F(RtspUnitTest, RtspUnitTest_039, Function | SmallTest | Level2)
381 {
382 const std::string &session = "session";
383 auto response = std::make_shared<RtspResponse>();
384 EXPECT_NE(response, nullptr);
385 response->SetSession(session);
386 auto ret = response->GetSession();
387 EXPECT_EQ(ret, session);
388 }
389
HWTEST_F(RtspUnitTest, RtspUnitTest_040, Function | SmallTest | Level2)390 HWTEST_F(RtspUnitTest, RtspUnitTest_040, Function | SmallTest | Level2)
391 {
392 int32_t cseq = 1;
393 int32_t status = 200;
394 auto response = std::make_shared<RtspResponse>(cseq, status);
395 EXPECT_NE(response, nullptr);
396 auto ret = response->GetCSeq();
397 EXPECT_EQ(ret, cseq);
398 }
399
HWTEST_F(RtspUnitTest, RtspUnitTest_041, Function | SmallTest | Level2)400 HWTEST_F(RtspUnitTest, RtspUnitTest_041, Function | SmallTest | Level2)
401 {
402 const std::string &responseMsg =
403 "RTSP/1.0 200 OK\r\nCSeq: 2\r\nDate: Thu, Nov 09 2023 08:43:36 GMT\r\nContent-Type: text/parameters\r\n"
404 "Content-Length: 961\r\n\r\n"
405 "wfd_video_formats : 38 00 02 10 00000080 00000000 00000000 00 0000 0000 00 none none\r\n"
406 "wfd_audio_codecs: AAC 00000001 00\r\nwfd_client_rtp_ports: RTP/AVP/UDP;unicast 6700 0 mode=play"
407 "\r\nwfd_display_edid: none\r\nwfd_connector_type: none\r\nwfd_uibc_capability: none\r\n"
408 "wfd2_rotation_capability: none\r\nwfd2_video_formats: none\r\n"
409 "wfd2_audio_codecs: none\r\nwfd2_video_stream_control: none\r\n"
410 "wfd_content_protection: none\r\nwfd_idr_request_capability: none\r\n"
411 "intel_friendly_name: none\r\nintel_sink_manufacturer_name: none\r\n"
412 "intel_sink_model_name: none\r\nintel_sink_version: none\r\n"
413 "intel_sink_device_URL: none\r\nmicrosoft_latency_management_capability: none\r\n"
414 "microsoft_format_change_capability: none\r\n"
415 "microsoft_diagnostics_capability: none\r\nmicrosoft_cursor: none\r\n"
416 "microsoft_rtcp_capability: none\r\n"
417 "microsoft_video_formats: none\r\n"
418 "microsoft_max_bitrate: none\r\nmicrosoft_multiscreen_projection: none\r\n"
419 "microsoft_audio_mute: none\r\nmicrosoft_color_space_conversion: none\r\nwfd_connector_type: 5\r\n";
420 int32_t cseq = 1;
421 int32_t status = 200;
422 auto response = std::make_shared<RtspResponse>(cseq, status);
423 EXPECT_NE(response, nullptr);
424 auto ret = response->Parse(responseMsg);
425 ASSERT_TRUE(ret.code == RtspErrorType::OK);
426 auto date = response->GetDate();
427 EXPECT_NE(date, "");
428 auto statusRet = response->GetStatus();
429 EXPECT_EQ(statusRet, status);
430 }
431
HWTEST_F(RtspUnitTest, RtspUnitTest_042, Function | SmallTest | Level2)432 HWTEST_F(RtspUnitTest, RtspUnitTest_042, Function | SmallTest | Level2)
433 {
434 int32_t cseq = 1;
435 int32_t status = 200;
436 auto response = std::make_shared<RtspResponse>(cseq, status);
437 EXPECT_NE(response, nullptr);
438 const std::string &msg1 = "RTSP/1.0 401 Unauthorized\r\nCSeq: 3\r\n";
439 const std::string &msg2 = "WWW-Authenticate: Digest realm=\"IP Camera(23435)\",";
440 const std::string &msg3 = "nonce=\"8fd7c44874480bd643d970149224da11\",";
441 const std::string &msg4 = "stale=\"FALSE\"\r\nDate: Wed, Jun 03 2020 10:54:30 GMT\r\n";
442 response->Parse(msg1 + msg2 + msg3 + msg4);
443 auto ret = response->GetDigestRealm();
444 EXPECT_EQ(ret, "IP Camera(23435)\",nonce=\"8fd7c44874480bd643d970149224da11\",stale=\"FALSE");
445 }
446
HWTEST_F(RtspUnitTest, RtspUnitTest_043, Function | SmallTest | Level2)447 HWTEST_F(RtspUnitTest, RtspUnitTest_043, Function | SmallTest | Level2)
448 {
449 int32_t cseq = 1;
450 int32_t status = 200;
451 auto response = std::make_shared<RtspResponse>(cseq, status);
452 EXPECT_NE(response, nullptr);
453 const std::string &msg1 = "RTSP/1.0 401 Unauthorized\r\nCSeq: 3\r\n";
454 const std::string &msg2 = "WWW-Authenticate: Digest realm=\"IP Camera(23435)\",";
455 const std::string &msg3 = "nonce=\"8fd7c44874480bd643d970149224da11\",";
456 const std::string &msg4 = "stale=\"FALSE\"\r\nDate: Wed, Jun 03 2020 10:54:30 GMT\r\n";
457 response->Parse(msg1 + msg2 + msg3 + msg4);
458 auto ret = response->GetNonce();
459 EXPECT_NE(ret, "\"8fd7c44874480bd643d970149224da11\"");
460 }
461
HWTEST_F(RtspUnitTest, RtspUnitTest_044, Function | SmallTest | Level2)462 HWTEST_F(RtspUnitTest, RtspUnitTest_044, Function | SmallTest | Level2)
463 {
464 int32_t cseq = 1;
465 int32_t status = 200;
466 auto response = std::make_shared<RtspResponse>(cseq, status);
467 EXPECT_NE(response, nullptr);
468 auto ret = response->GetBody();
469 EXPECT_EQ(ret.size(), 0);
470 }
471
HWTEST_F(RtspUnitTest, RtspUnitTest_045, Function | SmallTest | Level2)472 HWTEST_F(RtspUnitTest, RtspUnitTest_045, Function | SmallTest | Level2)
473 {
474 int32_t cseq = 1;
475 int32_t status = 200;
476 auto response = std::make_shared<RtspResponse>(cseq, status);
477 EXPECT_NE(response, nullptr);
478 auto ret = response->Stringify();
479 EXPECT_NE(ret, "");
480 }
481
HWTEST_F(RtspUnitTest, RtspUnitTest_046, Function | SmallTest | Level2)482 HWTEST_F(RtspUnitTest, RtspUnitTest_046, Function | SmallTest | Level2)
483 {
484 int32_t cseq = 1;
485 int32_t status = 200;
486 auto response = std::make_shared<RtspResponse>(cseq, status);
487 EXPECT_NE(response, nullptr);
488 const std::string token = "token";
489 const std::string value = "value";
490 response->tokens_[token] = value;
491 auto ret = response->GetToken(token);
492 EXPECT_EQ(ret, value);
493 }
494
HWTEST_F(RtspUnitTest, RtspUnitTest_047, Function | SmallTest | Level2)495 HWTEST_F(RtspUnitTest, RtspUnitTest_047, Function | SmallTest | Level2)
496 {
497 int32_t cseq = 1;
498 int32_t status = 200;
499 auto response = std::make_shared<RtspResponseOptions>(cseq, status);
500 EXPECT_NE(response, nullptr);
501 }
502
HWTEST_F(RtspUnitTest, RtspUnitTest_048, Function | SmallTest | Level2)503 HWTEST_F(RtspUnitTest, RtspUnitTest_048, Function | SmallTest | Level2)
504 {
505 int32_t cseq = 1;
506 int32_t status = 200;
507 auto response = std::make_shared<RtspResponseOptions>(cseq, status);
508 EXPECT_NE(response, nullptr);
509 const std::string &lists = "lists";
510 response->SetPublicItems(lists);
511 EXPECT_EQ(response->publicItems_, lists);
512 }
513
HWTEST_F(RtspUnitTest, RtspUnitTest_049, Function | SmallTest | Level2)514 HWTEST_F(RtspUnitTest, RtspUnitTest_049, Function | SmallTest | Level2)
515 {
516 int32_t cseq = 1;
517 int32_t status = 200;
518 auto response = std::make_shared<RtspResponseOptions>(cseq, status);
519 EXPECT_NE(response, nullptr);
520 auto ret = response->Stringify();
521 EXPECT_NE(ret, "");
522 }
523
HWTEST_F(RtspUnitTest, RtspUnitTest_050, Function | SmallTest | Level2)524 HWTEST_F(RtspUnitTest, RtspUnitTest_050, Function | SmallTest | Level2)
525 {
526 int32_t cseq = 1;
527 int32_t status = 200;
528 auto response = std::make_shared<RtspResponseDescribe>(cseq, status);
529 EXPECT_NE(response, nullptr);
530 auto ret = response->Stringify();
531 EXPECT_NE(ret, "");
532 }
533
HWTEST_F(RtspUnitTest, RtspUnitTest_051, Function | SmallTest | Level2)534 HWTEST_F(RtspUnitTest, RtspUnitTest_051, Function | SmallTest | Level2)
535 {
536 int32_t cseq = 1;
537 int32_t status = 200;
538 auto response = std::make_shared<RtspResponseDescribe>(cseq, status);
539 EXPECT_NE(response, nullptr);
540 const std::string &line = "line";
541 response->AddBodyItem(line);
542 EXPECT_NE(response->body_.size(), 0);
543 }
544
HWTEST_F(RtspUnitTest, RtspUnitTest_052, Function | SmallTest | Level2)545 HWTEST_F(RtspUnitTest, RtspUnitTest_052, Function | SmallTest | Level2)
546 {
547 int32_t cseq = 1;
548 int32_t status = 200;
549 auto response = std::make_shared<RtspResponseDescribe>(cseq, status);
550 EXPECT_NE(response, nullptr);
551 const std::string &url = "rtsp://192.168.2.4/wfd1.0/streamid=0";
552 response->SetUrl(url);
553 EXPECT_EQ(response->url_, url);
554 }
555
HWTEST_F(RtspUnitTest, RtspUnitTest_053, Function | SmallTest | Level2)556 HWTEST_F(RtspUnitTest, RtspUnitTest_053, Function | SmallTest | Level2)
557 {
558 int32_t cseq = 1;
559 int32_t status = 200;
560 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
561 EXPECT_NE(response, nullptr);
562 auto ret = response->Stringify();
563 EXPECT_NE(ret, "");
564 }
565
HWTEST_F(RtspUnitTest, RtspUnitTest_054, Function | SmallTest | Level2)566 HWTEST_F(RtspUnitTest, RtspUnitTest_054, Function | SmallTest | Level2)
567 {
568 int32_t cseq = 1;
569 int32_t status = 200;
570 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
571 EXPECT_NE(response, nullptr);
572 const std::string &destination = "destination";
573 response->SetDestination(destination);
574 EXPECT_EQ(response->destination_, destination);
575 }
576
HWTEST_F(RtspUnitTest, RtspUnitTest_055, Function | SmallTest | Level2)577 HWTEST_F(RtspUnitTest, RtspUnitTest_055, Function | SmallTest | Level2)
578 {
579 int32_t cseq = 1;
580 int32_t status = 200;
581 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
582 EXPECT_NE(response, nullptr);
583 const std::string &source = "source";
584 response->SetSource(source);
585 EXPECT_EQ(response->source_, source);
586 }
587
HWTEST_F(RtspUnitTest, RtspUnitTest_056, Function | SmallTest | Level2)588 HWTEST_F(RtspUnitTest, RtspUnitTest_056, Function | SmallTest | Level2)
589 {
590 int32_t cseq = 1;
591 int32_t status = 200;
592 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
593 EXPECT_NE(response, nullptr);
594 int32_t minClientPort = 6700;
595 int32_t maxClientPort = 0;
596 response->SetClientPort(minClientPort, maxClientPort);
597 EXPECT_EQ(response->minClientPort_, minClientPort);
598 }
599
HWTEST_F(RtspUnitTest, RtspUnitTest_057, Function | SmallTest | Level2)600 HWTEST_F(RtspUnitTest, RtspUnitTest_057, Function | SmallTest | Level2)
601 {
602 int32_t cseq = 1;
603 int32_t status = 200;
604 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
605 EXPECT_NE(response, nullptr);
606 int32_t minClientPort = 6700;
607 int32_t maxClientPort = 6702;
608 response->SetClientPort(minClientPort, maxClientPort);
609 EXPECT_EQ(response->minClientPort_, minClientPort);
610 EXPECT_EQ(response->maxServerPort_, maxClientPort);
611 }
612
HWTEST_F(RtspUnitTest, RtspUnitTest_058, Function | SmallTest | Level2)613 HWTEST_F(RtspUnitTest, RtspUnitTest_058, Function | SmallTest | Level2)
614 {
615 int32_t cseq = 1;
616 int32_t status = 200;
617 auto response = std::make_shared<RtspResponseSetup>(cseq, status);
618 EXPECT_NE(response, nullptr);
619 int32_t minServerPort = 67000;
620 int32_t maxServerPort = 67002;
621 response->SetServerPort(minServerPort, maxServerPort);
622 EXPECT_EQ(response->minServerPort_, minServerPort);
623 EXPECT_EQ(response->maxServerPort_, maxServerPort);
624 }
625
HWTEST_F(RtspUnitTest, RtspUnitTest_059, Function | SmallTest | Level2)626 HWTEST_F(RtspUnitTest, RtspUnitTest_059, Function | SmallTest | Level2)
627 {
628 int32_t cseq = 1;
629 int32_t status = 200;
630 auto response = std::make_shared<RtspResponsePlay>(cseq, status);
631 EXPECT_NE(response, nullptr);
632 }
633
HWTEST_F(RtspUnitTest, RtspUnitTest_060, Function | SmallTest | Level2)634 HWTEST_F(RtspUnitTest, RtspUnitTest_060, Function | SmallTest | Level2)
635 {
636 int32_t cseq = 1;
637 int32_t status = 200;
638 auto response = std::make_shared<RtspResponseTeardown>(cseq, status);
639 EXPECT_NE(response, nullptr);
640 }
641
HWTEST_F(RtspUnitTest, RtspUnitTest_061, Function | SmallTest | Level2)642 HWTEST_F(RtspUnitTest, RtspUnitTest_061, Function | SmallTest | Level2)
643 {
644 int32_t cseq = 1;
645 int32_t status = 200;
646 auto response = std::make_shared<RtspResponseGetParameter>(cseq, status);
647 EXPECT_NE(response, nullptr);
648 auto ret = response->Stringify();
649 EXPECT_NE(ret, "");
650 }
651
HWTEST_F(RtspUnitTest, RtspUnitTest_062, Function | SmallTest | Level2)652 HWTEST_F(RtspUnitTest, RtspUnitTest_062, Function | SmallTest | Level2)
653 {
654 int32_t cseq = 1;
655 int32_t status = 200;
656 auto response = std::make_shared<RtspResponseGetParameter>(cseq, status);
657 EXPECT_NE(response, nullptr);
658 const std::string &line = "line";
659 response->AddBodyItem(line);
660 EXPECT_NE(response->body_.size(), 0);
661 }
662
HWTEST_F(RtspUnitTest, RtspUnitTest_063, Function | SmallTest | Level2)663 HWTEST_F(RtspUnitTest, RtspUnitTest_063, Function | SmallTest | Level2)
664 {
665 int32_t cseq = 1;
666 int32_t status = 200;
667 auto response = std::make_shared<RtspResponseSetParameter>(cseq, status);
668 EXPECT_NE(response, nullptr);
669 }
670
HWTEST_F(RtspUnitTest, RtspUnitTest_064, Function | SmallTest | Level2)671 HWTEST_F(RtspUnitTest, RtspUnitTest_064, Function | SmallTest | Level2)
672 {
673 auto session = std::make_shared<SessionOrigin>();
674 EXPECT_NE(session, nullptr);
675 }
676
HWTEST_F(RtspUnitTest, RtspUnitTest_065, Function | SmallTest | Level2)677 HWTEST_F(RtspUnitTest, RtspUnitTest_065, Function | SmallTest | Level2)
678 {
679 auto session = std::make_shared<SessionOrigin>();
680 EXPECT_NE(session, nullptr);
681 uint32_t sessionVersion = 1;
682 const std::string netType = "IN";
683 const std::string username = "StreamingServer";
684 const std::string addrType = "IP4";
685 const std::string sessionId = "3677033027";
686 const std::string unicastAddr = "192.168.1.44";
687 const std::string origin = "StreamingServer 3677033027 1 IN IP4 192.168.1.44";
688 auto ret = session->Parse(origin);
689 EXPECT_EQ(ret, true);
690 EXPECT_EQ(session->sessionVersion, sessionVersion);
691 EXPECT_EQ(session->netType, netType);
692 EXPECT_EQ(session->username, username);
693 EXPECT_EQ(session->addrType, addrType);
694 EXPECT_EQ(session->sessionId, sessionId);
695 EXPECT_EQ(session->unicastAddr, unicastAddr);
696 }
697
HWTEST_F(RtspUnitTest, RtspUnitTest_066, Function | SmallTest | Level2)698 HWTEST_F(RtspUnitTest, RtspUnitTest_066, Function | SmallTest | Level2)
699 {
700 auto media = std::make_shared<MediaLine>();
701 EXPECT_NE(media, nullptr);
702 }
703
HWTEST_F(RtspUnitTest, RtspUnitTest_067, Function | SmallTest | Level2)704 HWTEST_F(RtspUnitTest, RtspUnitTest_067, Function | SmallTest | Level2)
705 {
706 auto media = std::make_shared<MediaLine>();
707 EXPECT_NE(media, nullptr);
708 uint16_t port = 49170;
709 int32_t fmt = 0;
710 const std::string mediaType = "audio";
711 const std::string protoType = "RTP/AVP";
712 const std::string mediaLine = "audio 49170 RTP/AVP 0";
713 auto ret = media->Parse(mediaLine);
714 EXPECT_EQ(ret, true);
715 EXPECT_EQ(media->port, port);
716 EXPECT_EQ(media->fmt, fmt);
717 EXPECT_EQ(media->mediaType, mediaType);
718 EXPECT_EQ(media->protoType, protoType);
719 }
720
HWTEST_F(RtspUnitTest, RtspUnitTest_068, Function | SmallTest | Level2)721 HWTEST_F(RtspUnitTest, RtspUnitTest_068, Function | SmallTest | Level2)
722 {
723 auto mediaDesc = std::make_shared<MediaDescription>();
724 EXPECT_NE(mediaDesc, nullptr);
725 const std::string mediaLine = "audio 49170 RTP/AVP 0";
726 auto ret1 = mediaDesc->media_.Parse(mediaLine);
727 ASSERT_TRUE(ret1);
728 auto ret2 = mediaDesc->GetMediaType();
729 EXPECT_EQ(ret2, "audio");
730 auto ret3 = mediaDesc->GetPayloadType();
731 EXPECT_EQ(ret3, 0);
732 }
733
HWTEST_F(RtspUnitTest, RtspUnitTest_069, Function | SmallTest | Level2)734 HWTEST_F(RtspUnitTest, RtspUnitTest_069, Function | SmallTest | Level2)
735 {
736 auto mediaDesc = std::make_shared<MediaDescription>();
737 EXPECT_NE(mediaDesc, nullptr);
738 const std::string mediaLine = "video 49170/2 RTP/AVP 31";
739 auto ret1 = mediaDesc->media_.Parse(mediaLine);
740 ASSERT_TRUE(ret1);
741 auto ret2 = mediaDesc->GetMediaType();
742 EXPECT_EQ(ret2, "video");
743 auto ret3 = mediaDesc->GetPayloadType();
744 EXPECT_EQ(ret3, 31);
745 }
746
HWTEST_F(RtspUnitTest, RtspUnitTest_070, Function | SmallTest | Level2)747 HWTEST_F(RtspUnitTest, RtspUnitTest_070, Function | SmallTest | Level2)
748 {
749 auto mediaDesc = std::make_shared<MediaDescription>();
750 EXPECT_NE(mediaDesc, nullptr);
751 mediaDesc->attributes_.push_back(
752 "fmtp:96 profile-level-id=4D4015;"
753 "sprop-parameter-sets=Z01AFZZWCwSbCEiAAAH0AAAw1DBgAHP2AOg1cABQ,aO88gA==;packetization-mode=1");
754 mediaDesc->attributes_.push_back("cliprect:0,0,576,352");
755 mediaDesc->attributes_.push_back("rtpmap:99 X-GSMLPC/8000");
756 mediaDesc->attributes_.push_back("control:trackID=101");
757 auto ret1 = mediaDesc->GetRtpMap();
758 EXPECT_EQ(ret1, "99 X-GSMLPC/8000");
759 auto ret2 = mediaDesc->GetTrackId();
760 EXPECT_EQ(ret2, "trackID=101");
761 }
762
HWTEST_F(RtspUnitTest, RtspUnitTest_071, Function | SmallTest | Level2)763 HWTEST_F(RtspUnitTest, RtspUnitTest_071, Function | SmallTest | Level2)
764 {
765 auto mediaDesc = std::make_shared<MediaDescription>();
766 EXPECT_NE(mediaDesc, nullptr);
767 const std::string mediaLine = "video 49170/2 RTP/AVP 31";
768 auto ret1 = mediaDesc->media_.Parse(mediaLine);
769 ASSERT_TRUE(ret1);
770 mediaDesc->attributes_.push_back(
771 "fmtp:96 profile-level-id=4D4015;"
772 "sprop-parameter-sets=Z01AFZZWCwSbCEiAAAH0AAAw1DBgAHP2AOg1cABQ,aO88gA==;packetization-mode=1");
773 auto ret2 = mediaDesc->GetVideoSps();
774 EXPECT_EQ(ret2.size(), 30);
775 auto ret3 = mediaDesc->GetVideoPps();
776 EXPECT_EQ(ret3.size(), 0);
777 auto ret4 = mediaDesc->GetVideoSize();
778 EXPECT_EQ(ret4.first, 352);
779 EXPECT_EQ(ret4.second, 288);
780 }
781
HWTEST_F(RtspUnitTest, RtspUnitTest_072, Function | SmallTest | Level2)782 HWTEST_F(RtspUnitTest, RtspUnitTest_072, Function | SmallTest | Level2)
783 {
784 auto mediaDesc = std::make_shared<MediaDescription>();
785 EXPECT_NE(mediaDesc, nullptr);
786 const std::string mediaLine = "audio 49170 RTP/AVP 0";
787 auto ret1 = mediaDesc->media_.Parse(mediaLine);
788 ASSERT_TRUE(ret1);
789 mediaDesc->attributes_.push_back(
790 "fmtp:96 profile-level-id=4D4015;"
791 "sprop-parameter-sets=Z01AFZZWCwSbCEiAAAH0AAAw1DBgAHP2AOg1cABQ,aO88gA==;packetization-mode=1");
792 auto ret2 = mediaDesc->GetVideoSps();
793 EXPECT_EQ(ret2.size(), 0);
794 auto ret3 = mediaDesc->GetVideoPps();
795 EXPECT_EQ(ret3.size(), 0);
796 }
797
HWTEST_F(RtspUnitTest, RtspUnitTest_073, Function | SmallTest | Level2)798 HWTEST_F(RtspUnitTest, RtspUnitTest_073, Function | SmallTest | Level2)
799 {
800 auto mediaDesc = std::make_shared<MediaDescription>();
801 EXPECT_NE(mediaDesc, nullptr);
802 const std::string mediaLine = "audio 49170 RTP/AVP 0";
803 auto ret1 = mediaDesc->media_.Parse(mediaLine);
804 ASSERT_TRUE(ret1);
805 mediaDesc->attributes_.push_back("rtpmap:98 L16/11025/2");
806 mediaDesc->attributes_.push_back("fmtp:97 streamtype=5;profile-level-id=15; mode=AAC-hbr;"
807 " config=1308; SizeLength=13; IndexLength=3;IndexDeltaLength=3; Profile=1;");
808 auto ret2 = mediaDesc->GetAudioChannels();
809 EXPECT_EQ(ret2, 2);
810 auto ret3 = mediaDesc->GetAudioSamplingRate();
811 EXPECT_EQ(ret3, 11025);
812 auto ret4 = mediaDesc->GetAudioConfig();
813 EXPECT_EQ(ret4, "1308");
814 }
815
HWTEST_F(RtspUnitTest, RtspUnitTest_074, Function | SmallTest | Level2)816 HWTEST_F(RtspUnitTest, RtspUnitTest_074, Function | SmallTest | Level2)
817 {
818 auto mediaDesc = std::make_shared<MediaDescription>();
819 EXPECT_NE(mediaDesc, nullptr);
820 const std::string mediaLine = "video 49170/2 RTP/AVP 31";
821 auto ret1 = mediaDesc->media_.Parse(mediaLine);
822 ASSERT_TRUE(ret1);
823 mediaDesc->attributes_.push_back("rtpmap:98 L16/11025/2");
824 mediaDesc->attributes_.push_back("fmtp:97 streamtype=5;profile-level-id=15; mode=AAC-hbr;"
825 " config=1308; SizeLength=13; IndexLength=3;IndexDeltaLength=3; Profile=1;");
826 auto ret2 = mediaDesc->GetAudioChannels();
827 EXPECT_EQ(ret2, 0);
828 auto ret3 = mediaDesc->GetAudioSamplingRate();
829 EXPECT_EQ(ret3, 0);
830 auto ret4 = mediaDesc->GetAudioConfig();
831 EXPECT_EQ(ret4, "");
832 }
833
HWTEST_F(RtspUnitTest, RtspUnitTest_075, Function | SmallTest | Level2)834 HWTEST_F(RtspUnitTest, RtspUnitTest_075, Function | SmallTest | Level2)
835 {
836 auto rtspSdp = std::make_shared<RtspSdp>();
837 EXPECT_NE(rtspSdp, nullptr);
838 const std::string mediaLine = "m=video 49170/2 RTP/AVP 31 \r\n";
839 auto ret = rtspSdp->Parse(mediaLine);
840 EXPECT_EQ(ret, true);
841 }
842
HWTEST_F(RtspUnitTest, RtspUnitTest_076, Function | SmallTest | Level2)843 HWTEST_F(RtspUnitTest, RtspUnitTest_076, Function | SmallTest | Level2)
844 {
845 auto rtspSdp = std::make_shared<RtspSdp>();
846 EXPECT_NE(rtspSdp, nullptr);
847 const std::string mediaLine = "v=0\r\nb=X-YZ:128\r\no=HWPSS 3427743244 1084119141 IN IP4 127.0.0.1\r\n"
848 "s=test1.mp4\r\ni=test\r\nu=uri\r\ne=email\r\np=123456\r\nt=121212 232322\r\n"
849 "r=121212\r\nz=zone;\r\na=attr\r\nc=connection\r\n";
850 auto ret = rtspSdp->Parse(mediaLine);
851 EXPECT_EQ(ret, true);
852 auto ret1 = rtspSdp->GetOrigin();
853 EXPECT_EQ(ret1.addrType, "IP4");
854 EXPECT_EQ(ret1.netType, "IN");
855 EXPECT_EQ(ret1.sessionId, "3427743244");
856 EXPECT_EQ(ret1.sessionVersion, 1084119141);
857 EXPECT_EQ(ret1.unicastAddr, "127.0.0.1");
858 EXPECT_EQ(ret1.username, "HWPSS");
859
860 auto ret2 = rtspSdp->GetName();
861 EXPECT_EQ(ret2, "test1.mp4");
862 auto ret3 = rtspSdp->GetInfo();
863 EXPECT_EQ(ret3, "test");
864 auto ret4 = rtspSdp->GetUri();
865 EXPECT_EQ(ret4, "uri");
866 auto ret5 = rtspSdp->GetEmail();
867 EXPECT_EQ(ret5, "email");
868 auto ret6 = rtspSdp->GetPhone();
869 EXPECT_EQ(ret6, "123456");
870 auto ret7 = rtspSdp->GetConnection();
871 EXPECT_EQ(ret7, "connection");
872 auto ret8 = rtspSdp->GetBandwidth();
873 EXPECT_EQ(ret8[0], "X-YZ:128");
874 auto ret9 = rtspSdp->GetTime();
875 EXPECT_EQ(ret9.first, 121212);
876 EXPECT_EQ(ret9.second, 232322);
877 auto ret10 = rtspSdp->getAttributes();
878 EXPECT_EQ(ret10[0], "attr");
879 }
880
HWTEST_F(RtspUnitTest, RtspUnitTest_077, Function | SmallTest | Level2)881 HWTEST_F(RtspUnitTest, RtspUnitTest_077, Function | SmallTest | Level2)
882 {
883 auto rtspUrl = std::make_shared<RtspUrl>();
884 EXPECT_NE(rtspUrl, nullptr);
885 }
886
HWTEST_F(RtspUnitTest, RtspUnitTest_078, Function | SmallTest | Level2)887 HWTEST_F(RtspUnitTest, RtspUnitTest_078, Function | SmallTest | Level2)
888 {
889 const std::string url = "rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream";
890 auto rtspUrl = std::make_shared<RtspUrl>(url);
891 EXPECT_NE(rtspUrl, nullptr);
892 }
893
HWTEST_F(RtspUnitTest, RtspUnitTest_079, Function | SmallTest | Level2)894 HWTEST_F(RtspUnitTest, RtspUnitTest_079, Function | SmallTest | Level2)
895 {
896 auto rtspUrl = std::make_shared<RtspUrl>();
897 EXPECT_NE(rtspUrl, nullptr);
898 const std::string url = "rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream";
899 auto ret = rtspUrl->Parse(url);
900 EXPECT_NE(ret, false);
901 auto host = rtspUrl->GetHost();
902 EXPECT_EQ(host, "172.6.22.106");
903 auto path = rtspUrl->GetPath();
904 EXPECT_EQ(path, "/h264/ch33/main/av_stream");
905 auto port = rtspUrl->GetPort();
906 EXPECT_EQ(port, 554);
907 auto userName = rtspUrl->GetUsername();
908 EXPECT_EQ(userName, "admin");
909 auto password = rtspUrl->GetPassword();
910 EXPECT_EQ(password, "12345");
911 }
912
HWTEST_F(RtspUnitTest, RtspUnitTest_080, Function | SmallTest | Level2)913 HWTEST_F(RtspUnitTest, RtspUnitTest_080, Function | SmallTest | Level2)
914 {
915 auto rtspUrl = std::make_shared<RtspUrl>();
916 EXPECT_NE(rtspUrl, nullptr);
917 const std::string url = "";
918 auto ret = rtspUrl->Parse(url);
919 EXPECT_NE(ret, true);
920 }
921
922 } // namespace
923 } // namespace Sharing
924 } // namespace OHOS