1 /*
2  * Copyright (c) 2022 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 <gtest/gtest.h>
17 #include <iostream>
18 
19 #include "netstack_common_utils.h"
20 
21 namespace OHOS {
22 namespace NetStack {
23 namespace CommonUtils {
24 namespace {
25 using namespace testing::ext;
26 static constexpr const char SPACE = ' ';
27 static constexpr const char *STATUS_LINE_COMMA = ",";
28 static constexpr const char *STATUS_LINE_SEP = " ";
29 static constexpr const size_t STATUS_LINE_ELEM_NUM = 2;
30 } // namespace
31 
32 class NetStackCommonUtilsTest : public testing::Test {
33 public:
SetUpTestCase()34     static void SetUpTestCase() {}
35 
TearDownTestCase()36     static void TearDownTestCase() {}
37 
SetUp()38     virtual void SetUp() {}
39 
TearDown()40     virtual void TearDown() {}
41 };
42 
43 HWTEST_F(NetStackCommonUtilsTest, CommonUtils, TestSize.Level2)
44 {
45     std::string str = "The,weather,is,fine,today";
46     std::vector<std::string> subStr = Split(str, STATUS_LINE_COMMA);
47     EXPECT_STREQ(subStr[0].data(), "The");
48     EXPECT_STREQ(subStr[1].data(), "weather");
49     EXPECT_STREQ(subStr[2].data(), "is");
50     EXPECT_STREQ(subStr[3].data(), "fine");
51     EXPECT_STREQ(subStr[4].data(), "today");
52     EXPECT_EQ(subStr.size(), 5);
53 }
54 
55 HWTEST_F(NetStackCommonUtilsTest, CommonUtils1, TestSize.Level2)
56 {
57     std::string str = " The weather is fine today";
58     std::string subStr = Strip(str, SPACE);
59     EXPECT_STREQ(subStr.data(), "The weather is fine today");
60 }
61 
62 HWTEST_F(NetStackCommonUtilsTest, CommonUtils2, TestSize.Level2)
63 {
64     std::string str = "HOWDOYOUDO";
65     std::string strLower = ToLower(str);
66     EXPECT_STREQ(strLower.data(), "howdoyoudo");
67 }
68 
69 HWTEST_F(NetStackCommonUtilsTest, CommonUtils3, TestSize.Level2)
70 {
71     std::string str = "fine today";
72     std::vector<std::string> strList = Split(str, STATUS_LINE_SEP, STATUS_LINE_ELEM_NUM);
73 
74     EXPECT_STREQ(strList[0].data(), "fine");
75     EXPECT_STREQ(strList[1].data(), "today");
76     EXPECT_EQ(strList.size(), 2);
77 }
78 
79 HWTEST_F(NetStackCommonUtilsTest, CommonUtils4, TestSize.Level2)
80 {
81     std::string str = "    trim   ";
82     std::string strResult = Trim(str);
83     EXPECT_STREQ(strResult.c_str(), "trim");
84 }
85 
86 HWTEST_F(NetStackCommonUtilsTest, CommonUtils5, TestSize.Level2)
87 {
88     bool isMatch = IsMatch("www.alibaba.com", "*");
89     EXPECT_EQ(isMatch, true);
90 }
91 
92 HWTEST_F(NetStackCommonUtilsTest, CommonUtils6, TestSize.Level2)
93 {
94     bool isMatch = IsMatch("www.alibaba.com", "");
95     EXPECT_EQ(isMatch, false);
96 }
97 
98 HWTEST_F(NetStackCommonUtilsTest, CommonUtils7, TestSize.Level2)
99 {
100     bool isMatch = IsMatch("www.alibaba.com", "*.alibaba.*");
101     EXPECT_EQ(isMatch, true);
102 }
103 
104 HWTEST_F(NetStackCommonUtilsTest, CommonUtils8, TestSize.Level2)
105 {
106     bool isMatch = IsMatch("www.alibaba.com", "www.alibaba.com");
107     EXPECT_EQ(isMatch, true);
108 }
109 
110 HWTEST_F(NetStackCommonUtilsTest, CommonUtils9, TestSize.Level2)
111 {
112     bool isValid = IsRegexValid("*.alibaba.*");
113     EXPECT_EQ(isValid, true);
114 }
115 
116 HWTEST_F(NetStackCommonUtilsTest, CommonUtils10, TestSize.Level2)
117 {
118     bool isValid = IsRegexValid("*.alibaba./{*");
119     EXPECT_EQ(isValid, false);
120 }
121 
122 HWTEST_F(NetStackCommonUtilsTest, CommonUtils11, TestSize.Level2)
123 {
124     std::string hostname = GetHostnameFromURL("https://www.alibaba.com/idesk?idesk:idesk");
125     EXPECT_STREQ(hostname.c_str(), "www.alibaba.com");
126 }
127 
128 HWTEST_F(NetStackCommonUtilsTest, CommonUtils12, TestSize.Level2)
129 {
130     std::string hostname = GetHostnameFromURL("https://www.alibaba.com:8081/idesk?idesk:idesk");
131     EXPECT_STREQ(hostname.c_str(), "www.alibaba.com");
132 }
133 
134 HWTEST_F(NetStackCommonUtilsTest, CommonUtils13, TestSize.Level2)
135 {
136     std::string hostname = GetHostnameFromURL("https://www.alibaba.com?data_string");
137     EXPECT_STREQ(hostname.c_str(), "www.alibaba.com");
138 }
139 
140 HWTEST_F(NetStackCommonUtilsTest, CommonUtils14, TestSize.Level2)
141 {
142     std::string url = "https://www.alibaba.com?data_string";
143     std::string exclusions = "*.alibaba.*, *.baidu.*";
144     bool isExluded = IsHostNameExcluded(url, exclusions, ",");
145     EXPECT_EQ(isExluded, true);
146 }
147 
148 HWTEST_F(NetStackCommonUtilsTest, CommonUtils15, TestSize.Level2)
149 {
150     std::string url = "https://www.alibaba.com?data_string:abc";
151     std::string exclusions = "*.xiaomi.*, *.baidu.*";
152     bool isExluded = IsHostNameExcluded(url, exclusions, ",");
153     EXPECT_EQ(isExluded, false);
154 }
155 
156 HWTEST_F(NetStackCommonUtilsTest, CommonUtils16, TestSize.Level2)
157 {
158     std::string replacedStr = ReplaceCharacters("*alibaba*");
159     EXPECT_STREQ(replacedStr.c_str(), ".*alibaba.*");
160 }
161 
162 HWTEST_F(NetStackCommonUtilsTest, CommonUtils17, TestSize.Level2)
163 {
164     bool isEndsWith = EndsWith("alibaba", "a");
165     EXPECT_EQ(isEndsWith, true);
166 }
167 
168 HWTEST_F(NetStackCommonUtilsTest, CommonUtils18, TestSize.Level2)
169 {
170     bool isEndsWith = EndsWith("alibaba", "o");
171     EXPECT_EQ(isEndsWith, false);
172 }
173 
174 HWTEST_F(NetStackCommonUtilsTest, CommonUtils19, TestSize.Level2)
175 {
176     std::list<std::string> input = { "Hello", "World", "This", "Is", "A", "Test" };
177     const char space = ' ';
178     std::string expectedOutput = "Hello World This Is A Test";
179     std::string actualOutput = ToString(input, space);
180     EXPECT_STREQ(actualOutput.c_str(), expectedOutput.c_str());
181 }
182 
183 HWTEST_F(NetStackCommonUtilsTest, CommonUtils20, TestSize.Level2)
184 {
185     std::string input = "abcdcefcg";
186     char from = 'c';
187     char preChar = '=';
188     char nextChar = 'e';
189     std::string expectedOutput = "ab=cdcef=cg";
190     std::string actualOutput = InsertCharBefore(input, from, preChar, nextChar);
191     EXPECT_STREQ(actualOutput.c_str(), expectedOutput.c_str());
192 }
193 
194 HWTEST_F(NetStackCommonUtilsTest, CommonUtils21, TestSize.Level2)
195 {
196     std::string str = "www.alibaba.com";
197     std::string exclusions = "*.xiaomi.*, *.baidu.*";
198     std::string split = ",";
199     bool actualOutput = IsExcluded(str, exclusions, ",");
200     EXPECT_EQ(actualOutput, false);
201 }
202 
203 HWTEST_F(NetStackCommonUtilsTest, CommonUtils22, TestSize.Level2)
204 {
205     std::string str = "www.alibaba.com";
206     std::string exclusions = "*.alibaba.*, *.baidu.*";
207     bool actualOutput = IsExcluded(str, exclusions, ",");
208     EXPECT_EQ(actualOutput, true);
209 }
210 
211 HWTEST_F(NetStackCommonUtilsTest, CommonUtils23, TestSize.Level2)
212 {
213     std::string ipv4Valid = "192.168.0.1";
214     bool isValidIPV4Valid = IsValidIPV4(ipv4Valid);
215     EXPECT_EQ(isValidIPV4Valid, true);
216 }
217 
218 HWTEST_F(NetStackCommonUtilsTest, CommonUtils24, TestSize.Level2)
219 {
220     std::string ipv4Invalid = "256.0.0.1";
221     bool isValidIPV4Invalid = IsValidIPV4(ipv4Invalid);
222     EXPECT_EQ(isValidIPV4Invalid, false);
223 }
224 
225 HWTEST_F(NetStackCommonUtilsTest, CommonUtils25, TestSize.Level2)
226 {
227     std::string ipv6Valid = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
228     bool isValidIPV6Valid = IsValidIPV6(ipv6Valid);
229     EXPECT_EQ(isValidIPV6Valid, true);
230 }
231 
232 HWTEST_F(NetStackCommonUtilsTest, CommonUtils26, TestSize.Level2)
233 {
234     std::string ipv6Invalid = "2001:0db8:85a3::8a2e:0370:7334";
235     bool isValidIPV6Invalid = IsValidIPV6(ipv6Invalid);
236     EXPECT_EQ(isValidIPV6Invalid, true);
237 }
238 
239 HWTEST_F(NetStackCommonUtilsTest, CommonUtils27, TestSize.Level2)
240 {
241     std::string ipV6Invalid = "invalid ipv6 string";
242     bool isValidIPV6Invalid = IsValidIPV6(ipV6Invalid);
243     EXPECT_EQ(isValidIPV6Invalid, false);
244 }
245 
246 HWTEST_F(NetStackCommonUtilsTest, CommonUtils28, TestSize.Level2)
247 {
248     std::string ipv6Invalid = "2001:0db8:85a3::8a2e:0370:7334";
249     bool isValidIPV6Invalid = IsValidIPV6(ipv6Invalid);
250     EXPECT_EQ(isValidIPV6Invalid, true);
251 }
252 
253 HWTEST_F(NetStackCommonUtilsTest, CommonUtils29, TestSize.Level2)
254 {
255     std::string ipv6Ip = "2001:0db8:85a3::8a2e:0370:7334";
256     std::string actualOutput = AnonymizeIp(ipv6Ip);
257     std::string expectedOutput = "2001:0db8:****::****:****:****";
258     EXPECT_STREQ(actualOutput.c_str(), expectedOutput.c_str());
259 }
260 
261 HWTEST_F(NetStackCommonUtilsTest, CommonUtils30, TestSize.Level2)
262 {
263     std::string ipv4Ips = "8.8.8.8";
264     std::string actualOutput = AnonymizeIp(ipv4Ips);
265     std::string expectedOutput = "8.8.*.*";
266     EXPECT_STREQ(actualOutput.c_str(), expectedOutput.c_str());
267 }
268 
269 HWTEST_F(NetStackCommonUtilsTest, CommonUtils31, TestSize.Level2)
270 {
271     std::string bundleName;
272     std::string url = "https://www.example.com";
273     auto ret = IsAllowedHostname(bundleName, DOMAIN_TYPE_HTTP_REQUEST, url);
274     EXPECT_TRUE(ret);
275 }
276 
277 HWTEST_F(NetStackCommonUtilsTest, CommonUtils32, TestSize.Level2)
278 {
279     std::string bundleName;
280     auto ret = IsAtomicService(bundleName);
281     EXPECT_FALSE(ret);
282 }
283 
284 HWTEST_F(NetStackCommonUtilsTest, GetProtocolFromURLTest001, TestSize.Level2)
285 {
286     std::string protocol = GetProtocolFromURL("https:////www.example.com?data_string");
287     EXPECT_STREQ(protocol.c_str(), "https");
288 }
289 
290 HWTEST_F(NetStackCommonUtilsTest, GetProtocolFromURLTest002, TestSize.Level2)
291 {
292     std::string protocol = GetProtocolFromURL("ws:////www.example.com?data_string");
293     EXPECT_STREQ(protocol.c_str(), "ws");
294 }
295 
296 HWTEST_F(NetStackCommonUtilsTest, GetProtocolFromURLTest003, TestSize.Level2)
297 {
298     std::string protocol = GetProtocolFromURL("www.example.com?data_string");
299     EXPECT_STREQ(protocol.c_str(), "");
300 }
301 
302 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest001, TestSize.Level2)
303 {
304     std::string port = GetPortFromURL("https://www.example.com?data_string");
305     EXPECT_STREQ(port.c_str(), "");
306 }
307 
308 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest002, TestSize.Level2)
309 {
310     std::string port = GetPortFromURL("http://www.example.com?data_string");
311     EXPECT_STREQ(port.c_str(), "");
312 }
313 
314 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest003, TestSize.Level2)
315 {
316     std::string port = GetPortFromURL("https://www.example.com:9984?data_string");
317     EXPECT_STREQ(port.c_str(), "9984");
318 }
319 
320 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest004, TestSize.Level2)
321 {
322     std::string port = GetPortFromURL("www.example.com:9984?data_string");
323     EXPECT_STREQ(port.c_str(), "9984");
324 }
325 
326 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest005, TestSize.Level2)
327 {
328     std::string port = GetPortFromURL("www.example.com?data_string");
329     EXPECT_STREQ(port.c_str(), "");
330 }
331 
332 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest006, TestSize.Level2)
333 {
334     std::string port = GetPortFromURL("https://www.example.com?k_string=data_string:234");
335     EXPECT_STREQ(port.c_str(), "");
336 }
337 
338 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest007, TestSize.Level2)
339 {
340     std::string port = GetPortFromURL("https://www.example.com/path:data_string:234");
341     EXPECT_STREQ(port.c_str(), "");
342     }
343 
344 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest008, TestSize.Level2)
345 {
346     std::string port = GetPortFromURL("https://www.example.com:8989/path:path2?k_string=data_string:234");
347     EXPECT_STREQ(port.c_str(), "8989");
348 }
349 
350 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest009, TestSize.Level2)
351 {
352     std::string port = GetPortFromURL("https://www.example.com/path:path2?k_string=data_string:234");
353     EXPECT_STREQ(port.c_str(), "");
354 }
355 
356 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest010, TestSize.Level2)
357 {
358     std::string port = GetPortFromURL("https://www.example.com:");
359     EXPECT_STREQ(port.c_str(), "");
360 }
361 
362 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest011, TestSize.Level2)
363 {
364     std::string port = GetPortFromURL("https://www.example.com:/path?k_string_data_string");
365     EXPECT_STREQ(port.c_str(), "");
366 }
367 
368 HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest012, TestSize.Level2)
369 {
370     std::string port = GetPortFromURL("https://www.example.com:?k_string_data_string:43:data_string");
371     EXPECT_STREQ(port.c_str(), "");
372 }
373 
374 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest001, TestSize.Level2)
375 {
376     std::string hostname = GetHostnameWithProtocolAndPortFromURL("https:////www.example.com?data_string");
377     EXPECT_STREQ(hostname.c_str(), "https://www.example.com");
378 }
379 
380 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest002, TestSize.Level2)
381 {
382     std::string hostname = GetHostnameWithProtocolAndPortFromURL("https://");
383     EXPECT_STREQ(hostname.c_str(), "");
384 }
385 
386 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest003, TestSize.Level2)
387 {
388     std::string hostname = GetHostnameWithProtocolAndPortFromURL("http://www.example.com/for/test");
389     EXPECT_STREQ(hostname.c_str(), "http://www.example.com");
390 }
391 
392 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest004, TestSize.Level2)
393 {
394     std::string hostname = GetHostnameWithProtocolAndPortFromURL("www.example.com/for/test");
395     EXPECT_STREQ(hostname.c_str(), "www.example.com");
396 }
397 
398 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest005, TestSize.Level2)
399 {
400     std::string hostname = GetHostnameWithProtocolAndPortFromURL("ws://www.example.com/for/test");
401     EXPECT_STREQ(hostname.c_str(), "ws://www.example.com");
402 }
403 
404 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest006, TestSize.Level2)
405 {
406     std::string hostname = GetHostnameWithProtocolAndPortFromURL("wss://www.example.com/for/test");
407     EXPECT_STREQ(hostname.c_str(), "wss://www.example.com");
408 }
409 
410 HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest007, TestSize.Level2)
411 {
412     std::string hostname = GetHostnameWithProtocolAndPortFromURL("wss://www.example.com:8989/for/test");
413     EXPECT_STREQ(hostname.c_str(), "wss://www.example.com");
414 }
415 
416 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL01, TestSize.Level2)
417 {
418     std::string hostname = GetHostnameFromURL("https:////www.example.com?data_string");
419     EXPECT_STREQ(hostname.c_str(), "www.example.com");
420 }
421 
422 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL02, TestSize.Level2)
423 {
424     std::string hostname = GetHostnameFromURL(R"(https:/\\\\\\///\\/www.example.com?data_string)");
425     EXPECT_STREQ(hostname.c_str(), "www.example.com");
426 }
427 
428 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL03, TestSize.Level2)
429 {
430     std::string hostname = GetHostnameFromURL("");
431     EXPECT_STREQ(hostname.c_str(), "");
432 }
433 
434 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL04, TestSize.Level2)
435 {
436     std::string hostname = GetHostnameFromURL("https://");
437     EXPECT_STREQ(hostname.c_str(), "");
438 }
439 
440 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL05, TestSize.Level2)
441 {
442     std::string hostname = GetHostnameFromURL("https://www.example.com:8080");
443     EXPECT_STREQ(hostname.c_str(), "www.example.com");
444 }
445 
446 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL06, TestSize.Level2)
447 {
448     std::string hostname = GetHostnameFromURL("https://www.example.com/for/test");
449     EXPECT_STREQ(hostname.c_str(), "www.example.com");
450 }
451 
452 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL07, TestSize.Level2)
453 {
454     std::string hostname = GetHostnameFromURL(R"(https:/\\\\\)");
455     EXPECT_STREQ(hostname.c_str(), "");
456 }
457 
458 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL08, TestSize.Level2)
459 {
460     std::string hostname = GetHostnameFromURL(R"(https://www.example.com/watch/80033982:sadsda?dd\\\df)");
461     EXPECT_STREQ(hostname.c_str(), "www.example.com");
462 }
463 
464 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL09, TestSize.Level2)
465 {
466     std::string hostname = GetHostnameFromURL(R"(https://www.example.com:8080/watch/80033982:sadsda?dd\\\df)");
467     EXPECT_STREQ(hostname.c_str(), "www.example.com");
468 }
469 
470 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL10, TestSize.Level2)
471 {
472     std::string url = "example.com:98421/dsdsd?dsdsds";
473     std::string hostname = GetHostnameFromURL(url);
474     EXPECT_STREQ(hostname.c_str(), "example.com");
475 }
476 
477 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL11, TestSize.Level2)
478 {
479     std::string url = R"(\/\/\/\/\/\/\/\////\)";
480     std::string hostname = GetHostnameFromURL(url);
481     EXPECT_STREQ(hostname.c_str(), "");
482 }
483 
484 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL12, TestSize.Level2)
485 {
486     std::string url = "http://www.example.com";
487     std::string hostname = GetHostnameFromURL(url);
488     EXPECT_STREQ(hostname.c_str(), "www.example.com");
489 }
490 
491 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL13, TestSize.Level2)
492 {
493     std::string url = "https://www.example-test.com";
494     std::string hostname = GetHostnameFromURL(url);
495     EXPECT_STREQ(hostname.c_str(), "www.example-test.com");
496 }
497 
498 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL14, TestSize.Level2)
499 {
500     std::string url = "ftp://www.baidu-test.com";
501     std::string hostname = GetHostnameFromURL(url);
502     EXPECT_STREQ(hostname.c_str(), "www.baidu-test.com");
503 }
504 
505 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL15, TestSize.Level2)
506 {
507     std::string url = R"(\\\/\/\/\/\/\///\/\\\:80808)";
508     std::string hostname = GetHostnameFromURL(url);
509     EXPECT_STREQ(hostname.c_str(), "");
510 }
511 
512 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL16, TestSize.Level2)
513 {
514     std::string url = R"(?????DSdsafhu34r3urihiu45t794\\56y&^&*%$^&$&*&^%*&((*)))";
515     std::string hostname = GetHostnameFromURL(url);
516     EXPECT_STREQ(hostname.c_str(), "");
517 }
518 
519 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL17, TestSize.Level2)
520 {
521     std::string url = R"(16456465221-*/*/\)";
522     std::string hostname = GetHostnameFromURL(url);
523     EXPECT_STREQ(hostname.c_str(), "16456465221-*");
524 }
525 
526 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL18, TestSize.Level2)
527 {
528     std::string url = "czvxkhcvjhkgfidkh";
529     std::string hostname = GetHostnameFromURL(url);
530     EXPECT_STREQ(hostname.c_str(), "czvxkhcvjhkgfidkh");
531 }
532 
533 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL19, TestSize.Level2)
534 {
535     std::string url = "hcd   dfdf4efd446576";
536     std::string hostname = GetHostnameFromURL(url);
537     EXPECT_STREQ(hostname.c_str(), "hcd   dfdf4efd446576");
538 }
539 
540 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL20, TestSize.Level2)
541 {
542     std::string url = " ";
543     std::string hostname = GetHostnameFromURL(url);
544     EXPECT_STREQ(hostname.c_str(), " ");
545 }
546 
547 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL21, TestSize.Level2)
548 {
549     std::string url = "                             ";
550     std::string hostname = GetHostnameFromURL(url);
551     EXPECT_STREQ(hostname.c_str(), "                             ");
552 }
553 
554 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL22, TestSize.Level2)
555 {
556     std::string url = R"(dsd!!!@@#$$%%%^df\\)";
557     std::string hostname = GetHostnameFromURL(url);
558     EXPECT_STREQ(hostname.c_str(), "dsd!!!@@#$$%%%^df");
559 }
560 
561 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL23, TestSize.Level2)
562 {
563     std::string url = "http://example.com";
564     std::string hostname = GetHostnameFromURL(url);
565     EXPECT_STREQ(hostname.c_str(), "example.com");
566 }
567 
568 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL24, TestSize.Level2)
569 {
570     std::string url = "example.com";
571     std::string hostname = GetHostnameFromURL(url);
572     EXPECT_STREQ(hostname.c_str(), "example.com");
573 }
574 
575 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL25, TestSize.Level2)
576 {
577     std::string url = "https:////??::||///stackoverflow.com";
578     std::string hostname = GetHostnameFromURL(url);
579     EXPECT_STREQ(hostname.c_str(), "");
580 }
581 
582 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL26, TestSize.Level2)
583 {
584     std::string url = R"(https://\\\154545\\\stackoverflow.com)";
585     std::string hostname = GetHostnameFromURL(url);
586     EXPECT_STREQ(hostname.c_str(), "154545");
587 }
588 
589 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL27, TestSize.Level2)
590 {
591     std::string url = R"(https://\\\\\\////\\\\stackoverflow.com)";
592     std::string hostname = GetHostnameFromURL(url);
593     EXPECT_STREQ(hostname.c_str(), "stackoverflow.com");
594 }
595 
596 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL28, TestSize.Level2)
597 {
598     std::string url = R"(https:/\151\\\\23243435)";
599     std::string hostname = GetHostnameFromURL(url);
600     EXPECT_STREQ(hostname.c_str(), "151");
601 }
602 
603 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL29, TestSize.Level2)
604 {
605     std::string url = R"(https:\\)";
606     std::string hostname = GetHostnameFromURL(url);
607     EXPECT_STREQ(hostname.c_str(), "");
608 }
609 
610 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL30, TestSize.Level2)
611 {
612     std::string url = R"(""""\\"""""""""""""")";
613     std::string hostname = GetHostnameFromURL(url);
614     EXPECT_STREQ(hostname.c_str(), R"("""")");
615 }
616 
617 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL31, TestSize.Level2)
618 {
619     std::string url = ":::::::dfsfd::::::::::::";
620     std::string hostname = GetHostnameFromURL(url);
621     EXPECT_STREQ(hostname.c_str(), "");
622 }
623 
624 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL32, TestSize.Level2)
625 {
626     std::string url = "1--**--4545";
627     std::string hostname = GetHostnameFromURL(url);
628     EXPECT_STREQ(hostname.c_str(), "1--**--4545");
629 }
630 
631 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL33, TestSize.Level2)
632 {
633     std::string url = R"( https:\)";
634     std::string hostname = GetHostnameFromURL(url);
635     EXPECT_STREQ(hostname.c_str(), " https");
636 }
637 
638 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL34, TestSize.Level2)
639 {
640     std::string url = " https:////";
641     std::string hostname = GetHostnameFromURL(url);
642     EXPECT_STREQ(hostname.c_str(), "");
643 }
644 
645 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL35, TestSize.Level2)
646 {
647     std::string url = " saasa";
648     std::string hostname = GetHostnameFromURL(url);
649     EXPECT_STREQ(hostname.c_str(), " saasa");
650 }
651 
652 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL36, TestSize.Level2)
653 {
654     std::string url = R"(|||///\\\)";
655     std::string hostname = GetHostnameFromURL(url);
656     EXPECT_STREQ(hostname.c_str(), "|||");
657 }
658 
659 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL37, TestSize.Level2)
660 {
661     std::string url = "-- fdsf";
662     std::string hostname = GetHostnameFromURL(url);
663     EXPECT_STREQ(hostname.c_str(), "-- fdsf");
664 }
665 
666 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL38, TestSize.Level2)
667 {
668     std::string url = "xnmku:9090?(sdfgjhg)";
669     std::string hostname = GetHostnameFromURL(url);
670     EXPECT_STREQ(hostname.c_str(), "xnmku");
671 }
672 
673 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL39, TestSize.Level2)
674 {
675     std::string url = "oooxxx111-===";
676     std::string hostname = GetHostnameFromURL(url);
677     EXPECT_STREQ(hostname.c_str(), "oooxxx111-===");
678 }
679 
680 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL40, TestSize.Level2)
681 {
682     std::string url = R"($^%(_*_()*+_)(YU(\_)))";
683     std::string hostname = GetHostnameFromURL(url);
684     EXPECT_STREQ(hostname.c_str(), "$^%(_*_()*+_)(YU(");
685 }
686 
687 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL41, TestSize.Level2)
688 {
689     std::string url = R"(万维网.com:9090\)";
690     std::string hostname = GetHostnameFromURL(url);
691     EXPECT_STREQ(hostname.c_str(), "万维网.com");
692 }
693 
694 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL42, TestSize.Level2)
695 {
696     std::string url = R"(https://\\\中文测试)";
697     std::string hostname = GetHostnameFromURL(url);
698     EXPECT_STREQ(hostname.c_str(), "中文测试");
699 }
700 
701 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL43, TestSize.Level2)
702 {
703     std::string url = R"(http://\\\中文测试?中文数据)";
704     std::string hostname = GetHostnameFromURL(url);
705     EXPECT_STREQ(hostname.c_str(), "中文测试");
706 }
707 
708 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL44, TestSize.Level2)
709 {
710     std::string url = R"(http://\\\中文测试:8080?中文数据)";
711     std::string hostname = GetHostnameFromURL(url);
712     EXPECT_STREQ(hostname.c_str(), "中文测试:8080");
713 }
714 
715 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL45, TestSize.Level2)
716 {
717     std::string url = R"(http:::/\\\中文测试:8080?中文数据)";
718     std::string hostname = GetHostnameFromURL(url);
719     EXPECT_STREQ(hostname.c_str(), "http:::");
720 }
721 
722 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL46, TestSize.Level2)
723 {
724     std::string url = R"(()“”{}P{{}:\、、、})";
725     std::string hostname = GetHostnameFromURL(url);
726     EXPECT_STREQ(hostname.c_str(), "()“”{}P{{}");
727 }
728 
729 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL47, TestSize.Level2)
730 {
731     std::string url = R"(()“”{}P{http://{}:\、、、})";
732     std::string hostname = GetHostnameFromURL(url);
733     EXPECT_STREQ(hostname.c_str(), "{}");
734 }
735 
736 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL48, TestSize.Level2)
737 {
738     std::string url = R"(()“===\\///?=”{}P{{的‘;‘’;’}:\、、、})";
739     std::string hostname = GetHostnameFromURL(url);
740     EXPECT_STREQ(hostname.c_str(), "()“===");
741 }
742 
743 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL49, TestSize.Level2)
744 {
745     std::string url = R"(()“”{}P{{;‘k:’}:\、、、})";
746     std::string hostname = GetHostnameFromURL(url);
747     EXPECT_STREQ(hostname.c_str(), "()“”{}P{{;‘k");
748 }
749 
750 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL50, TestSize.Level2)
751 {
752     std::string url = R"(()“”{}P{0%%%VVV{}:\、、、})";
753     std::string hostname = GetHostnameFromURL(url);
754     EXPECT_STREQ(hostname.c_str(), "()“”{}P{0%%%VVV{}");
755 }
756 } // namespace CommonUtils
757 } // namespace NetStack
758 } // namespace OHOS