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