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 "test.h" 17#include "napi/native_api.h" 18#include "napi/native_node_api.h" 19#include "tools/log.h" 20#include "js_url.h" 21#include <regex> 22#include <sstream> 23#include "securec.h" 24#include "unicode/stringpiece.h" 25#include "unicode/unistr.h" 26#include "native_module_url.h" 27 28#define ASSERT_CHECK_CALL(call) \ 29 { \ 30 ASSERT_EQ(call, napi_ok); \ 31 } 32 33#define ASSERT_CHECK_VALUE_TYPE(env, value, type) \ 34 { \ 35 napi_valuetype valueType = napi_undefined; \ 36 ASSERT_TRUE(value != nullptr); \ 37 ASSERT_CHECK_CALL(napi_typeof(env, value, &valueType)); \ 38 ASSERT_EQ(valueType, type); \ 39 } 40 41napi_status DealNapiStrValue(napi_env env, const napi_value napiStr, std::string &result) 42{ 43 std::string buffer = ""; 44 size_t bufferSize = 0; 45 napi_status status = napi_ok; 46 status = napi_get_value_string_utf8(env, napiStr, nullptr, -1, &bufferSize); 47 buffer.reserve(bufferSize + 1); 48 buffer.resize(bufferSize); 49 if (status != napi_ok) { 50 HILOG_ERROR("can not get buffer size"); 51 return status; 52 } 53 if (bufferSize > 0) { 54 status = napi_get_value_string_utf8(env, napiStr, buffer.data(), bufferSize + 1, &bufferSize); 55 if (status != napi_ok) { 56 HILOG_ERROR("can not get buffer value"); 57 return status; 58 } 59 } 60 if (buffer.data() != nullptr) { 61 result = buffer; 62 } 63 return status; 64} 65 66napi_value StrToNapiValue(napi_env env, const std::string &result) 67{ 68 napi_value output = nullptr; 69 napi_create_string_utf8(env, result.c_str(), result.size(), &output); 70 return output; 71} 72 73static bool IsEscapeRange(const char ch) 74{ 75 if ((ch > 0 && ch < '*') || (ch > '*' && ch < '-') || (ch == '/') || 76 (ch > '9' && ch < 'A') || (ch > 'Z' && ch < '_') || (ch == '`') || (ch > 'z')) { 77 return true; 78 } 79 return false; 80} 81 82static std::string ReviseStr(std::string &str, std::string *reviseChar) 83{ 84 icu::StringPiece sp(str.c_str()); 85 icu::UnicodeString wstr = icu::UnicodeString::fromUTF8(sp); 86 const size_t lenStr = static_cast<size_t>(wstr.length()); 87 if (lenStr == 0) { 88 return ""; 89 } 90 std::string output = ""; 91 size_t numOfAscii = 128; // 128:Number of ASCII characters 92 size_t i = 0; 93 for (; i < lenStr; i++) { 94 auto charaEncode = static_cast<size_t>(wstr[i]); 95 if (charaEncode < numOfAscii) { 96 // 2:Defines the escape range of ASCII characters 97 if (IsEscapeRange(charaEncode)) { 98 output += reviseChar[charaEncode]; 99 } else { 100 output += str.substr(i, 1); 101 } 102 } else if (charaEncode <= 0x000007FF) { // Convert the Unicode code into two bytes 103 std::string output1 = reviseChar[0x000000C0 | (charaEncode / 64)]; // 64:the first byte 104 std::string output2 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 105 output += output1 + output2; 106 } else if ((charaEncode >= 0x0000E000) || (charaEncode <= 0x0000D7FF)) { 107 std::string output1 = reviseChar[0x000000E0 | (charaEncode / 4096)]; // 4096:Acquisition method 108 std::string output2 = reviseChar[numOfAscii | ((charaEncode / 64) & 0x0000003F)]; // 64:second byte 109 std::string output3 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 110 output += output1 + output2 + output3; 111 } else { 112 const size_t charaEncode1 = static_cast<size_t>(str[++i]) & 1023; // 1023:Convert codes 113 charaEncode = 65536 + (((charaEncode & 1023) << 10) | charaEncode1); // 65536:Specific transcoding 114 std::string output1 = reviseChar[0x000000F0 | (charaEncode / 262144)]; // 262144:the first byte 115 std::string output2 = reviseChar[numOfAscii | ((charaEncode / 4096) & 0x0000003F)]; // 4096:second byte 116 std::string output3 = reviseChar[numOfAscii | ((charaEncode / 64) & 0x0000003F)]; // 64:third byte 117 std::string output4 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 118 output += output1 + output2 + output3 + output4; 119 } 120 } 121 return output; 122} 123 124napi_value ToString(napi_env env, std::vector<std::string> &searchParams) 125{ 126 std::string output = ""; 127 std::string reviseChar[256] = {""}; // 256:Array length 128 for (size_t i = 0; i < 256; ++i) { // 256:Array length 129 size_t j = i; 130 std::stringstream ioss; 131 std::string str1 = ""; 132 ioss << std::hex << j; 133 ioss >> str1; 134 transform(str1.begin(), str1.end(), str1.begin(), ::toupper); 135 if (i < 16) { // 16:Total number of 0-F 136 reviseChar[i] = '%' + ("0" + str1); 137 } else { 138 reviseChar[i] = '%' + str1; 139 } 140 } 141 reviseChar[0x20] = "+"; // 0x20:ASCII value of spaces 142 const size_t lenStr = searchParams.size(); 143 napi_value result = nullptr; 144 if (lenStr == 0) { 145 napi_create_string_utf8(env, output.c_str(), output.size(), &result); 146 return result; 147 } 148 std::string firstStrKey = ReviseStr(searchParams[0], reviseChar); 149 std::string firstStrValue = ReviseStr(searchParams[1], reviseChar); 150 output = firstStrKey + "=" + firstStrValue; 151 if (lenStr % 2 == 0) { // 2:Divisible by 2 152 size_t pos = 2; // 2:Initial Position 153 for (; pos < lenStr; pos += 2) { // 2:Searching for the number and number of keys and values 154 std::string strKey = ReviseStr(searchParams[pos], reviseChar); 155 std::string strValue = ReviseStr(searchParams[pos + 1], reviseChar); 156 output += +"&" + strKey + "=" + strValue; 157 } 158 } 159 napi_create_string_utf8(env, output.c_str(), output.size(), &result); 160 return result; 161} 162 163static std::vector<std::string> GetParamsStrig(napi_env env, const napi_value tempStr) 164{ 165 std::vector<std::string> vec; 166 size_t arraySize = 0; 167 uint32_t length = 0; 168 napi_get_array_length(env, tempStr, &length); 169 napi_value napiStr = nullptr; 170 for (size_t i = 0; i < length; i++) { 171 napi_get_element(env, tempStr, i, &napiStr); 172 if (napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize) != napi_ok) { 173 HILOG_ERROR("can not get napiStr size"); 174 return vec; 175 } 176 if (arraySize > 0) { 177 std::string cstr = ""; 178 cstr.resize(arraySize); 179 if (napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize) != napi_ok) { 180 HILOG_ERROR("can not get napiStr size"); 181 return vec; 182 } 183 vec.push_back(cstr); 184 } else { 185 vec.push_back(""); 186 } 187 } 188 return vec; 189} 190 191HWTEST_F(NativeEngineTest, testUrlConstructs001, testing::ext::TestSize.Level0) 192{ 193 OHOS::Url::URL url("https://example.org:81/a/b/c?query#fragment"); 194 std::string output; 195 napi_env env = (napi_env)engine_; 196 DealNapiStrValue(env, url.GetPath(env), output); 197 ASSERT_STREQ(output.c_str(), "/a/b/c"); 198} 199 200HWTEST_F(NativeEngineTest, testUrlConstructs002, testing::ext::TestSize.Level0) 201{ 202 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 203 std::string output; 204 napi_env env = (napi_env)engine_; 205 DealNapiStrValue(env, url.GetPath(env), output); 206 ASSERT_STREQ(output.c_str(), "/directory/file"); 207} 208 209HWTEST_F(NativeEngineTest, testUrlConstructs003, testing::ext::TestSize.Level0) 210{ 211 OHOS::Url::URL url("../baz", "http://example.org/foo/bar"); 212 std::string output; 213 napi_env env = (napi_env)engine_; 214 DealNapiStrValue(env, url.GetPath(env), output); 215 ASSERT_STREQ(output.c_str(), "/baz"); 216} 217 218HWTEST_F(NativeEngineTest, testUrlConstructs004, testing::ext::TestSize.Level0) 219{ 220 OHOS::Url::URL url("/../sca/./path/path/../scasa/jjjjj", "http://www.example.com"); 221 std::string output; 222 napi_env env = (napi_env)engine_; 223 DealNapiStrValue(env, url.GetPath(env), output); 224 ASSERT_STREQ(output.c_str(), "/sca/path/scasa/jjjjj"); 225} 226 227HWTEST_F(NativeEngineTest, testUrlConstructs005, testing::ext::TestSize.Level0) 228{ 229 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 230 std::string output; 231 napi_env env = (napi_env)engine_; 232 DealNapiStrValue(env, url.GetScheme(env), output); 233 ASSERT_STREQ(output.c_str(), "http:"); 234} 235 236HWTEST_F(NativeEngineTest, testUrlConstructs006, testing::ext::TestSize.Level0) 237{ 238 OHOS::Url::URL base("http://www.example.com"); 239 OHOS::Url::URL url("//sca/./path/./scasa#", base); 240 std::string output; 241 napi_env env = (napi_env)engine_; 242 DealNapiStrValue(env, url.GetPath(env), output); 243 ASSERT_STREQ(output.c_str(), "/path/scasa"); 244} 245 246HWTEST_F(NativeEngineTest, testUrlConstructs007, testing::ext::TestSize.Level0) 247{ 248 OHOS::Url::URL base("http://www.example.com"); 249 OHOS::Url::URL url("/dire/query", base); 250 std::string output; 251 napi_env env = (napi_env)engine_; 252 DealNapiStrValue(env, url.GetPath(env), output); 253 ASSERT_STREQ(output.c_str(), "/dire/query"); 254} 255 256HWTEST_F(NativeEngineTest, testUrlConstructs008, testing::ext::TestSize.Level0) 257{ 258 OHOS::Url::URL base("http://www.example.com"); 259 OHOS::Url::URL url("foo/bar//fragment", base); 260 std::string output; 261 napi_env env = (napi_env)engine_; 262 DealNapiStrValue(env, url.GetPath(env), output); 263 ASSERT_STREQ(output.c_str(), "/foo/bar//fragment"); 264} 265 266HWTEST_F(NativeEngineTest, testUrlConstructs009, testing::ext::TestSize.Level0) 267{ 268 OHOS::Url::URL base("http://www.example.com"); 269 OHOS::Url::URL url("/../sca/./path/./s#casa", base); 270 std::string output; 271 napi_env env = (napi_env)engine_; 272 DealNapiStrValue(env, url.GetPath(env), output); 273 ASSERT_STREQ(output.c_str(), "/sca/path/s"); 274} 275 276HWTEST_F(NativeEngineTest, testUrlConstructs010, testing::ext::TestSize.Level0) 277{ 278 OHOS::Url::URL base("http://www.example.com"); 279 OHOS::Url::URL url("/../sca/./path/./sca?sa", base); 280 std::string output; 281 napi_env env = (napi_env)engine_; 282 DealNapiStrValue(env, url.GetPath(env), output); 283 ASSERT_STREQ(output.c_str(), "/sca/path/sca"); 284} 285 286HWTEST_F(NativeEngineTest, testUrlConstructs011, testing::ext::TestSize.Level0) 287{ 288 OHOS::Url::URL base("http://www.example.com"); 289 OHOS::Url::URL url("", base); 290 std::string output; 291 napi_env env = (napi_env)engine_; 292 DealNapiStrValue(env, url.GetPath(env), output); 293 ASSERT_STREQ(output.c_str(), "/"); 294} 295 296HWTEST_F(NativeEngineTest, testUrlConstructs012, testing::ext::TestSize.Level0) 297{ 298 OHOS::Url::URL url("file://\\/www.example.com"); 299 std::string output; 300 napi_env env = (napi_env)engine_; 301 DealNapiStrValue(env, url.GetScheme(env), output); 302 ASSERT_STREQ(output.c_str(), "file:"); 303} 304 305HWTEST_F(NativeEngineTest, testUrlConstructs013, testing::ext::TestSize.Level0) 306{ 307 OHOS::Url::URL url("file:///www.example.com"); 308 std::string output; 309 napi_env env = (napi_env)engine_; 310 DealNapiStrValue(env, url.GetScheme(env), output); 311 ASSERT_STREQ(output.c_str(), "file:"); 312} 313 314HWTEST_F(NativeEngineTest, testUrlConstructs014, testing::ext::TestSize.Level0) 315{ 316 OHOS::Url::URL url("http1://www.example.com"); 317 std::string output; 318 napi_env env = (napi_env)engine_; 319 DealNapiStrValue(env, url.GetScheme(env), output); 320 ASSERT_STREQ(output.c_str(), "http1:"); 321} 322 323HWTEST_F(NativeEngineTest, testUrlConstructs015, testing::ext::TestSize.Level0) 324{ 325 OHOS::Url::URL url("http2://www.example.com:22/adfee/kk?a=4#saf"); 326 std::string output; 327 napi_env env = (napi_env)engine_; 328 DealNapiStrValue(env, url.GetScheme(env), output); 329 ASSERT_STREQ(output.c_str(), "http2:"); 330} 331 332HWTEST_F(NativeEngineTest, testUrlConstructs016, testing::ext::TestSize.Level0) 333{ 334 OHOS::Url::URL url("http2://username:password@www.example.com:22/adfee/kk?a=4#saf"); 335 std::string output; 336 napi_env env = (napi_env)engine_; 337 DealNapiStrValue(env, url.GetScheme(env), output); 338 ASSERT_STREQ(output.c_str(), "http2:"); 339} 340 341HWTEST_F(NativeEngineTest, testUrlConstructs017, testing::ext::TestSize.Level0) 342{ 343 OHOS::Url::URL url("http://"); 344 napi_env env = (napi_env)engine_; 345 napi_value result = url.GetOnOrOff(env); 346 bool value = false; 347 napi_get_value_bool(env, result, &value); 348 ASSERT_FALSE(value); 349} 350 351HWTEST_F(NativeEngineTest, testUrlConstructs018, testing::ext::TestSize.Level0) 352{ 353 OHOS::Url::URL url("http://username:password@/adfee/kk?a=4#saf"); 354 napi_env env = (napi_env)engine_; 355 napi_value result = url.GetOnOrOff(env); 356 bool value = false; 357 napi_get_value_bool(env, result, &value); 358 ASSERT_FALSE(value); 359} 360 361HWTEST_F(NativeEngineTest, testUrlConstructs019, testing::ext::TestSize.Level0) 362{ 363 OHOS::Url::URL url("http://username:password@/adfee/kk?a=4#saf", ""); 364 napi_env env = (napi_env)engine_; 365 napi_value result = url.GetOnOrOff(env); 366 bool value = false; 367 napi_get_value_bool(env, result, &value); 368 ASSERT_FALSE(value); 369} 370 371HWTEST_F(NativeEngineTest, testUrlConstructs020, testing::ext::TestSize.Level0) 372{ 373 OHOS::Url::URL url("http://username:password@sda/adfee/kk?a=4#saf", "http://sads/sad"); 374 napi_env env = (napi_env)engine_; 375 napi_value result = url.GetOnOrOff(env); 376 bool value = false; 377 napi_get_value_bool(env, result, &value); 378 ASSERT_TRUE(value); 379} 380 381HWTEST_F(NativeEngineTest, testUrlConstructs021, testing::ext::TestSize.Level0) 382{ 383 OHOS::Url::URL url("//fdsa", "http://sad"); 384 napi_env env = (napi_env)engine_; 385 napi_value result = url.GetOnOrOff(env); 386 bool value = false; 387 napi_get_value_bool(env, result, &value); 388 ASSERT_TRUE(value); 389} 390 391HWTEST_F(NativeEngineTest, testUrlConstructs022, testing::ext::TestSize.Level0) 392{ 393 OHOS::Url::URL url("-http://username:password@/adfee/kk?a=4#saf"); 394 napi_env env = (napi_env)engine_; 395 napi_value result = url.GetOnOrOff(env); 396 bool value = false; 397 napi_get_value_bool(env, result, &value); 398 ASSERT_FALSE(value); 399} 400 401HWTEST_F(NativeEngineTest, testUrlConstructs023, testing::ext::TestSize.Level0) 402{ 403 OHOS::Url::URL base("http://www.example.com"); 404 OHOS::Url::URL url("//asd", base); 405 napi_env env = (napi_env)engine_; 406 napi_value result = url.GetOnOrOff(env); 407 bool value = false; 408 napi_get_value_bool(env, result, &value); 409 ASSERT_TRUE(value); 410} 411 412HWTEST_F(NativeEngineTest, testUrlProtocol001, testing::ext::TestSize.Level0) 413{ 414 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 415 std::string output; 416 napi_env env = (napi_env)engine_; 417 DealNapiStrValue(env, url.GetScheme(env), output); 418 ASSERT_STREQ(output.c_str(), "http:"); 419} 420 421HWTEST_F(NativeEngineTest, testUrlProtocol002, testing::ext::TestSize.Level0) 422{ 423 OHOS::Url::URL url("ftp://username:password@host:8080/directory/file?query#fragment"); 424 std::string output; 425 napi_env env = (napi_env)engine_; 426 DealNapiStrValue(env, url.GetScheme(env), output); 427 ASSERT_STREQ(output.c_str(), "ftp:"); 428} 429 430HWTEST_F(NativeEngineTest, testUrlProtocol003, testing::ext::TestSize.Level0) 431{ 432 OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 433 std::string output; 434 napi_env env = (napi_env)engine_; 435 DealNapiStrValue(env, url.GetScheme(env), output); 436 ASSERT_STREQ(output.c_str(), "https:"); 437} 438 439HWTEST_F(NativeEngineTest, testUrlSetScheme001, testing::ext::TestSize.Level0) 440{ 441 OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 442 std::string output; 443 napi_env env = (napi_env)engine_; 444 DealNapiStrValue(env, url.GetScheme(env), output); 445 ASSERT_STREQ(output.c_str(), "https:"); 446 url.SetScheme("ftp:"); 447 DealNapiStrValue(env, url.GetScheme(env), output); 448 ASSERT_STREQ(output.c_str(), "ftp:"); 449} 450 451HWTEST_F(NativeEngineTest, testUrlSetScheme002, testing::ext::TestSize.Level0) 452{ 453 OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 454 std::string output; 455 napi_env env = (napi_env)engine_; 456 DealNapiStrValue(env, url.GetScheme(env), output); 457 ASSERT_STREQ(output.c_str(), "https:"); 458 url.SetScheme("666"); 459 DealNapiStrValue(env, url.GetScheme(env), output); 460 ASSERT_STREQ(output.c_str(), "https:"); 461} 462 463HWTEST_F(NativeEngineTest, testUrlSetScheme003, testing::ext::TestSize.Level0) 464{ 465 OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 466 std::string output; 467 napi_env env = (napi_env)engine_; 468 DealNapiStrValue(env, url.GetScheme(env), output); 469 ASSERT_STREQ(output.c_str(), "https:"); 470 url.SetScheme("-/+"); 471 DealNapiStrValue(env, url.GetScheme(env), output); 472 ASSERT_STREQ(output.c_str(), "https:"); 473} 474 475HWTEST_F(NativeEngineTest, testUrlSetScheme004, testing::ext::TestSize.Level0) 476{ 477 OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 478 std::string output; 479 napi_env env = (napi_env)engine_; 480 DealNapiStrValue(env, url.GetScheme(env), output); 481 ASSERT_STREQ(output.c_str(), "https:"); 482 url.SetScheme("file"); 483 DealNapiStrValue(env, url.GetScheme(env), output); 484 ASSERT_STREQ(output.c_str(), "https:"); 485} 486 487HWTEST_F(NativeEngineTest, testUrlUsername001, testing::ext::TestSize.Level0) 488{ 489 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 490 std::string output; 491 napi_env env = (napi_env)engine_; 492 DealNapiStrValue(env, url.GetUsername(env), output); 493 ASSERT_STREQ(output.c_str(), "username"); 494} 495 496HWTEST_F(NativeEngineTest, testUrlUsername002, testing::ext::TestSize.Level0) 497{ 498 OHOS::Url::URL url("http://zhao:password@host:8080/directory/file?query#fragment"); 499 std::string output; 500 napi_env env = (napi_env)engine_; 501 DealNapiStrValue(env, url.GetUsername(env), output); 502 ASSERT_STREQ(output.c_str(), "zhao"); 503} 504 505HWTEST_F(NativeEngineTest, testUrlUsername003, testing::ext::TestSize.Level0) 506{ 507 OHOS::Url::URL url("http://skk:password@host:8080/directory/file?query#fragment"); 508 std::string output; 509 napi_env env = (napi_env)engine_; 510 DealNapiStrValue(env, url.GetUsername(env), output); 511 ASSERT_STREQ(output.c_str(), "skk"); 512} 513 514HWTEST_F(NativeEngineTest, testUrlSetUsername001, testing::ext::TestSize.Level0) 515{ 516 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 517 std::string output; 518 napi_env env = (napi_env)engine_; 519 DealNapiStrValue(env, url.GetUsername(env), output); 520 ASSERT_STREQ(output.c_str(), "username"); 521 url.SetUsername("666"); 522 DealNapiStrValue(env, url.GetUsername(env), output); 523 ASSERT_STREQ(output.c_str(), "666"); 524} 525 526HWTEST_F(NativeEngineTest, testUrlSetUsername002, testing::ext::TestSize.Level0) 527{ 528 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 529 std::string output; 530 napi_env env = (napi_env)engine_; 531 DealNapiStrValue(env, url.GetUsername(env), output); 532 ASSERT_STREQ(output.c_str(), "username"); 533 url.SetUsername(""); 534 DealNapiStrValue(env, url.GetUsername(env), output); 535 ASSERT_STREQ(output.c_str(), ""); 536} 537 538HWTEST_F(NativeEngineTest, testUrlPassword001, testing::ext::TestSize.Level0) 539{ 540 OHOS::Url::URL url("http://username:11@host:8080/directory/file?query#fragment"); 541 std::string output; 542 napi_env env = (napi_env)engine_; 543 DealNapiStrValue(env, url.GetPassword(env), output); 544 ASSERT_STREQ(output.c_str(), "11"); 545} 546 547HWTEST_F(NativeEngineTest, testUrlPassword002, testing::ext::TestSize.Level0) 548{ 549 OHOS::Url::URL url("http://username:23aa@host:8080/directory/file?query#fragment"); 550 std::string output; 551 napi_env env = (napi_env)engine_; 552 DealNapiStrValue(env, url.GetPassword(env), output); 553 ASSERT_STREQ(output.c_str(), "23aa"); 554} 555 556HWTEST_F(NativeEngineTest, testUrlPassword003, testing::ext::TestSize.Level0) 557{ 558 OHOS::Url::URL url("http://username@host:8080/directory/file?query#fragment"); 559 std::string output; 560 napi_env env = (napi_env)engine_; 561 DealNapiStrValue(env, url.GetPassword(env), output); 562 ASSERT_STREQ(output.c_str(), ""); 563} 564 565HWTEST_F(NativeEngineTest, testUrlSetPassword001, testing::ext::TestSize.Level0) 566{ 567 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 568 std::string output; 569 napi_env env = (napi_env)engine_; 570 DealNapiStrValue(env, url.GetPassword(env), output); 571 ASSERT_STREQ(output.c_str(), "password"); 572 url.SetPassword("666"); 573 DealNapiStrValue(env, url.GetPassword(env), output); 574 ASSERT_STREQ(output.c_str(), "666"); 575} 576 577HWTEST_F(NativeEngineTest, testUrlSetPassword002, testing::ext::TestSize.Level0) 578{ 579 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 580 std::string output; 581 napi_env env = (napi_env)engine_; 582 DealNapiStrValue(env, url.GetPassword(env), output); 583 ASSERT_STREQ(output.c_str(), "password"); 584 url.SetPassword(""); 585 DealNapiStrValue(env, url.GetPassword(env), output); 586 ASSERT_STREQ(output.c_str(), ""); 587} 588 589HWTEST_F(NativeEngineTest, testUrlHost001, testing::ext::TestSize.Level0) 590{ 591 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 592 std::string output; 593 napi_env env = (napi_env)engine_; 594 DealNapiStrValue(env, url.GetHost(env), output); 595 ASSERT_STREQ(output.c_str(), "host:8080"); 596} 597 598HWTEST_F(NativeEngineTest, testUrlHost002, testing::ext::TestSize.Level0) 599{ 600 OHOS::Url::URL url("http://username:password@hosthost/directory/file?query#fragment"); 601 std::string output; 602 napi_env env = (napi_env)engine_; 603 DealNapiStrValue(env, url.GetHost(env), output); 604 ASSERT_STREQ(output.c_str(), "hosthost"); 605} 606 607HWTEST_F(NativeEngineTest, testUrlHost003, testing::ext::TestSize.Level0) 608{ 609 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 610 std::string output; 611 napi_env env = (napi_env)engine_; 612 DealNapiStrValue(env, url.GetHost(env), output); 613 ASSERT_STREQ(output.c_str(), "host:199"); 614} 615 616HWTEST_F(NativeEngineTest, testUrlSetHost001, testing::ext::TestSize.Level0) 617{ 618 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 619 std::string output; 620 napi_env env = (napi_env)engine_; 621 DealNapiStrValue(env, url.GetHost(env), output); 622 ASSERT_STREQ(output.c_str(), "host:199"); 623 url.SetHost("0.0.0.0.0:199"); 624 DealNapiStrValue(env, url.GetHost(env), output); 625 ASSERT_STREQ(output.c_str(), "0.0.0.0.0:199"); 626} 627 628HWTEST_F(NativeEngineTest, testUrlSetHost002, testing::ext::TestSize.Level0) 629{ 630 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 631 std::string output; 632 napi_env env = (napi_env)engine_; 633 DealNapiStrValue(env, url.GetHost(env), output); 634 ASSERT_STREQ(output.c_str(), "host:199"); 635 url.SetHost(""); 636 DealNapiStrValue(env, url.GetHost(env), output); 637 ASSERT_STREQ(output.c_str(), "host:199"); 638} 639 640HWTEST_F(NativeEngineTest, testUrlSetHost003, testing::ext::TestSize.Level0) 641{ 642 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 643 std::string output; 644 napi_env env = (napi_env)engine_; 645 DealNapiStrValue(env, url.GetHost(env), output); 646 ASSERT_STREQ(output.c_str(), "host:199"); 647 url.SetHost("/"); 648 DealNapiStrValue(env, url.GetHost(env), output); 649 ASSERT_STREQ(output.c_str(), "host:199"); 650} 651 652HWTEST_F(NativeEngineTest, testUrlSetHost004, testing::ext::TestSize.Level0) 653{ 654 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 655 std::string output; 656 napi_env env = (napi_env)engine_; 657 DealNapiStrValue(env, url.GetHost(env), output); 658 ASSERT_STREQ(output.c_str(), "host:199"); 659 url.SetHost("asdzxc:54/"); 660 napi_value result = url.GetOnOrOff(env); 661 bool value = false; 662 napi_get_value_bool(env, result, &value); 663 ASSERT_TRUE(value); 664} 665 666HWTEST_F(NativeEngineTest, testUrlSetHref001, testing::ext::TestSize.Level0) 667{ 668 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 669 std::string output; 670 napi_env env = (napi_env)engine_; 671 DealNapiStrValue(env, url.GetHost(env), output); 672 ASSERT_STREQ(output.c_str(), "host:199"); 673 url.SetHref("http:example.com"); 674 DealNapiStrValue(env, url.GetHost(env), output); 675 ASSERT_STREQ(output.c_str(), "example.com"); 676} 677 678HWTEST_F(NativeEngineTest, testUrlSetHref002, testing::ext::TestSize.Level0) 679{ 680 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 681 std::string output; 682 napi_env env = (napi_env)engine_; 683 DealNapiStrValue(env, url.GetHost(env), output); 684 ASSERT_STREQ(output.c_str(), "host:199"); 685 url.SetHref(" http:example.com"); 686 DealNapiStrValue(env, url.GetHost(env), output); 687 ASSERT_STREQ(output.c_str(), "example.com"); 688} 689 690HWTEST_F(NativeEngineTest, testUrlHostname001, testing::ext::TestSize.Level0) 691{ 692 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 693 std::string output; 694 napi_env env = (napi_env)engine_; 695 DealNapiStrValue(env, url.GetHostname(env), output); 696 ASSERT_STREQ(output.c_str(), "host"); 697} 698 699HWTEST_F(NativeEngineTest, testUrlHostname002, testing::ext::TestSize.Level0) 700{ 701 OHOS::Url::URL url("http://username:password@host123:8080/directory/file?query#fragment"); 702 std::string output; 703 napi_env env = (napi_env)engine_; 704 DealNapiStrValue(env, url.GetHostname(env), output); 705 ASSERT_STREQ(output.c_str(), "host123"); 706} 707 708HWTEST_F(NativeEngineTest, testUrlHostname003, testing::ext::TestSize.Level0) 709{ 710 OHOS::Url::URL url("http://username:password@885ssa:8080/directory/file?query#fragment"); 711 std::string output; 712 napi_env env = (napi_env)engine_; 713 DealNapiStrValue(env, url.GetHostname(env), output); 714 ASSERT_STREQ(output.c_str(), "885ssa"); 715} 716 717HWTEST_F(NativeEngineTest, testUrlPort001, testing::ext::TestSize.Level0) 718{ 719 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 720 std::string output; 721 napi_env env = (napi_env)engine_; 722 DealNapiStrValue(env, url.GetPort(env), output); 723 ASSERT_STREQ(output.c_str(), "8080"); 724} 725 726HWTEST_F(NativeEngineTest, testUrlPort002, testing::ext::TestSize.Level0) 727{ 728 OHOS::Url::URL url("http://username:password@host:100/directory/file?query#fragment"); 729 std::string output; 730 napi_env env = (napi_env)engine_; 731 DealNapiStrValue(env, url.GetPort(env), output); 732 ASSERT_STREQ(output.c_str(), "100"); 733} 734 735 736HWTEST_F(NativeEngineTest, testUrlPort003, testing::ext::TestSize.Level0) 737{ 738 OHOS::Url::URL url("http://username:password@host/directory/file?query#fragment"); 739 std::string output; 740 napi_env env = (napi_env)engine_; 741 DealNapiStrValue(env, url.GetPort(env), output); 742 ASSERT_STREQ(output.c_str(), ""); 743} 744 745HWTEST_F(NativeEngineTest, testUrlPort004, testing::ext::TestSize.Level0) 746{ 747 OHOS::Url::URL url("http://username:password@host:655656/directory/file?query#fragment"); 748 napi_env env = (napi_env)engine_; 749 napi_value result = url.GetOnOrOff(env); 750 bool value = false; 751 napi_get_value_bool(env, result, &value); 752 ASSERT_FALSE(value); 753} 754 755HWTEST_F(NativeEngineTest, testUrlPort005, testing::ext::TestSize.Level0) 756{ 757 OHOS::Url::URL url("http://username:password@host:6c3/directory/file?query#fragment"); 758 napi_env env = (napi_env)engine_; 759 napi_value result = url.GetOnOrOff(env); 760 bool value = false; 761 napi_get_value_bool(env, result, &value); 762 ASSERT_FALSE(value); 763} 764 765HWTEST_F(NativeEngineTest, testUrlSetPort001, testing::ext::TestSize.Level0) 766{ 767 OHOS::Url::URL url("http://username:password@host:100/directory/file?query#fragment"); 768 std::string output; 769 napi_env env = (napi_env)engine_; 770 DealNapiStrValue(env, url.GetPort(env), output); 771 ASSERT_STREQ(output.c_str(), "100"); 772 url.SetPort("600?"); 773 DealNapiStrValue(env, url.GetPort(env), output); 774 ASSERT_STREQ(output.c_str(), "600"); 775} 776 777HWTEST_F(NativeEngineTest, testUrlPathname001, testing::ext::TestSize.Level0) 778{ 779 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 780 std::string output; 781 napi_env env = (napi_env)engine_; 782 DealNapiStrValue(env, url.GetPath(env), output); 783 ASSERT_STREQ(output.c_str(), "/directory/file"); 784} 785 786HWTEST_F(NativeEngineTest, testUrlPathname002, testing::ext::TestSize.Level0) 787{ 788 OHOS::Url::URL url("http://username:password@host:8080/directory?query#fragment"); 789 std::string output; 790 napi_env env = (napi_env)engine_; 791 DealNapiStrValue(env, url.GetPath(env), output); 792 ASSERT_STREQ(output.c_str(), "/directory"); 793} 794 795HWTEST_F(NativeEngineTest, testUrlPathname003, testing::ext::TestSize.Level0) 796{ 797 OHOS::Url::URL url("http2://username:password@host:8080?query#fragment"); 798 std::string output; 799 napi_env env = (napi_env)engine_; 800 DealNapiStrValue(env, url.GetPath(env), output); 801 ASSERT_STREQ(output.c_str(), ""); 802} 803 804HWTEST_F(NativeEngineTest, testUrlPathname004, testing::ext::TestSize.Level0) 805{ 806 OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 807 napi_env env = (napi_env)engine_; 808 napi_value result = url.GetOnOrOff(env); 809 bool value = false; 810 napi_get_value_bool(env, result, &value); 811 ASSERT_TRUE(value); 812} 813 814HWTEST_F(NativeEngineTest, testUrlSetPath001, testing::ext::TestSize.Level0) 815{ 816 OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 817 std::string output; 818 napi_env env = (napi_env)engine_; 819 DealNapiStrValue(env, url.GetPath(env), output); 820 ASSERT_STREQ(output.c_str(), "/"); 821 url.SetPath("\\D:"); 822 DealNapiStrValue(env, url.GetPath(env), output); 823 ASSERT_STREQ(output.c_str(), "/D:"); 824} 825 826HWTEST_F(NativeEngineTest, testUrlSetPath002, testing::ext::TestSize.Level0) 827{ 828 OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 829 std::string output; 830 napi_env env = (napi_env)engine_; 831 DealNapiStrValue(env, url.GetPath(env), output); 832 ASSERT_STREQ(output.c_str(), "/"); 833 url.SetPath(":\\D:"); 834 DealNapiStrValue(env, url.GetPath(env), output); 835 ASSERT_STREQ(output.c_str(), "/:/D:"); 836} 837 838HWTEST_F(NativeEngineTest, testUrlSetPath003, testing::ext::TestSize.Level0) 839{ 840 OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 841 std::string output; 842 napi_env env = (napi_env)engine_; 843 DealNapiStrValue(env, url.GetPath(env), output); 844 ASSERT_STREQ(output.c_str(), "/"); 845 url.SetPath("::"); 846 DealNapiStrValue(env, url.GetPath(env), output); 847 ASSERT_STREQ(output.c_str(), "/::"); 848} 849 850HWTEST_F(NativeEngineTest, testUrlSetPath004, testing::ext::TestSize.Level0) 851{ 852 OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 853 std::string output; 854 napi_env env = (napi_env)engine_; 855 DealNapiStrValue(env, url.GetPath(env), output); 856 ASSERT_STREQ(output.c_str(), "/"); 857 url.SetPath(""); 858 DealNapiStrValue(env, url.GetPath(env), output); 859 ASSERT_STREQ(output.c_str(), "/"); 860} 861 862HWTEST_F(NativeEngineTest, testUrlSetPath005, testing::ext::TestSize.Level0) 863{ 864 OHOS::Url::URL url("file://hostsasf"); 865 std::string output; 866 napi_env env = (napi_env)engine_; 867 url.SetPath("/askdj"); 868 DealNapiStrValue(env, url.GetPath(env), output); 869 ASSERT_STREQ(output.c_str(), "/askdj"); 870} 871 872HWTEST_F(NativeEngineTest, testUrlSearch001, testing::ext::TestSize.Level0) 873{ 874 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=qqqq#fragment"); 875 std::string output; 876 napi_env env = (napi_env)engine_; 877 DealNapiStrValue(env, url.GetSearch(env), output); 878 ASSERT_STREQ(output.c_str(), "?query=qqqq"); 879} 880 881HWTEST_F(NativeEngineTest, testUrlSearch002, testing::ext::TestSize.Level0) 882{ 883 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=qqqq&ll=pp#fragment"); 884 std::string output; 885 napi_env env = (napi_env)engine_; 886 DealNapiStrValue(env, url.GetSearch(env), output); 887 ASSERT_STREQ(output.c_str(), "?query=qqqq&ll=pp"); 888} 889 890HWTEST_F(NativeEngineTest, testUrlSearch003, testing::ext::TestSize.Level0) 891{ 892 OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 893 std::string output; 894 napi_env env = (napi_env)engine_; 895 DealNapiStrValue(env, url.GetSearch(env), output); 896 ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 897} 898 899HWTEST_F(NativeEngineTest, testUrlSetSearch001, testing::ext::TestSize.Level0) 900{ 901 OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 902 std::string output; 903 napi_env env = (napi_env)engine_; 904 DealNapiStrValue(env, url.GetSearch(env), output); 905 ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 906 url.SetSearch(""); 907 DealNapiStrValue(env, url.GetSearch(env), output); 908 ASSERT_STREQ(output.c_str(), ""); 909} 910 911HWTEST_F(NativeEngineTest, testUrlSetSearch002, testing::ext::TestSize.Level0) 912{ 913 OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 914 std::string output; 915 napi_env env = (napi_env)engine_; 916 DealNapiStrValue(env, url.GetSearch(env), output); 917 ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 918 url.SetSearch("?444=555"); 919 DealNapiStrValue(env, url.GetSearch(env), output); 920 ASSERT_STREQ(output.c_str(), "?444=555"); 921} 922 923HWTEST_F(NativeEngineTest, testUrlSetSearch003, testing::ext::TestSize.Level0) 924{ 925 OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 926 std::string output; 927 napi_env env = (napi_env)engine_; 928 DealNapiStrValue(env, url.GetSearch(env), output); 929 ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 930 url.SetSearch("444=555"); 931 DealNapiStrValue(env, url.GetSearch(env), output); 932 ASSERT_STREQ(output.c_str(), "?444=555"); 933} 934 935HWTEST_F(NativeEngineTest, testUrlSetSearch004, testing::ext::TestSize.Level0) 936{ 937 OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 938 std::string output; 939 napi_env env = (napi_env)engine_; 940 DealNapiStrValue(env, url.GetSearch(env), output); 941 ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 942 url.SetSearch("?##44=55"); 943 DealNapiStrValue(env, url.GetSearch(env), output); 944 ASSERT_STREQ(output.c_str(), "?%23%2344=55"); 945} 946 947HWTEST_F(NativeEngineTest, testUrlGetFragment001, testing::ext::TestSize.Level0) 948{ 949 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#fragment"); 950 std::string output; 951 napi_env env = (napi_env)engine_; 952 DealNapiStrValue(env, url.GetFragment(env), output); 953 ASSERT_STREQ(output.c_str(), "#fragment"); 954} 955 956HWTEST_F(NativeEngineTest, testUrlGetFragment002, testing::ext::TestSize.Level0) 957{ 958 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#fragment"); 959 std::string output; 960 napi_env env = (napi_env)engine_; 961 DealNapiStrValue(env, url.GetFragment(env), output); 962 ASSERT_STREQ(output.c_str(), "#fragment"); 963} 964 965HWTEST_F(NativeEngineTest, testUrlGetFragment003, testing::ext::TestSize.Level0) 966{ 967 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 968 std::string output; 969 napi_env env = (napi_env)engine_; 970 DealNapiStrValue(env, url.GetFragment(env), output); 971 ASSERT_STREQ(output.c_str(), "#123456"); 972} 973 974HWTEST_F(NativeEngineTest, testUrlSetFragment001, testing::ext::TestSize.Level0) 975{ 976 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 977 std::string output; 978 napi_env env = (napi_env)engine_; 979 DealNapiStrValue(env, url.GetFragment(env), output); 980 ASSERT_STREQ(output.c_str(), "#123456"); 981 url.SetFragment(""); 982 DealNapiStrValue(env, url.GetFragment(env), output); 983 ASSERT_STREQ(output.c_str(), ""); 984} 985 986HWTEST_F(NativeEngineTest, testUrlSetFragment002, testing::ext::TestSize.Level0) 987{ 988 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 989 std::string output; 990 napi_env env = (napi_env)engine_; 991 DealNapiStrValue(env, url.GetFragment(env), output); 992 ASSERT_STREQ(output.c_str(), "#123456"); 993 url.SetFragment("#445566"); 994 DealNapiStrValue(env, url.GetFragment(env), output); 995 ASSERT_STREQ(output.c_str(), "#445566"); 996} 997 998HWTEST_F(NativeEngineTest, testUrlSetFragment003, testing::ext::TestSize.Level0) 999{ 1000 OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 1001 std::string output; 1002 napi_env env = (napi_env)engine_; 1003 DealNapiStrValue(env, url.GetFragment(env), output); 1004 ASSERT_STREQ(output.c_str(), "#123456"); 1005 url.SetFragment("445566"); 1006 DealNapiStrValue(env, url.GetFragment(env), output); 1007 ASSERT_STREQ(output.c_str(), "#445566"); 1008} 1009 1010HWTEST_F(NativeEngineTest, testUrlIPV6001, testing::ext::TestSize.Level0) 1011{ 1012 OHOS::Url::URL url("http://[1080:0:0:0:8:800:200C:417A]/index.html"); 1013 napi_env env = (napi_env)engine_; 1014 napi_value result = url.GetIsIpv6(env); 1015 bool value = false; 1016 napi_get_value_bool(env, result, &value); 1017 ASSERT_TRUE(value); 1018} 1019 1020HWTEST_F(NativeEngineTest, testUrlIPV6002, testing::ext::TestSize.Level0) 1021{ 1022 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 1023 napi_env env = (napi_env)engine_; 1024 napi_value result = url.GetIsIpv6(env); 1025 bool value = false; 1026 napi_get_value_bool(env, result, &value); 1027 ASSERT_FALSE(value); 1028} 1029 1030HWTEST_F(NativeEngineTest, testUrlIPV6003, testing::ext::TestSize.Level0) 1031{ 1032 OHOS::Url::URL url("http://[1080:0:0:0:8:800:200C.417A]/index.html"); 1033 napi_env env = (napi_env)engine_; 1034 napi_value result = url.GetIsIpv6(env); 1035 bool value = false; 1036 napi_get_value_bool(env, result, &value); 1037 ASSERT_FALSE(value); 1038} 1039 1040HWTEST_F(NativeEngineTest, testUrlGetOnOrOff001, testing::ext::TestSize.Level0) 1041{ 1042 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 1043 napi_env env = (napi_env)engine_; 1044 napi_value result = url.GetOnOrOff(env); 1045 bool value = false; 1046 napi_get_value_bool(env, result, &value); 1047 ASSERT_TRUE(value); 1048} 1049 1050HWTEST_F(NativeEngineTest, testUrlGetOnOrOff002, testing::ext::TestSize.Level0) 1051{ 1052 OHOS::Url::URL url("http://192.168.259.551:80/index.html"); 1053 napi_env env = (napi_env)engine_; 1054 napi_value result = url.GetOnOrOff(env); 1055 bool value = false; 1056 napi_get_value_bool(env, result, &value); 1057 ASSERT_FALSE(value); 1058} 1059 1060HWTEST_F(NativeEngineTest, testUrlSetHostname001, testing::ext::TestSize.Level0) 1061{ 1062 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 1063 napi_env env = (napi_env)engine_; 1064 std::string output; 1065 std::string value = "host"; 1066 url.SetHostname(value); 1067 DealNapiStrValue(env, url.GetHostname(env), output); 1068 ASSERT_STREQ(output.c_str(), "host"); 1069} 1070 1071HWTEST_F(NativeEngineTest, testUrlSetHostname002, testing::ext::TestSize.Level0) 1072{ 1073 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 1074 napi_env env = (napi_env)engine_; 1075 std::string output; 1076 std::string value = ""; 1077 url.SetHostname(value); 1078 DealNapiStrValue(env, url.GetHostname(env), output); 1079 ASSERT_STREQ(output.c_str(), "255.255.255.1"); 1080} 1081 1082HWTEST_F(NativeEngineTest, testUrlSetHostname003, testing::ext::TestSize.Level0) 1083{ 1084 OHOS::Url::URL url("file:///www.example.com"); 1085 napi_env env = (napi_env)engine_; 1086 std::string value = "localhost/"; 1087 url.SetHostname(value); 1088 napi_value result = url.GetOnOrOff(env); 1089 bool value1 = false; 1090 napi_get_value_bool(env, result, &value1); 1091 ASSERT_TRUE(value1); 1092} 1093 1094HWTEST_F(NativeEngineTest, testUrlSearchParams001, testing::ext::TestSize.Level0) 1095{ 1096 OHOS::Url::URL url("http://username:password@host:8080/directory/file?foo=1&bar=2"); 1097 std::string output; 1098 napi_env env = (napi_env)engine_; 1099 DealNapiStrValue(env, url.GetSearch(env), output); 1100 ASSERT_STREQ(output.c_str(), "?foo=1&bar=2"); 1101} 1102 1103HWTEST_F(NativeEngineTest, testUrlSearchParams002, testing::ext::TestSize.Level0) 1104{ 1105 OHOS::Url::URL url("https://example.com?d=value1&c=value2&b=大&4=key4"); 1106 std::string output; 1107 napi_env env = (napi_env)engine_; 1108 DealNapiStrValue(env, url.GetSearch(env), output); 1109 ASSERT_STREQ(output.c_str(), "?d=value1&c=value2&b=大&4=key4"); 1110} 1111 1112HWTEST_F(NativeEngineTest, testUrlSearchParams003, testing::ext::TestSize.Level0) 1113{ 1114 OHOS::Url::URL url("http://username:password@host:8080/directory/file?你好=china#qwer=da"); 1115 std::string output; 1116 napi_env env = (napi_env)engine_; 1117 DealNapiStrValue(env, url.GetSearch(env), output); 1118 ASSERT_STREQ(output.c_str(), "?你好=china"); 1119} 1120 1121HWTEST_F(NativeEngineTest, testUrlSearchParamsAppend001, testing::ext::TestSize.Level0) 1122{ 1123 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1124 std::string output; 1125 napi_env env = (napi_env)engine_; 1126 napi_value input1 = StrToNapiValue(env, "ma"); 1127 napi_value input2 = StrToNapiValue(env, "jk"); 1128 params.Append(env, input1, input2); 1129 napi_value tempValue = params.GetArray(env); 1130 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1131 DealNapiStrValue(env, ToString(env, paramsString), output); 1132 ASSERT_STREQ(output.c_str(), "ma=jk"); 1133} 1134 1135HWTEST_F(NativeEngineTest, testUrlSearchParamsAppend002, testing::ext::TestSize.Level0) 1136{ 1137 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1138 std::string output; 1139 napi_env env = (napi_env)engine_; 1140 napi_value input1 = StrToNapiValue(env, "ma 大"); 1141 napi_value input2 = StrToNapiValue(env, "jk¥"); 1142 params.Append(env, input1, input2); 1143 napi_value tempValue = params.GetArray(env); 1144 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1145 DealNapiStrValue(env, ToString(env, paramsString), output); 1146 ASSERT_STREQ(output.c_str(), "ma+%E5%A4%A7=jk%EF%BF%A5"); 1147} 1148 1149HWTEST_F(NativeEngineTest, testUrlSearchParamsAppend003, testing::ext::TestSize.Level0) 1150{ 1151 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1152 std::string output; 1153 napi_env env = (napi_env)engine_; 1154 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1155 napi_value input2 = StrToNapiValue(env, "jk"); 1156 params.Append(env, input1, input2); 1157 napi_value tempValue = params.GetArray(env); 1158 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1159 DealNapiStrValue(env, ToString(env, paramsString), output); 1160 ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk"); 1161} 1162 1163HWTEST_F(NativeEngineTest, testUrlSearchParamsAppend004, testing::ext::TestSize.Level0) 1164{ 1165 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1166 std::string output; 1167 napi_env env = (napi_env)engine_; 1168 napi_value result = nullptr; 1169 napi_get_undefined(env, &result); 1170 napi_value input2 = StrToNapiValue(env, "jk"); 1171 params.Append(env, result, input2); 1172 DealNapiStrValue(env, params.Get(env, input2), output); 1173 ASSERT_STREQ(output.c_str(), ""); 1174} 1175 1176HWTEST_F(NativeEngineTest, testUrlSearchParamsAppend005, testing::ext::TestSize.Level0) 1177{ 1178 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1179 std::string output; 1180 napi_env env = (napi_env)engine_; 1181 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1182 napi_value result = nullptr; 1183 napi_get_undefined(env, &result); 1184 params.Append(env, input1, result); 1185 DealNapiStrValue(env, params.Get(env, input1), output); 1186 ASSERT_STREQ(output.c_str(), ""); 1187} 1188 1189HWTEST_F(NativeEngineTest, testUrlSearchParamsDelete001, testing::ext::TestSize.Level0) 1190{ 1191 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1192 std::string output; 1193 napi_env env = (napi_env)engine_; 1194 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1195 napi_value input2 = StrToNapiValue(env, "jk"); 1196 params.Append(env, input1, input2); 1197 params.Delete(env, input1); 1198 napi_value tempValue = params.GetArray(env); 1199 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1200 DealNapiStrValue(env, ToString(env, paramsString), output); 1201 ASSERT_STREQ(output.c_str(), ""); 1202} 1203 1204HWTEST_F(NativeEngineTest, testUrlSearchParamsDelete002, testing::ext::TestSize.Level0) 1205{ 1206 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1207 std::string output; 1208 napi_env env = (napi_env)engine_; 1209 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1210 napi_value input2 = StrToNapiValue(env, "jk"); 1211 params.Append(env, input1, input2); 1212 napi_value input3 = StrToNapiValue(env, "ma"); 1213 napi_value input4 = StrToNapiValue(env, "jk"); 1214 params.Append(env, input3, input4); 1215 params.Delete(env, input1); 1216 napi_value tempValue = params.GetArray(env); 1217 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1218 DealNapiStrValue(env, ToString(env, paramsString), output); 1219 ASSERT_STREQ(output.c_str(), "ma=jk"); 1220} 1221 1222HWTEST_F(NativeEngineTest, testUrlSearchParamsDelete003, testing::ext::TestSize.Level0) 1223{ 1224 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1225 std::string output; 1226 napi_env env = (napi_env)engine_; 1227 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1228 napi_value input2 = StrToNapiValue(env, "jk"); 1229 params.Append(env, input1, input2); 1230 napi_value input3 = StrToNapiValue(env, "ma"); 1231 napi_value input4 = StrToNapiValue(env, "jk"); 1232 params.Append(env, input3, input4); 1233 params.Delete(env, input1); 1234 params.Delete(env, input3); 1235 napi_value tempValue = params.GetArray(env); 1236 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1237 DealNapiStrValue(env, ToString(env, paramsString), output); 1238 ASSERT_STREQ(output.c_str(), ""); 1239} 1240 1241HWTEST_F(NativeEngineTest, testUrlSearchParamsDelete004, testing::ext::TestSize.Level0) 1242{ 1243 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1244 std::string output; 1245 napi_env env = (napi_env)engine_; 1246 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1247 napi_value input2 = StrToNapiValue(env, "jk"); 1248 params.Append(env, input1, input2); 1249 napi_value input3 = StrToNapiValue(env, "ma"); 1250 napi_value input4 = StrToNapiValue(env, "jk"); 1251 params.Append(env, input3, input4); 1252 napi_value result = nullptr; 1253 napi_get_undefined(env, &result); 1254 params.Delete(env, result); 1255 DealNapiStrValue(env, params.Get(env, input3), output); 1256 ASSERT_STREQ(output.c_str(), "jk"); 1257} 1258 1259HWTEST_F(NativeEngineTest, testUrlSearchParamsGet001, testing::ext::TestSize.Level0) 1260{ 1261 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1262 std::string output; 1263 napi_env env = (napi_env)engine_; 1264 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1265 napi_value input2 = StrToNapiValue(env, "jk"); 1266 params.Append(env, input1, input2); 1267 DealNapiStrValue(env, params.Get(env, input1), output); 1268 ASSERT_STREQ(output.c_str(), "jk"); 1269} 1270 1271HWTEST_F(NativeEngineTest, testUrlSearchParamsGet002, testing::ext::TestSize.Level0) 1272{ 1273 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1274 std::string output; 1275 napi_env env = (napi_env)engine_; 1276 napi_value input1 = StrToNapiValue(env, "jk"); 1277 DealNapiStrValue(env, params.Get(env, input1), output); 1278 ASSERT_STREQ(output.c_str(), ""); 1279} 1280 1281HWTEST_F(NativeEngineTest, testUrlSearchParamsGet003, testing::ext::TestSize.Level0) 1282{ 1283 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1284 std::string output; 1285 napi_env env = (napi_env)engine_; 1286 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1287 napi_value input2 = StrToNapiValue(env, "jk"); 1288 params.Append(env, input1, input2); 1289 DealNapiStrValue(env, params.Get(env, input1), output); 1290 ASSERT_STREQ(output.c_str(), "jk"); 1291} 1292 1293HWTEST_F(NativeEngineTest, testUrlSearchParamsGet004, testing::ext::TestSize.Level0) 1294{ 1295 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1296 std::string output; 1297 napi_env env = (napi_env)engine_; 1298 napi_value input1 = StrToNapiValue(env, "hello, \U0001F600 world!"); 1299 DealNapiStrValue(env, params.Get(env, input1), output); 1300 ASSERT_STREQ(output.c_str(), ""); 1301} 1302 1303HWTEST_F(NativeEngineTest, testUrlSearchParamsGet005, testing::ext::TestSize.Level0) 1304{ 1305 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1306 std::string output; 1307 napi_env env = (napi_env)engine_; 1308 napi_value result = nullptr; 1309 napi_get_undefined(env, &result); 1310 DealNapiStrValue(env, params.Get(env, result), output); 1311 ASSERT_STREQ(output.c_str(), ""); 1312} 1313 1314HWTEST_F(NativeEngineTest, testUrlSearchParamsGet006, testing::ext::TestSize.Level0) 1315{ 1316 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1317 std::string output; 1318 napi_env env = (napi_env)engine_; 1319 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1320 napi_value input2 = StrToNapiValue(env, "jk"); 1321 napi_value input3 = StrToNapiValue(env, "asd"); 1322 params.Append(env, input1, input2); 1323 DealNapiStrValue(env, params.Get(env, input3), output); 1324 ASSERT_STREQ(output.c_str(), ""); 1325} 1326 1327HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll001, testing::ext::TestSize.Level0) 1328{ 1329 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1330 std::string output; 1331 napi_env env = (napi_env)engine_; 1332 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1333 napi_value input2 = StrToNapiValue(env, "jk"); 1334 params.Append(env, input1, input2); 1335 napi_value input3 = StrToNapiValue(env, "jk"); 1336 DealNapiStrValue(env, params.GetAll(env, input3), output); 1337 ASSERT_STREQ(output.c_str(), ""); 1338} 1339 1340HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll002, testing::ext::TestSize.Level0) 1341{ 1342 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1343 std::string output; 1344 napi_env env = (napi_env)engine_; 1345 napi_value input1 = StrToNapiValue(env, "ma"); 1346 napi_value input2 = StrToNapiValue(env, "jk"); 1347 params.Append(env, input1, input2); 1348 napi_value input3 = StrToNapiValue(env, "jk1"); 1349 DealNapiStrValue(env, params.GetAll(env, input3), output); 1350 ASSERT_STREQ(output.c_str(), ""); 1351} 1352 1353HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll003, testing::ext::TestSize.Level0) 1354{ 1355 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1356 std::string output; 1357 napi_env env = (napi_env)engine_; 1358 napi_value input1 = StrToNapiValue(env, "#[%@]"); 1359 napi_value input2 = StrToNapiValue(env, "jk"); 1360 params.Append(env, input1, input2); 1361 napi_value input3 = StrToNapiValue(env, "ma1"); 1362 napi_value input4 = StrToNapiValue(env, "jk1"); 1363 params.Append(env, input3, input4); 1364 napi_value input5 = StrToNapiValue(env, "jk2"); 1365 DealNapiStrValue(env, params.GetAll(env, input5), output); 1366 ASSERT_STREQ(output.c_str(), ""); 1367} 1368 1369HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll004, testing::ext::TestSize.Level0) 1370{ 1371 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1372 std::string output; 1373 napi_env env = (napi_env)engine_; 1374 napi_value result = nullptr; 1375 napi_get_undefined(env, &result); 1376 DealNapiStrValue(env, params.GetAll(env, result), output); 1377 ASSERT_STREQ(output.c_str(), ""); 1378} 1379 1380HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll005, testing::ext::TestSize.Level0) 1381{ 1382 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1383 std::string output; 1384 napi_env env = (napi_env)engine_; 1385 napi_value input1 = StrToNapiValue(env, "jk"); 1386 DealNapiStrValue(env, params.GetAll(env, input1), output); 1387 ASSERT_STREQ(output.c_str(), ""); 1388} 1389 1390HWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll006, testing::ext::TestSize.Level0) 1391{ 1392 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1393 std::string output; 1394 napi_env env = (napi_env)engine_; 1395 napi_value input1 = StrToNapiValue(env, "ma"); 1396 napi_value input2 = StrToNapiValue(env, "jk"); 1397 params.Append(env, input1, input2); 1398 napi_value input3 = StrToNapiValue(env, "ma"); 1399 DealNapiStrValue(env, params.GetAll(env, input3), output); 1400 ASSERT_STREQ(output.c_str(), ""); 1401} 1402 1403HWTEST_F(NativeEngineTest, testUrlSearchParamsToUSVString001, testing::ext::TestSize.Level0) 1404{ 1405 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1406 std::string output; 1407 napi_env env = (napi_env)engine_; 1408 napi_value input1 = StrToNapiValue(env, "你好"); 1409 napi_value input2 = StrToNapiValue(env, "안녕하세요"); 1410 params.Append(env, input1, input2); 1411 napi_value input3 = StrToNapiValue(env, "[saa]"); 1412 napi_value input4 = StrToNapiValue(env, "{aas}"); 1413 params.Append(env, input3, input4); 1414 napi_value input5 = StrToNapiValue(env, "你好"); 1415 DealNapiStrValue(env, params.Get(env, input5), output); 1416 ASSERT_STREQ(output.c_str(), "안녕하세요"); 1417} 1418 1419HWTEST_F(NativeEngineTest, testUrlSearchParamsHas001, testing::ext::TestSize.Level0) 1420{ 1421 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1422 std::string output; 1423 napi_env env = (napi_env)engine_; 1424 napi_value input1 = StrToNapiValue(env, "ma"); 1425 DealNapiStrValue(env, params.IsHas(env, input1), output); 1426 ASSERT_STREQ(output.c_str(), ""); 1427} 1428 1429HWTEST_F(NativeEngineTest, testUrlSearchParamsHas002, testing::ext::TestSize.Level0) 1430{ 1431 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1432 std::string output; 1433 napi_env env = (napi_env)engine_; 1434 napi_value input1 = StrToNapiValue(env, "ma"); 1435 napi_value input2 = StrToNapiValue(env, "jk"); 1436 params.Append(env, input1, input2); 1437 napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1438 napi_value input4 = StrToNapiValue(env, "jk1"); 1439 params.Append(env, input3, input4); 1440 DealNapiStrValue(env, params.IsHas(env, input1), output); 1441 ASSERT_STREQ(output.c_str(), ""); 1442} 1443 1444HWTEST_F(NativeEngineTest, testUrlSearchParamsHas003, testing::ext::TestSize.Level0) 1445{ 1446 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1447 std::string output; 1448 napi_env env = (napi_env)engine_; 1449 napi_value input1 = StrToNapiValue(env, "ma"); 1450 napi_value input2 = StrToNapiValue(env, "jk"); 1451 params.Append(env, input1, input2); 1452 napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1453 napi_value input4 = StrToNapiValue(env, "jk1"); 1454 params.Append(env, input3, input4); 1455 DealNapiStrValue(env, params.IsHas(env, input3), output); 1456 ASSERT_STREQ(output.c_str(), ""); 1457} 1458 1459HWTEST_F(NativeEngineTest, testUrlSearchParamsHas004, testing::ext::TestSize.Level0) 1460{ 1461 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1462 std::string output; 1463 napi_env env = (napi_env)engine_; 1464 napi_value input1 = StrToNapiValue(env, "ma"); 1465 napi_value input2 = StrToNapiValue(env, "jk"); 1466 params.Append(env, input1, input2); 1467 napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1468 napi_value input4 = StrToNapiValue(env, "jk1"); 1469 params.Append(env, input3, input4); 1470 napi_value result = nullptr; 1471 napi_get_undefined(env, &result); 1472 DealNapiStrValue(env, params.IsHas(env, result), output); 1473 ASSERT_STREQ(output.c_str(), ""); 1474} 1475 1476HWTEST_F(NativeEngineTest, testUrlSearchParamsSet001, testing::ext::TestSize.Level0) 1477{ 1478 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1479 std::string output; 1480 napi_env env = (napi_env)engine_; 1481 napi_value input1 = StrToNapiValue(env, "ma"); 1482 napi_value input2 = StrToNapiValue(env, "jk"); 1483 params.Append(env, input1, input2); 1484 napi_value input3 = StrToNapiValue(env, "aa"); 1485 params.Set(env, input1, input3); 1486 napi_value tempValue = params.GetArray(env); 1487 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1488 DealNapiStrValue(env, ToString(env, paramsString), output); 1489 ASSERT_STREQ(output.c_str(), "ma=aa"); 1490} 1491 1492HWTEST_F(NativeEngineTest, testUrlSearchParamsSet002, testing::ext::TestSize.Level0) 1493{ 1494 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1495 std::string output; 1496 napi_env env = (napi_env)engine_; 1497 napi_value input1 = StrToNapiValue(env, "ma1"); 1498 napi_value input2 = StrToNapiValue(env, "aa"); 1499 params.Append(env, input1, input2); 1500 params.Set(env, input1, input2); 1501 napi_value tempValue = params.GetArray(env); 1502 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1503 DealNapiStrValue(env, ToString(env, paramsString), output); 1504 ASSERT_STREQ(output.c_str(), "ma1=aa"); 1505} 1506 1507HWTEST_F(NativeEngineTest, testUrlSearchParamsSet003, testing::ext::TestSize.Level0) 1508{ 1509 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1510 std::string output; 1511 napi_env env = (napi_env)engine_; 1512 napi_value input1 = StrToNapiValue(env, "ma"); 1513 napi_value input2 = StrToNapiValue(env, "jk"); 1514 params.Append(env, input1, input2); 1515 napi_value input3 = StrToNapiValue(env, "ma1"); 1516 napi_value input4 = StrToNapiValue(env, "aa"); 1517 params.Set(env, input3, input4); 1518 napi_value tempValue = params.GetArray(env); 1519 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1520 DealNapiStrValue(env, ToString(env, paramsString), output); 1521 ASSERT_STREQ(output.c_str(), "ma=jk&ma1=aa"); 1522} 1523 1524HWTEST_F(NativeEngineTest, testUrlSearchParamsSet004, testing::ext::TestSize.Level0) 1525{ 1526 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1527 std::string output; 1528 napi_env env = (napi_env)engine_; 1529 napi_value input1 = StrToNapiValue(env, "ma1"); 1530 napi_value input2 = StrToNapiValue(env, "aa"); 1531 params.Append(env, input1, input2); 1532 napi_value result = nullptr; 1533 napi_get_undefined(env, &result); 1534 params.Set(env, result, input2); 1535 napi_value tempValue = params.GetArray(env); 1536 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1537 DealNapiStrValue(env, ToString(env, paramsString), output); 1538 ASSERT_STREQ(output.c_str(), "ma1=aa"); 1539} 1540 1541HWTEST_F(NativeEngineTest, testUrlSearchParamsSet005, testing::ext::TestSize.Level0) 1542{ 1543 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1544 std::string output; 1545 napi_env env = (napi_env)engine_; 1546 napi_value input1 = StrToNapiValue(env, "ma1"); 1547 napi_value input2 = StrToNapiValue(env, "aa"); 1548 params.Append(env, input1, input2); 1549 napi_value result = nullptr; 1550 napi_get_undefined(env, &result); 1551 params.Set(env, input1, result); 1552 napi_value tempValue = params.GetArray(env); 1553 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1554 DealNapiStrValue(env, ToString(env, paramsString), output); 1555 ASSERT_STREQ(output.c_str(), "ma1=aa"); 1556} 1557 1558 1559HWTEST_F(NativeEngineTest, testUrlSearchParamsSort001, testing::ext::TestSize.Level0) 1560{ 1561 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1562 std::string output; 1563 napi_env env = (napi_env)engine_; 1564 napi_value input1 = StrToNapiValue(env, "ma"); 1565 napi_value input2 = StrToNapiValue(env, "jk"); 1566 params.Append(env, input1, input2); 1567 napi_value input3 = StrToNapiValue(env, "a"); 1568 napi_value input4 = StrToNapiValue(env, "jk1"); 1569 params.Append(env, input3, input4); 1570 params.Sort(); 1571 napi_value tempValue = params.GetArray(env); 1572 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1573 DealNapiStrValue(env, ToString(env, paramsString), output); 1574 ASSERT_STREQ(output.c_str(), "a=jk1&ma=jk"); 1575} 1576 1577HWTEST_F(NativeEngineTest, testUrlSearchParamsSort002, testing::ext::TestSize.Level0) 1578{ 1579 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1580 std::string output; 1581 napi_env env = (napi_env)engine_; 1582 napi_value input1 = StrToNapiValue(env, "ma"); 1583 napi_value input2 = StrToNapiValue(env, "jk"); 1584 params.Append(env, input1, input2); 1585 napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1586 napi_value input4 = StrToNapiValue(env, "jk1"); 1587 params.Append(env, input3, input4); 1588 params.Sort(); 1589 napi_value tempValue = params.GetArray(env); 1590 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1591 DealNapiStrValue(env, ToString(env, paramsString), output); 1592 ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk1&ma=jk"); 1593} 1594 1595HWTEST_F(NativeEngineTest, testUrlSearchParamsSort003, testing::ext::TestSize.Level0) 1596{ 1597 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1598 std::string output; 1599 napi_env env = (napi_env)engine_; 1600 napi_value input1 = StrToNapiValue(env, "ma"); 1601 napi_value input2 = StrToNapiValue(env, "jk"); 1602 params.Append(env, input1, input2); 1603 napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1604 napi_value input4 = StrToNapiValue(env, "jk1"); 1605 params.Append(env, input3, input4); 1606 napi_value input5 = StrToNapiValue(env, "a"); 1607 napi_value input6 = StrToNapiValue(env, "jk2"); 1608 params.Append(env, input5, input6); 1609 params.Sort(); 1610 napi_value tempValue = params.GetArray(env); 1611 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1612 DealNapiStrValue(env, ToString(env, paramsString), output); 1613 ASSERT_STREQ(output.c_str(), "a=jk2&foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk1&ma=jk"); 1614} 1615 1616HWTEST_F(NativeEngineTest, testUrlSearchParamsToString001, testing::ext::TestSize.Level0) 1617{ 1618 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1619 std::string output; 1620 napi_env env = (napi_env)engine_; 1621 napi_value input1 = StrToNapiValue(env, "1 12"); 1622 napi_value input2 = StrToNapiValue(env, "jk"); 1623 params.Append(env, input1, input2); 1624 napi_value tempValue = params.GetArray(env); 1625 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1626 DealNapiStrValue(env, ToString(env, paramsString), output); 1627 ASSERT_STREQ(output.c_str(), "1+12=jk"); 1628} 1629 1630HWTEST_F(NativeEngineTest, testUrlSearchParamsToString002, testing::ext::TestSize.Level0) 1631{ 1632 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1633 std::string output; 1634 napi_env env = (napi_env)engine_; 1635 napi_value input1 = StrToNapiValue(env, "¥=)"); 1636 napi_value input2 = StrToNapiValue(env, "jk"); 1637 params.Append(env, input1, input2); 1638 napi_value tempValue = params.GetArray(env); 1639 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1640 DealNapiStrValue(env, ToString(env, paramsString), output); 1641 ASSERT_STREQ(output.c_str(), "%EF%BF%A5%3D%29=jk"); 1642} 1643 1644HWTEST_F(NativeEngineTest, testUrlSearchParamsToString003, testing::ext::TestSize.Level0) 1645{ 1646 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1647 std::string output; 1648 napi_env env = (napi_env)engine_; 1649 napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 1650 napi_value input2 = StrToNapiValue(env, "jk"); 1651 params.Append(env, input1, input2); 1652 napi_value tempValue = params.GetArray(env); 1653 std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 1654 DealNapiStrValue(env, ToString(env, paramsString), output); 1655 ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk"); 1656} 1657 1658HWTEST_F(NativeEngineTest, testUrlSearchParams, testing::ext::TestSize.Level0) 1659{ 1660 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1661 std::string output; 1662 napi_env env = (napi_env)engine_; 1663 napi_value input1 = StrToNapiValue(env, "ma"); 1664 DealNapiStrValue(env, params.IsHas(env, input1), output); 1665 ASSERT_STREQ(output.c_str(), ""); 1666} 1667 1668HWTEST_F(NativeEngineTest, testUrlSearchParamsSetArray, testing::ext::TestSize.Level0) 1669{ 1670 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1671 std::string input1 = "jk"; 1672 std::string input2 = "ma"; 1673 napi_env env = (napi_env)engine_; 1674 std::vector<std::string> vec; 1675 vec.push_back(input1); 1676 vec.push_back(input2); 1677 params.SetArray(env, vec); 1678 napi_value result = params.GetArray(env); 1679 uint32_t length = 0; 1680 napi_value napiStr = nullptr; 1681 size_t arraySize = 0; 1682 napi_get_array_length(env, result, &length); 1683 std::string cstr1 = ""; 1684 for (size_t i = 0; i < length; i++) { 1685 napi_get_element(env, result, i, &napiStr); 1686 napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 1687 if (arraySize > 0) { 1688 napi_get_value_string_utf8(env, napiStr, cstr1.data(), arraySize + 1, &arraySize); 1689 } 1690 if (i == 0) { 1691 ASSERT_STREQ("jk", cstr1.data()); 1692 } else { 1693 ASSERT_STREQ(cstr1.data(), "ma"); 1694 } 1695 } 1696} 1697 1698HWTEST_F(NativeEngineTest, testUrlSearchParamsIterByKeys, testing::ext::TestSize.Level0) 1699{ 1700 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1701 std::string input1 = "jk"; 1702 std::string input2 = "ma"; 1703 napi_env env = (napi_env)engine_; 1704 std::vector<std::string> vec; 1705 vec.push_back(input1); 1706 vec.push_back(input2); 1707 params.SetArray(env, vec); 1708 napi_value result = params.IterByKeys(env); 1709 uint32_t length = 0; 1710 napi_value napiStr = nullptr; 1711 size_t arraySize = 0; 1712 napi_get_array_length(env, result, &length); 1713 std::string cstr = ""; 1714 for (size_t i = 0; i < length; i += 2) { 1715 napi_get_element(env, result, i, &napiStr); 1716 napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 1717 if (arraySize > 0) { 1718 napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 1719 } 1720 } 1721 ASSERT_STREQ(cstr.data(), "jk"); 1722} 1723 1724HWTEST_F(NativeEngineTest, testUrlSearchParamsIterByValues, testing::ext::TestSize.Level0) 1725{ 1726 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1727 std::string input1 = "jk"; 1728 std::string input2 = "ma"; 1729 napi_env env = (napi_env)engine_; 1730 std::vector<std::string> vec; 1731 vec.push_back(input1); 1732 vec.push_back(input2); 1733 params.SetArray(env, vec); 1734 napi_value result = params.IterByValues(env); 1735 uint32_t length = 0; 1736 napi_value napiStr = nullptr; 1737 size_t arraySize = 0; 1738 napi_get_array_length(env, result, &length); 1739 std::string cstr = ""; 1740 for (size_t i = 0; i < length; i++) { 1741 napi_get_element(env, result, i, &napiStr); 1742 napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 1743 if (arraySize > 0) { 1744 napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 1745 } 1746 } 1747 ASSERT_STREQ(cstr.data(), "ma"); 1748} 1749 1750HWTEST_F(NativeEngineTest, testUrlSearchParamsEntries001, testing::ext::TestSize.Level0) 1751{ 1752 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1753 napi_env env = (napi_env)engine_; 1754 napi_value input1 = StrToNapiValue(env, "ma"); 1755 napi_value input2 = StrToNapiValue(env, "jk"); 1756 params.Append(env, input1, input2); 1757 napi_value input3 = StrToNapiValue(env, "你好"); 1758 napi_value input4 = StrToNapiValue(env, "jk1"); 1759 params.Append(env, input3, input4); 1760 napi_value input5 = StrToNapiValue(env, "a"); 1761 napi_value input6 = StrToNapiValue(env, "jk2"); 1762 params.Append(env, input5, input6); 1763 napi_value result = params.Entries(env); 1764 uint32_t length = 0; 1765 napi_value napiStr = nullptr; 1766 size_t arraySize = 0; 1767 napi_get_array_length(env, result, &length); 1768 std::string cstr = ""; 1769 for (size_t i = 0; i < length; i++) { 1770 napi_get_element(env, result, i, &napiStr); 1771 napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 1772 if (arraySize > 0) { 1773 napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 1774 } 1775 } 1776 ASSERT_EQ(length, 3); 1777} 1778 1779HWTEST_F(NativeEngineTest, testUrlSearchParamsEntries002, testing::ext::TestSize.Level0) 1780{ 1781 OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 1782 napi_env env = (napi_env)engine_; 1783 std::string output; 1784 params.Entries(env); 1785 napi_value input1 = StrToNapiValue(env, "ma"); 1786 DealNapiStrValue(env, params.Get(env, input1), output); 1787 ASSERT_STREQ(output.c_str(), ""); 1788} 1789 1790HWTEST_F(NativeEngineTest, testUrlutilities001, testing::ext::TestSize.Level0) 1791{ 1792 std::string inPut = ""; 1793 OHOS::Url::DecodeSpecialChars(inPut); 1794 inPut = "%1238"; 1795 OHOS::Url::DecodeSpecialChars(inPut); 1796 inPut = " "; 1797 OHOS::Url::DeleteC0OrSpace(inPut); 1798 inPut = " 123 "; 1799 OHOS::Url::DeleteC0OrSpace(inPut); 1800 inPut = "dks aasdd"; 1801 OHOS::Url::DeleteTabOrNewline(inPut); 1802 inPut = "1asdf"; 1803 std::string temp = ""; 1804 std::bitset<11> flags; // 11:Each bit of a BIT represents a different parsing state. 1805 bool isFalse = OHOS::Url::AnalysisScheme(inPut, temp, flags); 1806 ASSERT_FALSE(isFalse); 1807 inPut = "@Sdf"; 1808 OHOS::Url::AnalysisUsernameAndPasswd(inPut, temp, temp, flags); 1809 inPut = "12@3@222@Sdf"; 1810 OHOS::Url::AnalysisUsernameAndPasswd(inPut, temp, temp, flags); 1811 inPut = "../../"; 1812 std::vector<std::string> temp1; 1813 OHOS::Url::AnalysisPath(inPut, temp1, flags, true); 1814 inPut = "asd#sad"; 1815 OHOS::Url::AnalysisOpaqueHost(inPut, temp, flags); 1816 inPut = "asdsad"; 1817 OHOS::Url::AnalysisOpaqueHost(inPut, temp, flags); 1818 bool isHexDigit = OHOS::Url::IsHexDigit('/'); 1819 ASSERT_FALSE(isHexDigit); 1820} 1821 1822HWTEST_F(NativeEngineTest, testUrlutilities002, testing::ext::TestSize.Level0) 1823{ 1824 OHOS::Url::UrlData urlDataInfo; 1825 std::string inPut = "192.136.54.22"; 1826 std::string temp = ""; 1827 std::bitset<11> flags; 1828 OHOS::Url::DealIpv4(inPut); 1829 inPut = "1080:0:0:0:8:800:200C:417A"; 1830 OHOS::Url::FormatIpv6(inPut); 1831 inPut = "2136504"; 1832 size_t i = 0; 1833 OHOS::Url::SplitNum(inPut, i); 1834 inPut = "192.168.1.55"; 1835 OHOS::Url::AnalyseIPv4(inPut, temp, flags); 1836 inPut = ""; 1837 OHOS::Url::AnalysisHost(inPut, inPut, flags, true); 1838 inPut = "[asjdhkj"; 1839 OHOS::Url::AnalysisHost(inPut, inPut, flags, true); 1840 inPut = "f:11"; 1841 bool isTrue = OHOS::Url::ISFileNohost(inPut); 1842 ASSERT_TRUE(isTrue); 1843 inPut = "../../../"; 1844 OHOS::Url::AnalysisFilePath(inPut, urlDataInfo, flags); 1845 OHOS::Url::AnalysisFilescheme(inPut, urlDataInfo, flags); 1846 OHOS::Url::AnalyInfoPath(flags, urlDataInfo, inPut); 1847 inPut = "sadwasd"; 1848 OHOS::Url::AnalyHostPath(inPut, flags, urlDataInfo); 1849 inPut = "sad@wasd"; 1850 OHOS::Url::AnalyStrHost(inPut, urlDataInfo, flags); 1851 inPut = ""; 1852 OHOS::Url::AnalyStrHost(inPut, urlDataInfo, flags); 1853 inPut = "//sjalkjd"; 1854 urlDataInfo.scheme = "sa"; 1855 OHOS::Url::AnalysisNoDefaultProtocol(inPut, urlDataInfo, flags); 1856 inPut = "//sjalkjd"; 1857 urlDataInfo.scheme = ""; 1858 OHOS::Url::AnalysisNoDefaultProtocol(inPut, urlDataInfo, flags); 1859 inPut = ""; 1860 OHOS::Url::AnalysisOnlyHost(inPut, urlDataInfo, flags, i); 1861 bool isHexDigit = OHOS::Url::IsHexDigit('b'); 1862 ASSERT_TRUE(isHexDigit); 1863} 1864 1865std::string GetStringUtf8(napi_env env, napi_value str) 1866{ 1867 std::string buffer = ""; 1868 size_t bufferSize = 0; 1869 if (napi_get_value_string_utf8(env, str, nullptr, 0, &bufferSize) != napi_ok) { 1870 HILOG_ERROR("can not get src size"); 1871 return buffer; 1872 } 1873 buffer.resize(bufferSize); 1874 if (napi_get_value_string_utf8(env, str, buffer.data(), bufferSize + 1, &bufferSize) != napi_ok) { 1875 HILOG_ERROR("can not get src value"); 1876 return buffer; 1877 } 1878 return buffer; 1879} 1880 1881HWTEST_F(NativeEngineTest, testUrlModule001, testing::ext::TestSize.Level0) 1882{ 1883 napi_env env = (napi_env)engine_; 1884 napi_value exports = nullptr; 1885 napi_create_object(env, &exports); 1886 OHOS::Url::Init(env, exports); 1887 napi_value urlClass = nullptr; 1888 napi_value constructorArgs[1] = { 0 }; 1889 std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 1890 napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 1891 napi_get_named_property(env, exports, "Url", &urlClass); 1892 napi_value instance = nullptr; 1893 napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 1894 1895 std::string input1 = "www.example.com"; 1896 napi_value newValue = nullptr; 1897 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1898 napi_set_named_property(env, instance, "hostname", newValue); 1899 napi_value urlProperty = nullptr; 1900 napi_get_named_property(env, instance, "hostname", &urlProperty); 1901 std::string res = GetStringUtf8(env, urlProperty); 1902 ASSERT_STREQ(res.c_str(), "www.example.com"); 1903 1904 napi_value tempFn = nullptr; 1905 napi_get_named_property(env, instance, "onOrOff", &tempFn); 1906 bool res1 = false; 1907 napi_get_value_bool(env, tempFn, &res1); 1908 ASSERT_TRUE(res1); 1909 1910 napi_get_named_property(env, instance, "GetIsIpv6", &tempFn); 1911 res1 = true; 1912 napi_get_value_bool(env, tempFn, &res1); 1913 ASSERT_FALSE(res1); 1914 1915 input1 = "query1"; 1916 newValue = nullptr; 1917 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1918 napi_set_named_property(env, instance, "search", newValue); 1919 urlProperty = nullptr; 1920 napi_get_named_property(env, instance, "search", &urlProperty); 1921 res = GetStringUtf8(env, urlProperty); 1922 ASSERT_STREQ(res.c_str(), "?query1"); 1923 1924 input1 = "username1"; 1925 newValue = nullptr; 1926 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1927 napi_set_named_property(env, instance, "username", newValue); 1928 urlProperty = nullptr; 1929 napi_get_named_property(env, instance, "username", &urlProperty); 1930 res = GetStringUtf8(env, urlProperty); 1931 ASSERT_STREQ(res.c_str(), "username1"); 1932} 1933 1934HWTEST_F(NativeEngineTest, testUrlModule003, testing::ext::TestSize.Level0) 1935{ 1936 napi_env env = (napi_env)engine_; 1937 napi_value exports = nullptr; 1938 napi_create_object(env, &exports); 1939 OHOS::Url::Init(env, exports); 1940 napi_value urlClass = nullptr; 1941 napi_value constructorArgs[1] = { 0 }; 1942 std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 1943 napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 1944 napi_get_named_property(env, exports, "Url", &urlClass); 1945 napi_value instance = nullptr; 1946 napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 1947 1948 std::string input1 = "password1"; 1949 napi_value newValue = nullptr; 1950 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1951 napi_set_named_property(env, instance, "password", newValue); 1952 napi_value urlProperty = nullptr; 1953 napi_get_named_property(env, instance, "password", &urlProperty); 1954 std::string res = GetStringUtf8(env, urlProperty); 1955 ASSERT_STREQ(res.c_str(), "password1"); 1956 1957 input1 = "www.example.com:11"; 1958 newValue = nullptr; 1959 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1960 napi_set_named_property(env, instance, "host", newValue); 1961 urlProperty = nullptr; 1962 napi_get_named_property(env, instance, "host", &urlProperty); 1963 res = GetStringUtf8(env, urlProperty); 1964 ASSERT_STREQ(res.c_str(), "www.example.com:11"); 1965 1966 input1 = "fagment1"; 1967 newValue = nullptr; 1968 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1969 napi_set_named_property(env, instance, "hash", newValue); 1970 urlProperty = nullptr; 1971 napi_get_named_property(env, instance, "hash", &urlProperty); 1972 res = GetStringUtf8(env, urlProperty); 1973 ASSERT_STREQ(res.c_str(), "#fagment1"); 1974} 1975 1976HWTEST_F(NativeEngineTest, testUrlModule004, testing::ext::TestSize.Level0) 1977{ 1978 napi_env env = (napi_env)engine_; 1979 napi_value exports = nullptr; 1980 napi_create_object(env, &exports); 1981 OHOS::Url::Init(env, exports); 1982 napi_value urlClass = nullptr; 1983 napi_value constructorArgs[1] = { 0 }; 1984 std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 1985 napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 1986 napi_get_named_property(env, exports, "Url", &urlClass); 1987 napi_value instance = nullptr; 1988 napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 1989 1990 std::string input1 = "https:"; 1991 napi_value newValue = nullptr; 1992 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 1993 napi_set_named_property(env, instance, "protocol", newValue); 1994 napi_value urlProperty = nullptr; 1995 napi_get_named_property(env, instance, "protocol", &urlProperty); 1996 std::string res = GetStringUtf8(env, urlProperty); 1997 ASSERT_STREQ(res.c_str(), "https:"); 1998 1999 input1 = "/path/path1"; 2000 newValue = nullptr; 2001 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 2002 napi_set_named_property(env, instance, "pathname", newValue); 2003 urlProperty = nullptr; 2004 napi_get_named_property(env, instance, "pathname", &urlProperty); 2005 res = GetStringUtf8(env, urlProperty); 2006 ASSERT_STREQ(res.c_str(), "/path/path1"); 2007 2008 input1 = "55"; 2009 newValue = nullptr; 2010 napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 2011 napi_set_named_property(env, instance, "port", newValue); 2012 urlProperty = nullptr; 2013 napi_get_named_property(env, instance, "port", &urlProperty); 2014 res = GetStringUtf8(env, urlProperty); 2015 ASSERT_STREQ(res.c_str(), "55"); 2016 2017 napi_value constructorArgs1[1] = { 0 }; 2018 napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs1[0]); 2019 napi_value hrefFn = nullptr; 2020 napi_get_named_property(env, instance, "href", &hrefFn); 2021 napi_value result1 = nullptr; 2022 napi_call_function(env, instance, hrefFn, 1, constructorArgs1, &result1); 2023 2024 urlProperty = nullptr; 2025 napi_get_named_property(env, instance, "port", &urlProperty); 2026 res = GetStringUtf8(env, urlProperty); 2027 ASSERT_STREQ(res.c_str(), "99"); 2028} 2029 2030HWTEST_F(NativeEngineTest, testUrlModule002, testing::ext::TestSize.Level0) 2031{ 2032 napi_env env = (napi_env)engine_; 2033 napi_value exports = nullptr; 2034 napi_create_object(env, &exports); 2035 OHOS::Url::Init(env, exports); 2036 napi_value urlParamsClass = nullptr; 2037 napi_get_named_property(env, exports, "URLParams1", &urlParamsClass); 2038 napi_value instance = nullptr; 2039 napi_new_instance(env, urlParamsClass, 0, nullptr, &instance); 2040 2041 napi_value paramsFn = nullptr; 2042 napi_get_named_property(env, instance, "append", ¶msFn); 2043 napi_value input1 = StrToNapiValue(env, "ma"); 2044 napi_value input2 = StrToNapiValue(env, "jk"); 2045 napi_value args[] = { input1, input2 }; 2046 napi_value result = nullptr; 2047 napi_call_function(env, instance, paramsFn, 2, args, &result); 2048 2049 paramsFn = nullptr; 2050 napi_get_named_property(env, instance, "set", ¶msFn); 2051 napi_value input3 = StrToNapiValue(env, "aa"); 2052 napi_value args1[] = { input1, input3 }; 2053 napi_call_function(env, instance, paramsFn, 2, args1, &result); 2054 2055 paramsFn = nullptr; 2056 napi_get_named_property(env, instance, "array", ¶msFn); 2057 std::string output = ""; 2058 std::vector<std::string> paramsString = GetParamsStrig(env, paramsFn); 2059 DealNapiStrValue(env, ToString(env, paramsString), output); 2060 ASSERT_STREQ(output.c_str(), "ma=aa"); 2061 napi_set_named_property(env, instance, "array", paramsFn); 2062 2063 paramsFn = nullptr; 2064 napi_get_named_property(env, instance, "has", ¶msFn); 2065 napi_value args2[1] = { input1 }; 2066 napi_call_function(env, instance, paramsFn, 1, args2, &result); 2067 bool res1 = false; 2068 napi_get_value_bool(env, result, &res1); 2069 ASSERT_TRUE(res1); 2070} 2071HWTEST_F(NativeEngineTest, testUrlModule005, testing::ext::TestSize.Level0) 2072{ 2073 napi_env env = (napi_env)engine_; 2074 napi_value exports = nullptr; 2075 napi_create_object(env, &exports); 2076 OHOS::Url::Init(env, exports); 2077 napi_value urlParamsClass = nullptr; 2078 napi_get_named_property(env, exports, "URLParams1", &urlParamsClass); 2079 napi_value instance = nullptr; 2080 napi_new_instance(env, urlParamsClass, 0, nullptr, &instance); 2081 std::string output = ""; 2082 napi_value paramsFn = nullptr; 2083 napi_get_named_property(env, instance, "append", ¶msFn); 2084 napi_value input1 = StrToNapiValue(env, "ma"); 2085 napi_value result = nullptr; 2086 2087 paramsFn = nullptr; 2088 napi_get_named_property(env, instance, "set", ¶msFn); 2089 napi_value input3 = StrToNapiValue(env, "aa"); 2090 napi_value args1[] = { input1, input3 }; 2091 napi_call_function(env, instance, paramsFn, 2, args1, &result); 2092 2093 paramsFn = nullptr; 2094 napi_get_named_property(env, instance, "sort", ¶msFn); 2095 napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 2096 2097 paramsFn = nullptr; 2098 napi_get_named_property(env, instance, "keys", ¶msFn); 2099 napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 2100 2101 paramsFn = nullptr; 2102 napi_get_named_property(env, instance, "values", ¶msFn); 2103 napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 2104 2105 paramsFn = nullptr; 2106 napi_get_named_property(env, instance, "get", ¶msFn); 2107 2108 napi_value args3[1] = { input1 }; 2109 napi_call_function(env, instance, paramsFn, 1, args3, &result); 2110 DealNapiStrValue(env, result, output); 2111 ASSERT_STREQ(output.c_str(), "aa"); 2112 2113 paramsFn = nullptr; 2114 napi_get_named_property(env, instance, "getAll", ¶msFn); 2115 2116 napi_value args4[1] = { input1 }; 2117 napi_call_function(env, instance, paramsFn, 1, args4, &result); 2118 DealNapiStrValue(env, result, output); 2119 ASSERT_STREQ(output.c_str(), "aa"); 2120 2121 paramsFn = nullptr; 2122 napi_get_named_property(env, instance, "entries", ¶msFn); 2123 napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 2124 2125 paramsFn = nullptr; 2126 napi_get_named_property(env, instance, "delete", ¶msFn); 2127 napi_value args5[1] = { input1 }; 2128 napi_call_function(env, instance, paramsFn, 1, args5, &result); 2129 DealNapiStrValue(env, result, output); 2130 ASSERT_STREQ(output.c_str(), "aa"); 2131} 2132HWTEST_F(NativeEngineTest, testUrlModule006, testing::ext::TestSize.Level0) 2133{ 2134 std::string inPut = "#1asdf"; 2135 std::string temp = ""; 2136 std::bitset<11> flags; // 11:Each bit of a BIT represents a different parsing state. 2137 bool isFalse = OHOS::Url::AnalysisScheme(inPut, temp, flags); 2138 ASSERT_FALSE(isFalse); 2139} 2140 2141HWTEST_F(NativeEngineTest, testUrlModule007, testing::ext::TestSize.Level0) 2142{ 2143 std::string inPut = ""; 2144 std::string temp = ""; 2145 std::bitset<11> flags(1023) ; // 11:Each bit of a BIT represents a different parsing state. 2146 OHOS::Url::AnalysisScheme(inPut, temp, flags); 2147 long a = flags.to_ulong(); 2148 ASSERT_EQ(a, 1023); 2149} 2150 2151HWTEST_F(NativeEngineTest, testUrlModule008, testing::ext::TestSize.Level0) 2152{ 2153 std::string inPut = "66666"; 2154 std::string temp = ""; 2155 std::bitset<11> flags(1023) ; // 11:Each bit of a BIT represents a different parsing state. 2156 OHOS::Url::AnalysisScheme(inPut, temp, flags); 2157 long a = flags.to_ulong(); 2158 ASSERT_EQ(a, 1023); 2159} 2160 2161HWTEST_F(NativeEngineTest, testUrlutilities009, testing::ext::TestSize.Level0) 2162{ 2163 std::string inPut = "99::1080:0:0:8:800:200C:417A"; 2164 OHOS::Url::FormatIpv6(inPut); 2165 ASSERT_STREQ(inPut.c_str(), "99:1080:0:0:8:800:200C:417A"); 2166 inPut = "::99:1080:0:0:8:800:200C:417A"; 2167 OHOS::Url::FormatIpv6(inPut); 2168 ASSERT_STREQ(inPut.c_str(), "0:99:1080:0:0:8:800:200C:417A"); 2169} 2170 2171HWTEST_F(NativeEngineTest, testUrlutilities010, testing::ext::TestSize.Level0) 2172{ 2173 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 2174 std::string str = "0x.23.56"; 2175 url.SetHostname(str); 2176 ASSERT_STREQ(str.c_str(), "0x.23.56"); 2177} 2178 2179HWTEST_F(NativeEngineTest, testUrlutilities011, testing::ext::TestSize.Level0) 2180{ 2181 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 2182 std::string str = "0.23.56"; 2183 url.SetHostname(str); 2184 ASSERT_STREQ(str.c_str(), "0.23.56"); 2185} 2186 2187HWTEST_F(NativeEngineTest, testUrlutilities012, testing::ext::TestSize.Level0) 2188{ 2189 OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 2190 std::string str = "33.""."; 2191 url.SetHostname(str); 2192 ASSERT_STREQ(str.c_str(), "33.."); 2193} 2194 2195HWTEST_F(NativeEngineTest, testUrlutilities013, testing::ext::TestSize.Level0) 2196{ 2197 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 2198 std::string str = "111111111.1001000.111.10101"; 2199 url.SetHost(str); 2200 ASSERT_STREQ(str.c_str(), "111111111.1001000.111.10101"); 2201} 2202 2203HWTEST_F(NativeEngineTest, testUrlutilities014, testing::ext::TestSize.Level0) 2204{ 2205 OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 2206 std::string str = "10.11.11111111"; 2207 url.SetHost(str); 2208 ASSERT_STREQ(str.c_str(), "10.11.11111111"); 2209} 2210 2211HWTEST_F(NativeEngineTest, testUrlutilities015, testing::ext::TestSize.Level0) 2212{ 2213 std::string str = "hello world!"; 2214 size_t number = 0; 2215 OHOS::Url::SplitNum(str, number); 2216 ASSERT_STREQ(str.c_str(), "hello world!"); 2217} 2218 2219HWTEST_F(NativeEngineTest, testUrlutilities016, testing::ext::TestSize.Level0) 2220{ 2221 std::string input = "H+#LLOWORLD"; 2222 std::string scheme = ""; 2223 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2224 bool rst = OHOS::Url::AnalysisScheme(input, scheme, flags); 2225 ASSERT_FALSE(rst); 2226} 2227 2228HWTEST_F(NativeEngineTest, testUrlutilities017, testing::ext::TestSize.Level0) 2229{ 2230 std::string input = "H+#LLOWORLD:"; 2231 OHOS::Url::UrlData urlinfo; 2232 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2233 size_t pos = 0; 2234 OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 2235 ASSERT_STREQ(input.c_str(), "H+#LLOWORLD:"); 2236} 2237 2238HWTEST_F(NativeEngineTest, testUrlutilities018, testing::ext::TestSize.Level0) 2239{ 2240 std::string input = "H+#LLOWORLD:65536"; 2241 OHOS::Url::UrlData urlinfo; 2242 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2243 size_t pos = 0; 2244 OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 2245 ASSERT_STREQ(input.c_str(), "H+#LLOWORLD:65536"); 2246} 2247 2248HWTEST_F(NativeEngineTest, testUrlutilities019, testing::ext::TestSize.Level0) 2249{ 2250 std::string input01 = "256"; 2251 std::vector<std::string> nums; 2252 nums.push_back(input01); 2253 std::string host; 2254 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2255 OHOS::Url::FormatIpv4(nums, host, flags); 2256 ASSERT_STREQ(host.c_str(), "0.0.1.0"); 2257} 2258 2259HWTEST_F(NativeEngineTest, testUrlutilities020, testing::ext::TestSize.Level0) 2260{ 2261 std::string input = "abcdefghi"; 2262 std::string input01 = "1"; 2263 std::string input02 = "2"; 2264 std::vector<std::string> nums; 2265 nums.push_back(input); 2266 nums.push_back(input01); 2267 nums.push_back(input02); 2268 std::string host; 2269 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2270 OHOS::Url::FormatIpv4(nums, host, flags); 2271 ASSERT_EQ(nums.size(), 3); 2272} 2273 2274HWTEST_F(NativeEngineTest, testUrlutilities021, testing::ext::TestSize.Level0) 2275{ 2276 std::string input = "155.155.256.111111111"; 2277 std::string host; 2278 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2279 OHOS::Url::AnalyseIPv4(input, host, flags); 2280 ASSERT_STREQ(input.c_str(), "155.155.256.111111111"); 2281} 2282 2283HWTEST_F(NativeEngineTest, testUrlutilities022, testing::ext::TestSize.Level0) 2284{ 2285 std::string input = "http://example.com/path/.%2E/to%2eresource"; 2286 OHOS::Url::UrlData urlinfo; 2287 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2288 OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 2289 ASSERT_STREQ(input.c_str(), "to%2eresource"); 2290} 2291 2292HWTEST_F(NativeEngineTest, testUrlutilities023, testing::ext::TestSize.Level0) 2293{ 2294 std::string input = "http://example.com/path/to%2eresource/%2E"; 2295 OHOS::Url::UrlData urlinfo; 2296 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2297 OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 2298 ASSERT_STREQ(input.c_str(), "%2E"); 2299} 2300 2301HWTEST_F(NativeEngineTest, testUrlutilities024, testing::ext::TestSize.Level0) 2302{ 2303 std::string input = ".%2E"; 2304 OHOS::Url::UrlData urlinfo; 2305 std::string str = "h:"; 2306 urlinfo.path.push_back(str); 2307 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2308 OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 2309 ASSERT_STREQ(input.c_str(), ".%2E"); 2310} 2311 2312HWTEST_F(NativeEngineTest, testUrlutilities025, testing::ext::TestSize.Level0) 2313{ 2314 std::string input = ".%2E"; 2315 OHOS::Url::UrlData urlinfo; 2316 std::string str = "w:"; 2317 urlinfo.path.push_back(str); 2318 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2319 OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 2320 ASSERT_STREQ(input.c_str(), ".%2E"); 2321} 2322 2323HWTEST_F(NativeEngineTest, testUrlutilities026, testing::ext::TestSize.Level0) 2324{ 2325 std::string input = ".%2E"; 2326 OHOS::Url::UrlData urlinfo; 2327 std::string str = "z:"; 2328 urlinfo.path.push_back(str); 2329 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2330 OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 2331 ASSERT_STREQ(input.c_str(), ".%2E"); 2332} 2333 2334HWTEST_F(NativeEngineTest, testUrlutilities027, testing::ext::TestSize.Level0) 2335{ 2336 std::string temp = "w:51"; 2337 size_t pos = 2; 2338 OHOS::Url::UrlData urlinfo; 2339 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2340 OHOS::Url::AnalysisSpecialFile(temp, pos, urlinfo, flags); 2341 ASSERT_STREQ(temp.c_str(), "w:51"); 2342} 2343 2344HWTEST_F(NativeEngineTest, testUrlutilities028, testing::ext::TestSize.Level0) 2345{ 2346 std::string input = "/g";; 2347 OHOS::Url::UrlData urlinfo; 2348 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2349 OHOS::Url::AnalysisFile(input, urlinfo, flags); 2350 ASSERT_STREQ(input.c_str(), "g"); 2351} 2352 2353HWTEST_F(NativeEngineTest, testUrlutilities029, testing::ext::TestSize.Level0) 2354{ 2355 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2356 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2357 std::string input = "//abc"; 2358 OHOS::Url::UrlData urlinfo; 2359 OHOS::Url::AnalysisFile(input, urlinfo, flags); 2360 ASSERT_STREQ(input.c_str(), "//abc"); 2361} 2362 2363HWTEST_F(NativeEngineTest, testUrlutilities030, testing::ext::TestSize.Level0) 2364{ 2365 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2366 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2367 std::string input = "/abc"; 2368 OHOS::Url::UrlData urlinfo; 2369 OHOS::Url::AnalyInfoPath(flags, urlinfo, input); 2370 ASSERT_STREQ(input.c_str(), "/abc"); 2371} 2372 2373HWTEST_F(NativeEngineTest, testUrlutilities031, testing::ext::TestSize.Level0) 2374{ 2375 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2376 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2377 std::string input = ":h"; 2378 OHOS::Url::UrlData urlinfo; 2379 OHOS::Url::AnalyHostPath(input, flags, urlinfo); 2380 ASSERT_TRUE(flags[0]); 2381} 2382 2383HWTEST_F(NativeEngineTest, testUrlutilities032, testing::ext::TestSize.Level0) 2384{ 2385 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2386 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2387 std::string input = "///"; 2388 OHOS::Url::UrlData urlinfo; 2389 OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 2390 ASSERT_STREQ(input.c_str(), "///"); 2391} 2392 2393HWTEST_F(NativeEngineTest, testUrlutilities033, testing::ext::TestSize.Level0) 2394{ 2395 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2396 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2397 std::string input = "//"; 2398 OHOS::Url::UrlData urlinfo; 2399 OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 2400 ASSERT_STREQ(input.c_str(), "//"); 2401} 2402 2403HWTEST_F(NativeEngineTest, testUrlutilities034, testing::ext::TestSize.Level0) 2404{ 2405 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2406 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2407 std::string input = "//::/"; 2408 OHOS::Url::UrlData urlinfo; 2409 OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 2410 ASSERT_STREQ(input.c_str(), "//::/"); 2411} 2412 2413HWTEST_F(NativeEngineTest, testUrlutilities035, testing::ext::TestSize.Level0) 2414{ 2415 std::string input = "abc:d:e"; 2416 OHOS::Url::UrlData urlinfo; 2417 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2418 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2419 size_t pos = 0; 2420 OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 2421 ASSERT_STREQ(input.c_str(), "abc:d:e"); 2422} 2423 2424HWTEST_F(NativeEngineTest, testUrlutilities036, testing::ext::TestSize.Level0) 2425{ 2426 std::string input = "abc:d:e/fg"; 2427 OHOS::Url::UrlData urlinfo; 2428 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2429 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2430 size_t pos = 6; // 6:string position 2431 OHOS::Url::ParsingHostAndPath(input, urlinfo, pos, flags); 2432 ASSERT_STREQ(input.c_str(), "abc:d:e/fg"); 2433} 2434 2435HWTEST_F(NativeEngineTest, testUrlutilities037, testing::ext::TestSize.Level0) 2436{ 2437 OHOS::Url::UrlData urlData; 2438 OHOS::Url::UrlData baseData; 2439 baseData.path.push_back(""); 2440 urlData.path.push_back(""); 2441 bool isFile = false; 2442 OHOS::Url::ShorteningPath(urlData, baseData, isFile); 2443 ASSERT_FALSE(isFile); 2444} 2445 2446HWTEST_F(NativeEngineTest, testUrlutilities038, testing::ext::TestSize.Level0) 2447{ 2448 OHOS::Url::UrlData urlData; 2449 OHOS::Url::UrlData baseData; 2450 baseData.path.push_back("a:"); 2451 urlData.path.push_back("a"); 2452 bool isFile = true; 2453 OHOS::Url::ShorteningPath(urlData, baseData, isFile); 2454 ASSERT_TRUE(isFile); 2455} 2456 2457HWTEST_F(NativeEngineTest, testUrlutilities040, testing::ext::TestSize.Level0) 2458{ 2459 std::string input = ".%2E"; 2460 std::vector<std::string> path; 2461 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2462 bool isSpecial = true; 2463 OHOS::Url::AnalysisPath(input, path, flags, isSpecial); 2464 ASSERT_STREQ(input.c_str(), ".%2E"); 2465} 2466 2467HWTEST_F(NativeEngineTest, testUrlutilities041, testing::ext::TestSize.Level0) 2468{ 2469 std::string input = "%2E"; 2470 std::vector<std::string> path; 2471 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2472 bool isSpecial = true; 2473 OHOS::Url::AnalysisPath(input, path, flags, isSpecial); 2474 ASSERT_STREQ(input.c_str(), "%2E"); 2475} 2476 2477HWTEST_F(NativeEngineTest, testUrlutilities042, testing::ext::TestSize.Level0) 2478{ 2479 std::string input = "99::1080:800:200C:417A"; 2480 OHOS::Url::FormatIpv6(input); 2481 ASSERT_STREQ(input.c_str(), "99:0:0:0:1080:800:200C:417A"); 2482} 2483 2484HWTEST_F(NativeEngineTest, testUrlutilities043, testing::ext::TestSize.Level0) 2485{ 2486 std::string input = "000:1080:800:200C:417A"; 2487 std::vector<std::string> ipv6; 2488 ipv6.push_back(input); 2489 OHOS::Url::RemoveLeadingZeros(ipv6); 2490 ASSERT_STREQ(input.c_str(), "000:1080:800:200C:417A"); 2491} 2492 2493HWTEST_F(NativeEngineTest, testUrlutilities044, testing::ext::TestSize.Level0) 2494{ 2495 std::string input = "::ffff:192.168.1.1"; 2496 std::string host = ""; 2497 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2498 OHOS::Url::IPv6Host(input, host, flags); 2499 ASSERT_STREQ(input.c_str(), "::ffff:c0a8:101"); 2500} 2501 2502HWTEST_F(NativeEngineTest, testUrlutilities045, testing::ext::TestSize.Level0) 2503{ 2504 std::string input = "w"; 2505 OHOS::Url::UrlData urlinfo; 2506 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2507 OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 2508 ASSERT_STREQ(input.c_str(), "w"); 2509} 2510 2511HWTEST_F(NativeEngineTest, testUrlutilities046, testing::ext::TestSize.Level0) 2512{ 2513 std::string input = "ww:w]wa:b]c/www"; 2514 OHOS::Url::UrlData urlinfo; 2515 size_t pos; 2516 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2517 flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 2518 OHOS::Url::ParsingHostAndPath(input, urlinfo, pos, flags); 2519 ASSERT_STREQ(input.c_str(), "ww:w]wa:b]c/www"); 2520} 2521 2522HWTEST_F(NativeEngineTest, testUrlutilities047, testing::ext::TestSize.Level0) 2523{ 2524 OHOS::Url::UrlData urlData; 2525 std::string s1 = "www"; 2526 std::string s2 = "aaa"; 2527 std::string s3 = "bbb"; 2528 std::string s4 = "ccc"; 2529 urlData.path.push_back(s1); 2530 urlData.path.push_back(s2); 2531 urlData.path.push_back(s3); 2532 urlData.path.push_back(s4); 2533 std::string rst = OHOS::Url::BasePathToStr(urlData); 2534 ASSERT_STREQ(rst.c_str(), "www/aaa/bbb/ccc"); 2535} 2536 2537HWTEST_F(NativeEngineTest, testUrlutilities048, testing::ext::TestSize.Level0) 2538{ 2539 std::vector<std::string> ipv6; 2540 std::string str = "00ccccc"; 2541 ipv6.push_back(str); 2542 OHOS::Url::RemoveLeadingZeros(ipv6); 2543 ASSERT_STREQ(str.c_str(), "00ccccc"); 2544} 2545 2546HWTEST_F(NativeEngineTest, testUrlutilities049, testing::ext::TestSize.Level0) 2547{ 2548 std::string input = "//@/aabab"; 2549 OHOS::Url::UrlData urlinfo; 2550 std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 2551 OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 2552 ASSERT_STREQ(input.c_str(), "//@/aabab"); 2553} 2554 2555HWTEST_F(NativeEngineTest, testUrlutilities050, testing::ext::TestSize.Level0) 2556{ 2557 std::string input = "99::1080:8:800:200C:417A"; 2558 OHOS::Url::FormatIpv6(input); 2559 ASSERT_STREQ(input.c_str(), "99:0:0:1080:8:800:200C:417A"); 2560}