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
21namespace OHOS {
22namespace NetStack {
23namespace CommonUtils {
24namespace {
25using namespace testing::ext;
26static constexpr const char SPACE = ' ';
27static constexpr const char *STATUS_LINE_COMMA = ",";
28static constexpr const char *STATUS_LINE_SEP = " ";
29static constexpr const size_t STATUS_LINE_ELEM_NUM = 2;
30} // namespace
31
32class NetStackCommonUtilsTest : public testing::Test {
33public:
34    static void SetUpTestCase() {}
35
36    static void TearDownTestCase() {}
37
38    virtual void SetUp() {}
39
40    virtual void TearDown() {}
41};
42
43HWTEST_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
55HWTEST_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
62HWTEST_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
69HWTEST_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
79HWTEST_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
86HWTEST_F(NetStackCommonUtilsTest, CommonUtils5, TestSize.Level2)
87{
88    bool isMatch = IsMatch("www.alibaba.com", "*");
89    EXPECT_EQ(isMatch, true);
90}
91
92HWTEST_F(NetStackCommonUtilsTest, CommonUtils6, TestSize.Level2)
93{
94    bool isMatch = IsMatch("www.alibaba.com", "");
95    EXPECT_EQ(isMatch, false);
96}
97
98HWTEST_F(NetStackCommonUtilsTest, CommonUtils7, TestSize.Level2)
99{
100    bool isMatch = IsMatch("www.alibaba.com", "*.alibaba.*");
101    EXPECT_EQ(isMatch, true);
102}
103
104HWTEST_F(NetStackCommonUtilsTest, CommonUtils8, TestSize.Level2)
105{
106    bool isMatch = IsMatch("www.alibaba.com", "www.alibaba.com");
107    EXPECT_EQ(isMatch, true);
108}
109
110HWTEST_F(NetStackCommonUtilsTest, CommonUtils9, TestSize.Level2)
111{
112    bool isValid = IsRegexValid("*.alibaba.*");
113    EXPECT_EQ(isValid, true);
114}
115
116HWTEST_F(NetStackCommonUtilsTest, CommonUtils10, TestSize.Level2)
117{
118    bool isValid = IsRegexValid("*.alibaba./{*");
119    EXPECT_EQ(isValid, false);
120}
121
122HWTEST_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
128HWTEST_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
134HWTEST_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
140HWTEST_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
148HWTEST_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
156HWTEST_F(NetStackCommonUtilsTest, CommonUtils16, TestSize.Level2)
157{
158    std::string replacedStr = ReplaceCharacters("*alibaba*");
159    EXPECT_STREQ(replacedStr.c_str(), ".*alibaba.*");
160}
161
162HWTEST_F(NetStackCommonUtilsTest, CommonUtils17, TestSize.Level2)
163{
164    bool isEndsWith = EndsWith("alibaba", "a");
165    EXPECT_EQ(isEndsWith, true);
166}
167
168HWTEST_F(NetStackCommonUtilsTest, CommonUtils18, TestSize.Level2)
169{
170    bool isEndsWith = EndsWith("alibaba", "o");
171    EXPECT_EQ(isEndsWith, false);
172}
173
174HWTEST_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
183HWTEST_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
194HWTEST_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
203HWTEST_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
211HWTEST_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
218HWTEST_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
225HWTEST_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
232HWTEST_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
239HWTEST_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
246HWTEST_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
253HWTEST_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
261HWTEST_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
269HWTEST_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
277HWTEST_F(NetStackCommonUtilsTest, CommonUtils32, TestSize.Level2)
278{
279    std::string bundleName;
280    auto ret = IsAtomicService(bundleName);
281    EXPECT_FALSE(ret);
282}
283
284HWTEST_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
290HWTEST_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
296HWTEST_F(NetStackCommonUtilsTest, GetProtocolFromURLTest003, TestSize.Level2)
297{
298    std::string protocol = GetProtocolFromURL("www.example.com?data_string");
299    EXPECT_STREQ(protocol.c_str(), "");
300}
301
302HWTEST_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
308HWTEST_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
314HWTEST_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
320HWTEST_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
326HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest005, TestSize.Level2)
327{
328    std::string port = GetPortFromURL("www.example.com?data_string");
329    EXPECT_STREQ(port.c_str(), "");
330}
331
332HWTEST_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
338HWTEST_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
344HWTEST_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
350HWTEST_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
356HWTEST_F(NetStackCommonUtilsTest, GetPortFromURLTest010, TestSize.Level2)
357{
358    std::string port = GetPortFromURL("https://www.example.com:");
359    EXPECT_STREQ(port.c_str(), "");
360}
361
362HWTEST_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
368HWTEST_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
374HWTEST_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
380HWTEST_F(NetStackCommonUtilsTest, GetHostnameWithProtocolAndPortFromURLTest002, TestSize.Level2)
381{
382    std::string hostname = GetHostnameWithProtocolAndPortFromURL("https://");
383    EXPECT_STREQ(hostname.c_str(), "");
384}
385
386HWTEST_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
392HWTEST_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
398HWTEST_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
404HWTEST_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
410HWTEST_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
416HWTEST_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
422HWTEST_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
428HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL03, TestSize.Level2)
429{
430    std::string hostname = GetHostnameFromURL("");
431    EXPECT_STREQ(hostname.c_str(), "");
432}
433
434HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL04, TestSize.Level2)
435{
436    std::string hostname = GetHostnameFromURL("https://");
437    EXPECT_STREQ(hostname.c_str(), "");
438}
439
440HWTEST_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
446HWTEST_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
452HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL07, TestSize.Level2)
453{
454    std::string hostname = GetHostnameFromURL(R"(https:/\\\\\)");
455    EXPECT_STREQ(hostname.c_str(), "");
456}
457
458HWTEST_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
464HWTEST_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
470HWTEST_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
477HWTEST_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
484HWTEST_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
491HWTEST_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
498HWTEST_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
505HWTEST_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
512HWTEST_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
519HWTEST_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
526HWTEST_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
533HWTEST_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
540HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL20, TestSize.Level2)
541{
542    std::string url = " ";
543    std::string hostname = GetHostnameFromURL(url);
544    EXPECT_STREQ(hostname.c_str(), " ");
545}
546
547HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL21, TestSize.Level2)
548{
549    std::string url = "                             ";
550    std::string hostname = GetHostnameFromURL(url);
551    EXPECT_STREQ(hostname.c_str(), "                             ");
552}
553
554HWTEST_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
561HWTEST_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
568HWTEST_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
575HWTEST_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
582HWTEST_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
589HWTEST_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
596HWTEST_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
603HWTEST_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
610HWTEST_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
617HWTEST_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
624HWTEST_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
631HWTEST_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
638HWTEST_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
645HWTEST_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
652HWTEST_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
659HWTEST_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
666HWTEST_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
673HWTEST_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
680HWTEST_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
687HWTEST_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
694HWTEST_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
701HWTEST_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
708HWTEST_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
715HWTEST_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
722HWTEST_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
729HWTEST_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
736HWTEST_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
743HWTEST_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
750HWTEST_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