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, GetHostnameFromURL01, TestSize.Level2) 270 { 271 std::string hostname = GetHostnameFromURL("https:////www.example.com?data_string"); 272 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 273 } 274 275 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL02, TestSize.Level2) 276 { 277 std::string hostname = GetHostnameFromURL(R"(https:/\\\\\\///\\/www.example.com?data_string)"); 278 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 279 } 280 281 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL03, TestSize.Level2) 282 { 283 std::string hostname = GetHostnameFromURL(""); 284 EXPECT_STREQ(hostname.c_str(), ""); 285 } 286 287 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL04, TestSize.Level2) 288 { 289 std::string hostname = GetHostnameFromURL("https://"); 290 EXPECT_STREQ(hostname.c_str(), ""); 291 } 292 293 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL05, TestSize.Level2) 294 { 295 std::string hostname = GetHostnameFromURL("https://www.example.com:8080"); 296 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 297 } 298 299 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL06, TestSize.Level2) 300 { 301 std::string hostname = GetHostnameFromURL("https://www.example.com/for/test"); 302 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 303 } 304 305 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL07, TestSize.Level2) 306 { 307 std::string hostname = GetHostnameFromURL(R"(https:/\\\\\)"); 308 EXPECT_STREQ(hostname.c_str(), ""); 309 } 310 311 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL08, TestSize.Level2) 312 { 313 std::string hostname = GetHostnameFromURL(R"(https://www.example.com/watch/80033982:sadsda?dd\\\df)"); 314 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 315 } 316 317 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL09, TestSize.Level2) 318 { 319 std::string hostname = GetHostnameFromURL(R"(https://www.example.com:8080/watch/80033982:sadsda?dd\\\df)"); 320 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 321 } 322 323 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL10, TestSize.Level2) 324 { 325 std::string url = "example.com:98421/dsdsd?dsdsds"; 326 std::string hostname = GetHostnameFromURL(url); 327 EXPECT_STREQ(hostname.c_str(), "example.com"); 328 } 329 330 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL11, TestSize.Level2) 331 { 332 std::string url = R"(\/\/\/\/\/\/\/\////\)"; 333 std::string hostname = GetHostnameFromURL(url); 334 EXPECT_STREQ(hostname.c_str(), ""); 335 } 336 337 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL12, TestSize.Level2) 338 { 339 std::string url = "http://www.example.com"; 340 std::string hostname = GetHostnameFromURL(url); 341 EXPECT_STREQ(hostname.c_str(), "www.example.com"); 342 } 343 344 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL13, TestSize.Level2) 345 { 346 std::string url = "https://www.example-test.com"; 347 std::string hostname = GetHostnameFromURL(url); 348 EXPECT_STREQ(hostname.c_str(), "www.example-test.com"); 349 } 350 351 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL14, TestSize.Level2) 352 { 353 std::string url = "ftp://www.baidu-test.com"; 354 std::string hostname = GetHostnameFromURL(url); 355 EXPECT_STREQ(hostname.c_str(), "www.baidu-test.com"); 356 } 357 358 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL15, TestSize.Level2) 359 { 360 std::string url = R"(\\\/\/\/\/\/\///\/\\\:80808)"; 361 std::string hostname = GetHostnameFromURL(url); 362 EXPECT_STREQ(hostname.c_str(), ""); 363 } 364 365 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL16, TestSize.Level2) 366 { 367 std::string url = R"(?????DSdsafhu34r3urihiu45t794\\56y&^&*%$^&$&*&^%*&((*)))"; 368 std::string hostname = GetHostnameFromURL(url); 369 EXPECT_STREQ(hostname.c_str(), ""); 370 } 371 372 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL17, TestSize.Level2) 373 { 374 std::string url = R"(16456465221-*/*/\)"; 375 std::string hostname = GetHostnameFromURL(url); 376 EXPECT_STREQ(hostname.c_str(), "16456465221-*"); 377 } 378 379 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL18, TestSize.Level2) 380 { 381 std::string url = "czvxkhcvjhkgfidkh"; 382 std::string hostname = GetHostnameFromURL(url); 383 EXPECT_STREQ(hostname.c_str(), "czvxkhcvjhkgfidkh"); 384 } 385 386 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL19, TestSize.Level2) 387 { 388 std::string url = "hcd dfdf4efd446576"; 389 std::string hostname = GetHostnameFromURL(url); 390 EXPECT_STREQ(hostname.c_str(), "hcd dfdf4efd446576"); 391 } 392 393 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL20, TestSize.Level2) 394 { 395 std::string url = " "; 396 std::string hostname = GetHostnameFromURL(url); 397 EXPECT_STREQ(hostname.c_str(), " "); 398 } 399 400 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL21, TestSize.Level2) 401 { 402 std::string url = " "; 403 std::string hostname = GetHostnameFromURL(url); 404 EXPECT_STREQ(hostname.c_str(), " "); 405 } 406 407 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL22, TestSize.Level2) 408 { 409 std::string url = R"(dsd!!!@@#$$%%%^df\\)"; 410 std::string hostname = GetHostnameFromURL(url); 411 EXPECT_STREQ(hostname.c_str(), "dsd!!!@@#$$%%%^df"); 412 } 413 414 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL23, TestSize.Level2) 415 { 416 std::string url = "http://example.com"; 417 std::string hostname = GetHostnameFromURL(url); 418 EXPECT_STREQ(hostname.c_str(), "example.com"); 419 } 420 421 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL24, TestSize.Level2) 422 { 423 std::string url = "example.com"; 424 std::string hostname = GetHostnameFromURL(url); 425 EXPECT_STREQ(hostname.c_str(), "example.com"); 426 } 427 428 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL25, TestSize.Level2) 429 { 430 std::string url = "https:////??::||///stackoverflow.com"; 431 std::string hostname = GetHostnameFromURL(url); 432 EXPECT_STREQ(hostname.c_str(), ""); 433 } 434 435 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL26, TestSize.Level2) 436 { 437 std::string url = R"(https://\\\154545\\\stackoverflow.com)"; 438 std::string hostname = GetHostnameFromURL(url); 439 EXPECT_STREQ(hostname.c_str(), "154545"); 440 } 441 442 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL27, TestSize.Level2) 443 { 444 std::string url = R"(https://\\\\\\////\\\\stackoverflow.com)"; 445 std::string hostname = GetHostnameFromURL(url); 446 EXPECT_STREQ(hostname.c_str(), "stackoverflow.com"); 447 } 448 449 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL28, TestSize.Level2) 450 { 451 std::string url = R"(https:/\151\\\\23243435)"; 452 std::string hostname = GetHostnameFromURL(url); 453 EXPECT_STREQ(hostname.c_str(), "151"); 454 } 455 456 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL29, TestSize.Level2) 457 { 458 std::string url = R"(https:\\)"; 459 std::string hostname = GetHostnameFromURL(url); 460 EXPECT_STREQ(hostname.c_str(), ""); 461 } 462 463 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL30, TestSize.Level2) 464 { 465 std::string url = R"(""""\\"""""""""""""")"; 466 std::string hostname = GetHostnameFromURL(url); 467 EXPECT_STREQ(hostname.c_str(), R"("""")"); 468 } 469 470 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL31, TestSize.Level2) 471 { 472 std::string url = ":::::::dfsfd::::::::::::"; 473 std::string hostname = GetHostnameFromURL(url); 474 EXPECT_STREQ(hostname.c_str(), ""); 475 } 476 477 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL32, TestSize.Level2) 478 { 479 std::string url = "1--**--4545"; 480 std::string hostname = GetHostnameFromURL(url); 481 EXPECT_STREQ(hostname.c_str(), "1--**--4545"); 482 } 483 484 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL33, TestSize.Level2) 485 { 486 std::string url = R"( https:\)"; 487 std::string hostname = GetHostnameFromURL(url); 488 EXPECT_STREQ(hostname.c_str(), " https"); 489 } 490 491 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL34, TestSize.Level2) 492 { 493 std::string url = " https:////"; 494 std::string hostname = GetHostnameFromURL(url); 495 EXPECT_STREQ(hostname.c_str(), ""); 496 } 497 498 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL35, TestSize.Level2) 499 { 500 std::string url = " saasa"; 501 std::string hostname = GetHostnameFromURL(url); 502 EXPECT_STREQ(hostname.c_str(), " saasa"); 503 } 504 505 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL36, TestSize.Level2) 506 { 507 std::string url = R"(|||///\\\)"; 508 std::string hostname = GetHostnameFromURL(url); 509 EXPECT_STREQ(hostname.c_str(), "|||"); 510 } 511 512 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL37, TestSize.Level2) 513 { 514 std::string url = "-- fdsf"; 515 std::string hostname = GetHostnameFromURL(url); 516 EXPECT_STREQ(hostname.c_str(), "-- fdsf"); 517 } 518 519 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL38, TestSize.Level2) 520 { 521 std::string url = "xnmku:9090?(sdfgjhg)"; 522 std::string hostname = GetHostnameFromURL(url); 523 EXPECT_STREQ(hostname.c_str(), "xnmku"); 524 } 525 526 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL39, TestSize.Level2) 527 { 528 std::string url = "oooxxx111-==="; 529 std::string hostname = GetHostnameFromURL(url); 530 EXPECT_STREQ(hostname.c_str(), "oooxxx111-==="); 531 } 532 533 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL40, TestSize.Level2) 534 { 535 std::string url = R"($^%(_*_()*+_)(YU(\_)))"; 536 std::string hostname = GetHostnameFromURL(url); 537 EXPECT_STREQ(hostname.c_str(), "$^%(_*_()*+_)(YU("); 538 } 539 540 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL41, TestSize.Level2) 541 { 542 std::string url = R"(万维网.com:9090\)"; 543 std::string hostname = GetHostnameFromURL(url); 544 EXPECT_STREQ(hostname.c_str(), "万维网.com"); 545 } 546 547 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL42, TestSize.Level2) 548 { 549 std::string url = R"(https://\\\中文测试)"; 550 std::string hostname = GetHostnameFromURL(url); 551 EXPECT_STREQ(hostname.c_str(), "中文测试"); 552 } 553 554 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL43, TestSize.Level2) 555 { 556 std::string url = R"(http://\\\中文测试?中文数据)"; 557 std::string hostname = GetHostnameFromURL(url); 558 EXPECT_STREQ(hostname.c_str(), "中文测试"); 559 } 560 561 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL44, TestSize.Level2) 562 { 563 std::string url = R"(http://\\\中文测试:8080?中文数据)"; 564 std::string hostname = GetHostnameFromURL(url); 565 EXPECT_STREQ(hostname.c_str(), "中文测试:8080"); 566 } 567 568 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL45, TestSize.Level2) 569 { 570 std::string url = R"(http:::/\\\中文测试:8080?中文数据)"; 571 std::string hostname = GetHostnameFromURL(url); 572 EXPECT_STREQ(hostname.c_str(), "http:::"); 573 } 574 575 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL46, TestSize.Level2) 576 { 577 std::string url = R"(()“”{}P{{}:\、、、})"; 578 std::string hostname = GetHostnameFromURL(url); 579 EXPECT_STREQ(hostname.c_str(), "()“”{}P{{}"); 580 } 581 582 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL47, TestSize.Level2) 583 { 584 std::string url = R"(()“”{}P{http://{}:\、、、})"; 585 std::string hostname = GetHostnameFromURL(url); 586 EXPECT_STREQ(hostname.c_str(), "{}"); 587 } 588 589 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL48, TestSize.Level2) 590 { 591 std::string url = R"(()“===\\///?=”{}P{{的‘;‘’;’}:\、、、})"; 592 std::string hostname = GetHostnameFromURL(url); 593 EXPECT_STREQ(hostname.c_str(), "()“==="); 594 } 595 596 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL49, TestSize.Level2) 597 { 598 std::string url = R"(()“”{}P{{;‘k:’}:\、、、})"; 599 std::string hostname = GetHostnameFromURL(url); 600 EXPECT_STREQ(hostname.c_str(), "()“”{}P{{;‘k"); 601 } 602 603 HWTEST_F(NetStackCommonUtilsTest, GetHostnameFromURL50, TestSize.Level2) 604 { 605 std::string url = R"(()“”{}P{0%%%VVV{}:\、、、})"; 606 std::string hostname = GetHostnameFromURL(url); 607 EXPECT_STREQ(hostname.c_str(), "()“”{}P{0%%%VVV{}"); 608 } 609 } // namespace CommonUtils 610 } // namespace NetStack 611 } // namespace OHOS