14d6c458bSopenharmony_ci/* 24d6c458bSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 34d6c458bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d6c458bSopenharmony_ci * you may not use this file except in compliance with the License. 54d6c458bSopenharmony_ci * You may obtain a copy of the License at 64d6c458bSopenharmony_ci * 74d6c458bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d6c458bSopenharmony_ci * 94d6c458bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d6c458bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d6c458bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d6c458bSopenharmony_ci * See the License for the specific language governing permissions and 134d6c458bSopenharmony_ci * limitations under the License. 144d6c458bSopenharmony_ci */ 154d6c458bSopenharmony_ci 164d6c458bSopenharmony_ci#include "test.h" 174d6c458bSopenharmony_ci#include "napi/native_api.h" 184d6c458bSopenharmony_ci#include "napi/native_node_api.h" 194d6c458bSopenharmony_ci#include "tools/log.h" 204d6c458bSopenharmony_ci#include "js_url.h" 214d6c458bSopenharmony_ci#include <regex> 224d6c458bSopenharmony_ci#include <sstream> 234d6c458bSopenharmony_ci#include "securec.h" 244d6c458bSopenharmony_ci#include "unicode/stringpiece.h" 254d6c458bSopenharmony_ci#include "unicode/unistr.h" 264d6c458bSopenharmony_ci#include "native_module_url.h" 274d6c458bSopenharmony_ci 284d6c458bSopenharmony_ci#define ASSERT_CHECK_CALL(call) \ 294d6c458bSopenharmony_ci { \ 304d6c458bSopenharmony_ci ASSERT_EQ(call, napi_ok); \ 314d6c458bSopenharmony_ci } 324d6c458bSopenharmony_ci 334d6c458bSopenharmony_ci#define ASSERT_CHECK_VALUE_TYPE(env, value, type) \ 344d6c458bSopenharmony_ci { \ 354d6c458bSopenharmony_ci napi_valuetype valueType = napi_undefined; \ 364d6c458bSopenharmony_ci ASSERT_TRUE(value != nullptr); \ 374d6c458bSopenharmony_ci ASSERT_CHECK_CALL(napi_typeof(env, value, &valueType)); \ 384d6c458bSopenharmony_ci ASSERT_EQ(valueType, type); \ 394d6c458bSopenharmony_ci } 404d6c458bSopenharmony_ci 414d6c458bSopenharmony_cinapi_status DealNapiStrValue(napi_env env, const napi_value napiStr, std::string &result) 424d6c458bSopenharmony_ci{ 434d6c458bSopenharmony_ci std::string buffer = ""; 444d6c458bSopenharmony_ci size_t bufferSize = 0; 454d6c458bSopenharmony_ci napi_status status = napi_ok; 464d6c458bSopenharmony_ci status = napi_get_value_string_utf8(env, napiStr, nullptr, -1, &bufferSize); 474d6c458bSopenharmony_ci buffer.reserve(bufferSize + 1); 484d6c458bSopenharmony_ci buffer.resize(bufferSize); 494d6c458bSopenharmony_ci if (status != napi_ok) { 504d6c458bSopenharmony_ci HILOG_ERROR("can not get buffer size"); 514d6c458bSopenharmony_ci return status; 524d6c458bSopenharmony_ci } 534d6c458bSopenharmony_ci if (bufferSize > 0) { 544d6c458bSopenharmony_ci status = napi_get_value_string_utf8(env, napiStr, buffer.data(), bufferSize + 1, &bufferSize); 554d6c458bSopenharmony_ci if (status != napi_ok) { 564d6c458bSopenharmony_ci HILOG_ERROR("can not get buffer value"); 574d6c458bSopenharmony_ci return status; 584d6c458bSopenharmony_ci } 594d6c458bSopenharmony_ci } 604d6c458bSopenharmony_ci if (buffer.data() != nullptr) { 614d6c458bSopenharmony_ci result = buffer; 624d6c458bSopenharmony_ci } 634d6c458bSopenharmony_ci return status; 644d6c458bSopenharmony_ci} 654d6c458bSopenharmony_ci 664d6c458bSopenharmony_cinapi_value StrToNapiValue(napi_env env, const std::string &result) 674d6c458bSopenharmony_ci{ 684d6c458bSopenharmony_ci napi_value output = nullptr; 694d6c458bSopenharmony_ci napi_create_string_utf8(env, result.c_str(), result.size(), &output); 704d6c458bSopenharmony_ci return output; 714d6c458bSopenharmony_ci} 724d6c458bSopenharmony_ci 734d6c458bSopenharmony_cistatic bool IsEscapeRange(const char ch) 744d6c458bSopenharmony_ci{ 754d6c458bSopenharmony_ci if ((ch > 0 && ch < '*') || (ch > '*' && ch < '-') || (ch == '/') || 764d6c458bSopenharmony_ci (ch > '9' && ch < 'A') || (ch > 'Z' && ch < '_') || (ch == '`') || (ch > 'z')) { 774d6c458bSopenharmony_ci return true; 784d6c458bSopenharmony_ci } 794d6c458bSopenharmony_ci return false; 804d6c458bSopenharmony_ci} 814d6c458bSopenharmony_ci 824d6c458bSopenharmony_cistatic std::string ReviseStr(std::string &str, std::string *reviseChar) 834d6c458bSopenharmony_ci{ 844d6c458bSopenharmony_ci icu::StringPiece sp(str.c_str()); 854d6c458bSopenharmony_ci icu::UnicodeString wstr = icu::UnicodeString::fromUTF8(sp); 864d6c458bSopenharmony_ci const size_t lenStr = static_cast<size_t>(wstr.length()); 874d6c458bSopenharmony_ci if (lenStr == 0) { 884d6c458bSopenharmony_ci return ""; 894d6c458bSopenharmony_ci } 904d6c458bSopenharmony_ci std::string output = ""; 914d6c458bSopenharmony_ci size_t numOfAscii = 128; // 128:Number of ASCII characters 924d6c458bSopenharmony_ci size_t i = 0; 934d6c458bSopenharmony_ci for (; i < lenStr; i++) { 944d6c458bSopenharmony_ci auto charaEncode = static_cast<size_t>(wstr[i]); 954d6c458bSopenharmony_ci if (charaEncode < numOfAscii) { 964d6c458bSopenharmony_ci // 2:Defines the escape range of ASCII characters 974d6c458bSopenharmony_ci if (IsEscapeRange(charaEncode)) { 984d6c458bSopenharmony_ci output += reviseChar[charaEncode]; 994d6c458bSopenharmony_ci } else { 1004d6c458bSopenharmony_ci output += str.substr(i, 1); 1014d6c458bSopenharmony_ci } 1024d6c458bSopenharmony_ci } else if (charaEncode <= 0x000007FF) { // Convert the Unicode code into two bytes 1034d6c458bSopenharmony_ci std::string output1 = reviseChar[0x000000C0 | (charaEncode / 64)]; // 64:the first byte 1044d6c458bSopenharmony_ci std::string output2 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 1054d6c458bSopenharmony_ci output += output1 + output2; 1064d6c458bSopenharmony_ci } else if ((charaEncode >= 0x0000E000) || (charaEncode <= 0x0000D7FF)) { 1074d6c458bSopenharmony_ci std::string output1 = reviseChar[0x000000E0 | (charaEncode / 4096)]; // 4096:Acquisition method 1084d6c458bSopenharmony_ci std::string output2 = reviseChar[numOfAscii | ((charaEncode / 64) & 0x0000003F)]; // 64:second byte 1094d6c458bSopenharmony_ci std::string output3 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 1104d6c458bSopenharmony_ci output += output1 + output2 + output3; 1114d6c458bSopenharmony_ci } else { 1124d6c458bSopenharmony_ci const size_t charaEncode1 = static_cast<size_t>(str[++i]) & 1023; // 1023:Convert codes 1134d6c458bSopenharmony_ci charaEncode = 65536 + (((charaEncode & 1023) << 10) | charaEncode1); // 65536:Specific transcoding 1144d6c458bSopenharmony_ci std::string output1 = reviseChar[0x000000F0 | (charaEncode / 262144)]; // 262144:the first byte 1154d6c458bSopenharmony_ci std::string output2 = reviseChar[numOfAscii | ((charaEncode / 4096) & 0x0000003F)]; // 4096:second byte 1164d6c458bSopenharmony_ci std::string output3 = reviseChar[numOfAscii | ((charaEncode / 64) & 0x0000003F)]; // 64:third byte 1174d6c458bSopenharmony_ci std::string output4 = reviseChar[numOfAscii | (charaEncode & 0x0000003F)]; 1184d6c458bSopenharmony_ci output += output1 + output2 + output3 + output4; 1194d6c458bSopenharmony_ci } 1204d6c458bSopenharmony_ci } 1214d6c458bSopenharmony_ci return output; 1224d6c458bSopenharmony_ci} 1234d6c458bSopenharmony_ci 1244d6c458bSopenharmony_cinapi_value ToString(napi_env env, std::vector<std::string> &searchParams) 1254d6c458bSopenharmony_ci{ 1264d6c458bSopenharmony_ci std::string output = ""; 1274d6c458bSopenharmony_ci std::string reviseChar[256] = {""}; // 256:Array length 1284d6c458bSopenharmony_ci for (size_t i = 0; i < 256; ++i) { // 256:Array length 1294d6c458bSopenharmony_ci size_t j = i; 1304d6c458bSopenharmony_ci std::stringstream ioss; 1314d6c458bSopenharmony_ci std::string str1 = ""; 1324d6c458bSopenharmony_ci ioss << std::hex << j; 1334d6c458bSopenharmony_ci ioss >> str1; 1344d6c458bSopenharmony_ci transform(str1.begin(), str1.end(), str1.begin(), ::toupper); 1354d6c458bSopenharmony_ci if (i < 16) { // 16:Total number of 0-F 1364d6c458bSopenharmony_ci reviseChar[i] = '%' + ("0" + str1); 1374d6c458bSopenharmony_ci } else { 1384d6c458bSopenharmony_ci reviseChar[i] = '%' + str1; 1394d6c458bSopenharmony_ci } 1404d6c458bSopenharmony_ci } 1414d6c458bSopenharmony_ci reviseChar[0x20] = "+"; // 0x20:ASCII value of spaces 1424d6c458bSopenharmony_ci const size_t lenStr = searchParams.size(); 1434d6c458bSopenharmony_ci napi_value result = nullptr; 1444d6c458bSopenharmony_ci if (lenStr == 0) { 1454d6c458bSopenharmony_ci napi_create_string_utf8(env, output.c_str(), output.size(), &result); 1464d6c458bSopenharmony_ci return result; 1474d6c458bSopenharmony_ci } 1484d6c458bSopenharmony_ci std::string firstStrKey = ReviseStr(searchParams[0], reviseChar); 1494d6c458bSopenharmony_ci std::string firstStrValue = ReviseStr(searchParams[1], reviseChar); 1504d6c458bSopenharmony_ci output = firstStrKey + "=" + firstStrValue; 1514d6c458bSopenharmony_ci if (lenStr % 2 == 0) { // 2:Divisible by 2 1524d6c458bSopenharmony_ci size_t pos = 2; // 2:Initial Position 1534d6c458bSopenharmony_ci for (; pos < lenStr; pos += 2) { // 2:Searching for the number and number of keys and values 1544d6c458bSopenharmony_ci std::string strKey = ReviseStr(searchParams[pos], reviseChar); 1554d6c458bSopenharmony_ci std::string strValue = ReviseStr(searchParams[pos + 1], reviseChar); 1564d6c458bSopenharmony_ci output += +"&" + strKey + "=" + strValue; 1574d6c458bSopenharmony_ci } 1584d6c458bSopenharmony_ci } 1594d6c458bSopenharmony_ci napi_create_string_utf8(env, output.c_str(), output.size(), &result); 1604d6c458bSopenharmony_ci return result; 1614d6c458bSopenharmony_ci} 1624d6c458bSopenharmony_ci 1634d6c458bSopenharmony_cistatic std::vector<std::string> GetParamsStrig(napi_env env, const napi_value tempStr) 1644d6c458bSopenharmony_ci{ 1654d6c458bSopenharmony_ci std::vector<std::string> vec; 1664d6c458bSopenharmony_ci size_t arraySize = 0; 1674d6c458bSopenharmony_ci uint32_t length = 0; 1684d6c458bSopenharmony_ci napi_get_array_length(env, tempStr, &length); 1694d6c458bSopenharmony_ci napi_value napiStr = nullptr; 1704d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 1714d6c458bSopenharmony_ci napi_get_element(env, tempStr, i, &napiStr); 1724d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize) != napi_ok) { 1734d6c458bSopenharmony_ci HILOG_ERROR("can not get napiStr size"); 1744d6c458bSopenharmony_ci return vec; 1754d6c458bSopenharmony_ci } 1764d6c458bSopenharmony_ci if (arraySize > 0) { 1774d6c458bSopenharmony_ci std::string cstr = ""; 1784d6c458bSopenharmony_ci cstr.resize(arraySize); 1794d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize) != napi_ok) { 1804d6c458bSopenharmony_ci HILOG_ERROR("can not get napiStr size"); 1814d6c458bSopenharmony_ci return vec; 1824d6c458bSopenharmony_ci } 1834d6c458bSopenharmony_ci vec.push_back(cstr); 1844d6c458bSopenharmony_ci } else { 1854d6c458bSopenharmony_ci vec.push_back(""); 1864d6c458bSopenharmony_ci } 1874d6c458bSopenharmony_ci } 1884d6c458bSopenharmony_ci return vec; 1894d6c458bSopenharmony_ci} 1904d6c458bSopenharmony_ci 1914d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs001, testing::ext::TestSize.Level0) 1924d6c458bSopenharmony_ci{ 1934d6c458bSopenharmony_ci OHOS::Url::URL url("https://example.org:81/a/b/c?query#fragment"); 1944d6c458bSopenharmony_ci std::string output; 1954d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 1964d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 1974d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/a/b/c"); 1984d6c458bSopenharmony_ci} 1994d6c458bSopenharmony_ci 2004d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs002, testing::ext::TestSize.Level0) 2014d6c458bSopenharmony_ci{ 2024d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 2034d6c458bSopenharmony_ci std::string output; 2044d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2054d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2064d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/directory/file"); 2074d6c458bSopenharmony_ci} 2084d6c458bSopenharmony_ci 2094d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs003, testing::ext::TestSize.Level0) 2104d6c458bSopenharmony_ci{ 2114d6c458bSopenharmony_ci OHOS::Url::URL url("../baz", "http://example.org/foo/bar"); 2124d6c458bSopenharmony_ci std::string output; 2134d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2144d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2154d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/baz"); 2164d6c458bSopenharmony_ci} 2174d6c458bSopenharmony_ci 2184d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs004, testing::ext::TestSize.Level0) 2194d6c458bSopenharmony_ci{ 2204d6c458bSopenharmony_ci OHOS::Url::URL url("/../sca/./path/path/../scasa/jjjjj", "http://www.example.com"); 2214d6c458bSopenharmony_ci std::string output; 2224d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2234d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2244d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/sca/path/scasa/jjjjj"); 2254d6c458bSopenharmony_ci} 2264d6c458bSopenharmony_ci 2274d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs005, testing::ext::TestSize.Level0) 2284d6c458bSopenharmony_ci{ 2294d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 2304d6c458bSopenharmony_ci std::string output; 2314d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2324d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 2334d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "http:"); 2344d6c458bSopenharmony_ci} 2354d6c458bSopenharmony_ci 2364d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs006, testing::ext::TestSize.Level0) 2374d6c458bSopenharmony_ci{ 2384d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2394d6c458bSopenharmony_ci OHOS::Url::URL url("//sca/./path/./scasa#", base); 2404d6c458bSopenharmony_ci std::string output; 2414d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2424d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2434d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/path/scasa"); 2444d6c458bSopenharmony_ci} 2454d6c458bSopenharmony_ci 2464d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs007, testing::ext::TestSize.Level0) 2474d6c458bSopenharmony_ci{ 2484d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2494d6c458bSopenharmony_ci OHOS::Url::URL url("/dire/query", base); 2504d6c458bSopenharmony_ci std::string output; 2514d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2524d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2534d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/dire/query"); 2544d6c458bSopenharmony_ci} 2554d6c458bSopenharmony_ci 2564d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs008, testing::ext::TestSize.Level0) 2574d6c458bSopenharmony_ci{ 2584d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2594d6c458bSopenharmony_ci OHOS::Url::URL url("foo/bar//fragment", base); 2604d6c458bSopenharmony_ci std::string output; 2614d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2624d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2634d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/foo/bar//fragment"); 2644d6c458bSopenharmony_ci} 2654d6c458bSopenharmony_ci 2664d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs009, testing::ext::TestSize.Level0) 2674d6c458bSopenharmony_ci{ 2684d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2694d6c458bSopenharmony_ci OHOS::Url::URL url("/../sca/./path/./s#casa", base); 2704d6c458bSopenharmony_ci std::string output; 2714d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2724d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2734d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/sca/path/s"); 2744d6c458bSopenharmony_ci} 2754d6c458bSopenharmony_ci 2764d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs010, testing::ext::TestSize.Level0) 2774d6c458bSopenharmony_ci{ 2784d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2794d6c458bSopenharmony_ci OHOS::Url::URL url("/../sca/./path/./sca?sa", base); 2804d6c458bSopenharmony_ci std::string output; 2814d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2824d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2834d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/sca/path/sca"); 2844d6c458bSopenharmony_ci} 2854d6c458bSopenharmony_ci 2864d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs011, testing::ext::TestSize.Level0) 2874d6c458bSopenharmony_ci{ 2884d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 2894d6c458bSopenharmony_ci OHOS::Url::URL url("", base); 2904d6c458bSopenharmony_ci std::string output; 2914d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 2924d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 2934d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 2944d6c458bSopenharmony_ci} 2954d6c458bSopenharmony_ci 2964d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs012, testing::ext::TestSize.Level0) 2974d6c458bSopenharmony_ci{ 2984d6c458bSopenharmony_ci OHOS::Url::URL url("file://\\/www.example.com"); 2994d6c458bSopenharmony_ci std::string output; 3004d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3014d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 3024d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "file:"); 3034d6c458bSopenharmony_ci} 3044d6c458bSopenharmony_ci 3054d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs013, testing::ext::TestSize.Level0) 3064d6c458bSopenharmony_ci{ 3074d6c458bSopenharmony_ci OHOS::Url::URL url("file:///www.example.com"); 3084d6c458bSopenharmony_ci std::string output; 3094d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3104d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 3114d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "file:"); 3124d6c458bSopenharmony_ci} 3134d6c458bSopenharmony_ci 3144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs014, testing::ext::TestSize.Level0) 3154d6c458bSopenharmony_ci{ 3164d6c458bSopenharmony_ci OHOS::Url::URL url("http1://www.example.com"); 3174d6c458bSopenharmony_ci std::string output; 3184d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3194d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 3204d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "http1:"); 3214d6c458bSopenharmony_ci} 3224d6c458bSopenharmony_ci 3234d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs015, testing::ext::TestSize.Level0) 3244d6c458bSopenharmony_ci{ 3254d6c458bSopenharmony_ci OHOS::Url::URL url("http2://www.example.com:22/adfee/kk?a=4#saf"); 3264d6c458bSopenharmony_ci std::string output; 3274d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3284d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 3294d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "http2:"); 3304d6c458bSopenharmony_ci} 3314d6c458bSopenharmony_ci 3324d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs016, testing::ext::TestSize.Level0) 3334d6c458bSopenharmony_ci{ 3344d6c458bSopenharmony_ci OHOS::Url::URL url("http2://username:password@www.example.com:22/adfee/kk?a=4#saf"); 3354d6c458bSopenharmony_ci std::string output; 3364d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3374d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 3384d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "http2:"); 3394d6c458bSopenharmony_ci} 3404d6c458bSopenharmony_ci 3414d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs017, testing::ext::TestSize.Level0) 3424d6c458bSopenharmony_ci{ 3434d6c458bSopenharmony_ci OHOS::Url::URL url("http://"); 3444d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3454d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3464d6c458bSopenharmony_ci bool value = false; 3474d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3484d6c458bSopenharmony_ci ASSERT_FALSE(value); 3494d6c458bSopenharmony_ci} 3504d6c458bSopenharmony_ci 3514d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs018, testing::ext::TestSize.Level0) 3524d6c458bSopenharmony_ci{ 3534d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@/adfee/kk?a=4#saf"); 3544d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3554d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3564d6c458bSopenharmony_ci bool value = false; 3574d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3584d6c458bSopenharmony_ci ASSERT_FALSE(value); 3594d6c458bSopenharmony_ci} 3604d6c458bSopenharmony_ci 3614d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs019, testing::ext::TestSize.Level0) 3624d6c458bSopenharmony_ci{ 3634d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@/adfee/kk?a=4#saf", ""); 3644d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3654d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3664d6c458bSopenharmony_ci bool value = false; 3674d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3684d6c458bSopenharmony_ci ASSERT_FALSE(value); 3694d6c458bSopenharmony_ci} 3704d6c458bSopenharmony_ci 3714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs020, testing::ext::TestSize.Level0) 3724d6c458bSopenharmony_ci{ 3734d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@sda/adfee/kk?a=4#saf", "http://sads/sad"); 3744d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3754d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3764d6c458bSopenharmony_ci bool value = false; 3774d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3784d6c458bSopenharmony_ci ASSERT_TRUE(value); 3794d6c458bSopenharmony_ci} 3804d6c458bSopenharmony_ci 3814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs021, testing::ext::TestSize.Level0) 3824d6c458bSopenharmony_ci{ 3834d6c458bSopenharmony_ci OHOS::Url::URL url("//fdsa", "http://sad"); 3844d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3854d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3864d6c458bSopenharmony_ci bool value = false; 3874d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3884d6c458bSopenharmony_ci ASSERT_TRUE(value); 3894d6c458bSopenharmony_ci} 3904d6c458bSopenharmony_ci 3914d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs022, testing::ext::TestSize.Level0) 3924d6c458bSopenharmony_ci{ 3934d6c458bSopenharmony_ci OHOS::Url::URL url("-http://username:password@/adfee/kk?a=4#saf"); 3944d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 3954d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 3964d6c458bSopenharmony_ci bool value = false; 3974d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 3984d6c458bSopenharmony_ci ASSERT_FALSE(value); 3994d6c458bSopenharmony_ci} 4004d6c458bSopenharmony_ci 4014d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlConstructs023, testing::ext::TestSize.Level0) 4024d6c458bSopenharmony_ci{ 4034d6c458bSopenharmony_ci OHOS::Url::URL base("http://www.example.com"); 4044d6c458bSopenharmony_ci OHOS::Url::URL url("//asd", base); 4054d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4064d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 4074d6c458bSopenharmony_ci bool value = false; 4084d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 4094d6c458bSopenharmony_ci ASSERT_TRUE(value); 4104d6c458bSopenharmony_ci} 4114d6c458bSopenharmony_ci 4124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlProtocol001, testing::ext::TestSize.Level0) 4134d6c458bSopenharmony_ci{ 4144d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 4154d6c458bSopenharmony_ci std::string output; 4164d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4174d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4184d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "http:"); 4194d6c458bSopenharmony_ci} 4204d6c458bSopenharmony_ci 4214d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlProtocol002, testing::ext::TestSize.Level0) 4224d6c458bSopenharmony_ci{ 4234d6c458bSopenharmony_ci OHOS::Url::URL url("ftp://username:password@host:8080/directory/file?query#fragment"); 4244d6c458bSopenharmony_ci std::string output; 4254d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4264d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4274d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ftp:"); 4284d6c458bSopenharmony_ci} 4294d6c458bSopenharmony_ci 4304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlProtocol003, testing::ext::TestSize.Level0) 4314d6c458bSopenharmony_ci{ 4324d6c458bSopenharmony_ci OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 4334d6c458bSopenharmony_ci std::string output; 4344d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4354d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4364d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4374d6c458bSopenharmony_ci} 4384d6c458bSopenharmony_ci 4394d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetScheme001, testing::ext::TestSize.Level0) 4404d6c458bSopenharmony_ci{ 4414d6c458bSopenharmony_ci OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 4424d6c458bSopenharmony_ci std::string output; 4434d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4444d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4454d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4464d6c458bSopenharmony_ci url.SetScheme("ftp:"); 4474d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4484d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ftp:"); 4494d6c458bSopenharmony_ci} 4504d6c458bSopenharmony_ci 4514d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetScheme002, testing::ext::TestSize.Level0) 4524d6c458bSopenharmony_ci{ 4534d6c458bSopenharmony_ci OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 4544d6c458bSopenharmony_ci std::string output; 4554d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4564d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4574d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4584d6c458bSopenharmony_ci url.SetScheme("666"); 4594d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4604d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4614d6c458bSopenharmony_ci} 4624d6c458bSopenharmony_ci 4634d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetScheme003, testing::ext::TestSize.Level0) 4644d6c458bSopenharmony_ci{ 4654d6c458bSopenharmony_ci OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 4664d6c458bSopenharmony_ci std::string output; 4674d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4684d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4694d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4704d6c458bSopenharmony_ci url.SetScheme("-/+"); 4714d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4724d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4734d6c458bSopenharmony_ci} 4744d6c458bSopenharmony_ci 4754d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetScheme004, testing::ext::TestSize.Level0) 4764d6c458bSopenharmony_ci{ 4774d6c458bSopenharmony_ci OHOS::Url::URL url("https://username:password@host:8080/directory/file?query#fragment"); 4784d6c458bSopenharmony_ci std::string output; 4794d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4804d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4814d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4824d6c458bSopenharmony_ci url.SetScheme("file"); 4834d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetScheme(env), output); 4844d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "https:"); 4854d6c458bSopenharmony_ci} 4864d6c458bSopenharmony_ci 4874d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlUsername001, testing::ext::TestSize.Level0) 4884d6c458bSopenharmony_ci{ 4894d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 4904d6c458bSopenharmony_ci std::string output; 4914d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 4924d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 4934d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "username"); 4944d6c458bSopenharmony_ci} 4954d6c458bSopenharmony_ci 4964d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlUsername002, testing::ext::TestSize.Level0) 4974d6c458bSopenharmony_ci{ 4984d6c458bSopenharmony_ci OHOS::Url::URL url("http://zhao:password@host:8080/directory/file?query#fragment"); 4994d6c458bSopenharmony_ci std::string output; 5004d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5014d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5024d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "zhao"); 5034d6c458bSopenharmony_ci} 5044d6c458bSopenharmony_ci 5054d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlUsername003, testing::ext::TestSize.Level0) 5064d6c458bSopenharmony_ci{ 5074d6c458bSopenharmony_ci OHOS::Url::URL url("http://skk:password@host:8080/directory/file?query#fragment"); 5084d6c458bSopenharmony_ci std::string output; 5094d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5104d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5114d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "skk"); 5124d6c458bSopenharmony_ci} 5134d6c458bSopenharmony_ci 5144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetUsername001, testing::ext::TestSize.Level0) 5154d6c458bSopenharmony_ci{ 5164d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 5174d6c458bSopenharmony_ci std::string output; 5184d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5194d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5204d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "username"); 5214d6c458bSopenharmony_ci url.SetUsername("666"); 5224d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5234d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "666"); 5244d6c458bSopenharmony_ci} 5254d6c458bSopenharmony_ci 5264d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetUsername002, testing::ext::TestSize.Level0) 5274d6c458bSopenharmony_ci{ 5284d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 5294d6c458bSopenharmony_ci std::string output; 5304d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5314d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5324d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "username"); 5334d6c458bSopenharmony_ci url.SetUsername(""); 5344d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetUsername(env), output); 5354d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 5364d6c458bSopenharmony_ci} 5374d6c458bSopenharmony_ci 5384d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPassword001, testing::ext::TestSize.Level0) 5394d6c458bSopenharmony_ci{ 5404d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:11@host:8080/directory/file?query#fragment"); 5414d6c458bSopenharmony_ci std::string output; 5424d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5434d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5444d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "11"); 5454d6c458bSopenharmony_ci} 5464d6c458bSopenharmony_ci 5474d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPassword002, testing::ext::TestSize.Level0) 5484d6c458bSopenharmony_ci{ 5494d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:23aa@host:8080/directory/file?query#fragment"); 5504d6c458bSopenharmony_ci std::string output; 5514d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5524d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5534d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "23aa"); 5544d6c458bSopenharmony_ci} 5554d6c458bSopenharmony_ci 5564d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPassword003, testing::ext::TestSize.Level0) 5574d6c458bSopenharmony_ci{ 5584d6c458bSopenharmony_ci OHOS::Url::URL url("http://username@host:8080/directory/file?query#fragment"); 5594d6c458bSopenharmony_ci std::string output; 5604d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5614d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5624d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 5634d6c458bSopenharmony_ci} 5644d6c458bSopenharmony_ci 5654d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPassword001, testing::ext::TestSize.Level0) 5664d6c458bSopenharmony_ci{ 5674d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 5684d6c458bSopenharmony_ci std::string output; 5694d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5704d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5714d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "password"); 5724d6c458bSopenharmony_ci url.SetPassword("666"); 5734d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5744d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "666"); 5754d6c458bSopenharmony_ci} 5764d6c458bSopenharmony_ci 5774d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPassword002, testing::ext::TestSize.Level0) 5784d6c458bSopenharmony_ci{ 5794d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 5804d6c458bSopenharmony_ci std::string output; 5814d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5824d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5834d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "password"); 5844d6c458bSopenharmony_ci url.SetPassword(""); 5854d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPassword(env), output); 5864d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 5874d6c458bSopenharmony_ci} 5884d6c458bSopenharmony_ci 5894d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHost001, testing::ext::TestSize.Level0) 5904d6c458bSopenharmony_ci{ 5914d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 5924d6c458bSopenharmony_ci std::string output; 5934d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 5944d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 5954d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:8080"); 5964d6c458bSopenharmony_ci} 5974d6c458bSopenharmony_ci 5984d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHost002, testing::ext::TestSize.Level0) 5994d6c458bSopenharmony_ci{ 6004d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@hosthost/directory/file?query#fragment"); 6014d6c458bSopenharmony_ci std::string output; 6024d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6034d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6044d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "hosthost"); 6054d6c458bSopenharmony_ci} 6064d6c458bSopenharmony_ci 6074d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHost003, testing::ext::TestSize.Level0) 6084d6c458bSopenharmony_ci{ 6094d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6104d6c458bSopenharmony_ci std::string output; 6114d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6124d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6134d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6144d6c458bSopenharmony_ci} 6154d6c458bSopenharmony_ci 6164d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHost001, testing::ext::TestSize.Level0) 6174d6c458bSopenharmony_ci{ 6184d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6194d6c458bSopenharmony_ci std::string output; 6204d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6214d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6224d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6234d6c458bSopenharmony_ci url.SetHost("0.0.0.0.0:199"); 6244d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6254d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "0.0.0.0.0:199"); 6264d6c458bSopenharmony_ci} 6274d6c458bSopenharmony_ci 6284d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHost002, testing::ext::TestSize.Level0) 6294d6c458bSopenharmony_ci{ 6304d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6314d6c458bSopenharmony_ci std::string output; 6324d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6334d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6344d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6354d6c458bSopenharmony_ci url.SetHost(""); 6364d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6374d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6384d6c458bSopenharmony_ci} 6394d6c458bSopenharmony_ci 6404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHost003, testing::ext::TestSize.Level0) 6414d6c458bSopenharmony_ci{ 6424d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6434d6c458bSopenharmony_ci std::string output; 6444d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6454d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6464d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6474d6c458bSopenharmony_ci url.SetHost("/"); 6484d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6494d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6504d6c458bSopenharmony_ci} 6514d6c458bSopenharmony_ci 6524d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHost004, testing::ext::TestSize.Level0) 6534d6c458bSopenharmony_ci{ 6544d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6554d6c458bSopenharmony_ci std::string output; 6564d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6574d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6584d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6594d6c458bSopenharmony_ci url.SetHost("asdzxc:54/"); 6604d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 6614d6c458bSopenharmony_ci bool value = false; 6624d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 6634d6c458bSopenharmony_ci ASSERT_TRUE(value); 6644d6c458bSopenharmony_ci} 6654d6c458bSopenharmony_ci 6664d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHref001, testing::ext::TestSize.Level0) 6674d6c458bSopenharmony_ci{ 6684d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6694d6c458bSopenharmony_ci std::string output; 6704d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6714d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6724d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6734d6c458bSopenharmony_ci url.SetHref("http:example.com"); 6744d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6754d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "example.com"); 6764d6c458bSopenharmony_ci} 6774d6c458bSopenharmony_ci 6784d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHref002, testing::ext::TestSize.Level0) 6794d6c458bSopenharmony_ci{ 6804d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 6814d6c458bSopenharmony_ci std::string output; 6824d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6834d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6844d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host:199"); 6854d6c458bSopenharmony_ci url.SetHref(" http:example.com"); 6864d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHost(env), output); 6874d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "example.com"); 6884d6c458bSopenharmony_ci} 6894d6c458bSopenharmony_ci 6904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHostname001, testing::ext::TestSize.Level0) 6914d6c458bSopenharmony_ci{ 6924d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 6934d6c458bSopenharmony_ci std::string output; 6944d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 6954d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHostname(env), output); 6964d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host"); 6974d6c458bSopenharmony_ci} 6984d6c458bSopenharmony_ci 6994d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHostname002, testing::ext::TestSize.Level0) 7004d6c458bSopenharmony_ci{ 7014d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host123:8080/directory/file?query#fragment"); 7024d6c458bSopenharmony_ci std::string output; 7034d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7044d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHostname(env), output); 7054d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host123"); 7064d6c458bSopenharmony_ci} 7074d6c458bSopenharmony_ci 7084d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlHostname003, testing::ext::TestSize.Level0) 7094d6c458bSopenharmony_ci{ 7104d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@885ssa:8080/directory/file?query#fragment"); 7114d6c458bSopenharmony_ci std::string output; 7124d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7134d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHostname(env), output); 7144d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "885ssa"); 7154d6c458bSopenharmony_ci} 7164d6c458bSopenharmony_ci 7174d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPort001, testing::ext::TestSize.Level0) 7184d6c458bSopenharmony_ci{ 7194d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 7204d6c458bSopenharmony_ci std::string output; 7214d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7224d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPort(env), output); 7234d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "8080"); 7244d6c458bSopenharmony_ci} 7254d6c458bSopenharmony_ci 7264d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPort002, testing::ext::TestSize.Level0) 7274d6c458bSopenharmony_ci{ 7284d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:100/directory/file?query#fragment"); 7294d6c458bSopenharmony_ci std::string output; 7304d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7314d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPort(env), output); 7324d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "100"); 7334d6c458bSopenharmony_ci} 7344d6c458bSopenharmony_ci 7354d6c458bSopenharmony_ci 7364d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPort003, testing::ext::TestSize.Level0) 7374d6c458bSopenharmony_ci{ 7384d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host/directory/file?query#fragment"); 7394d6c458bSopenharmony_ci std::string output; 7404d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7414d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPort(env), output); 7424d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 7434d6c458bSopenharmony_ci} 7444d6c458bSopenharmony_ci 7454d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPort004, testing::ext::TestSize.Level0) 7464d6c458bSopenharmony_ci{ 7474d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:655656/directory/file?query#fragment"); 7484d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7494d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 7504d6c458bSopenharmony_ci bool value = false; 7514d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 7524d6c458bSopenharmony_ci ASSERT_FALSE(value); 7534d6c458bSopenharmony_ci} 7544d6c458bSopenharmony_ci 7554d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPort005, testing::ext::TestSize.Level0) 7564d6c458bSopenharmony_ci{ 7574d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:6c3/directory/file?query#fragment"); 7584d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7594d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 7604d6c458bSopenharmony_ci bool value = false; 7614d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 7624d6c458bSopenharmony_ci ASSERT_FALSE(value); 7634d6c458bSopenharmony_ci} 7644d6c458bSopenharmony_ci 7654d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPort001, testing::ext::TestSize.Level0) 7664d6c458bSopenharmony_ci{ 7674d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:100/directory/file?query#fragment"); 7684d6c458bSopenharmony_ci std::string output; 7694d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7704d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPort(env), output); 7714d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "100"); 7724d6c458bSopenharmony_ci url.SetPort("600?"); 7734d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPort(env), output); 7744d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "600"); 7754d6c458bSopenharmony_ci} 7764d6c458bSopenharmony_ci 7774d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPathname001, testing::ext::TestSize.Level0) 7784d6c458bSopenharmony_ci{ 7794d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query#fragment"); 7804d6c458bSopenharmony_ci std::string output; 7814d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7824d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 7834d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/directory/file"); 7844d6c458bSopenharmony_ci} 7854d6c458bSopenharmony_ci 7864d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPathname002, testing::ext::TestSize.Level0) 7874d6c458bSopenharmony_ci{ 7884d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory?query#fragment"); 7894d6c458bSopenharmony_ci std::string output; 7904d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7914d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 7924d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/directory"); 7934d6c458bSopenharmony_ci} 7944d6c458bSopenharmony_ci 7954d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPathname003, testing::ext::TestSize.Level0) 7964d6c458bSopenharmony_ci{ 7974d6c458bSopenharmony_ci OHOS::Url::URL url("http2://username:password@host:8080?query#fragment"); 7984d6c458bSopenharmony_ci std::string output; 7994d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8004d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8014d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 8024d6c458bSopenharmony_ci} 8034d6c458bSopenharmony_ci 8044d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlPathname004, testing::ext::TestSize.Level0) 8054d6c458bSopenharmony_ci{ 8064d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 8074d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8084d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 8094d6c458bSopenharmony_ci bool value = false; 8104d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 8114d6c458bSopenharmony_ci ASSERT_TRUE(value); 8124d6c458bSopenharmony_ci} 8134d6c458bSopenharmony_ci 8144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPath001, testing::ext::TestSize.Level0) 8154d6c458bSopenharmony_ci{ 8164d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 8174d6c458bSopenharmony_ci std::string output; 8184d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8194d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8204d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 8214d6c458bSopenharmony_ci url.SetPath("\\D:"); 8224d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8234d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/D:"); 8244d6c458bSopenharmony_ci} 8254d6c458bSopenharmony_ci 8264d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPath002, testing::ext::TestSize.Level0) 8274d6c458bSopenharmony_ci{ 8284d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 8294d6c458bSopenharmony_ci std::string output; 8304d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8314d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8324d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 8334d6c458bSopenharmony_ci url.SetPath(":\\D:"); 8344d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8354d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/:/D:"); 8364d6c458bSopenharmony_ci} 8374d6c458bSopenharmony_ci 8384d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPath003, testing::ext::TestSize.Level0) 8394d6c458bSopenharmony_ci{ 8404d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 8414d6c458bSopenharmony_ci std::string output; 8424d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8434d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8444d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 8454d6c458bSopenharmony_ci url.SetPath("::"); 8464d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8474d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/::"); 8484d6c458bSopenharmony_ci} 8494d6c458bSopenharmony_ci 8504d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPath004, testing::ext::TestSize.Level0) 8514d6c458bSopenharmony_ci{ 8524d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080?query#fragment"); 8534d6c458bSopenharmony_ci std::string output; 8544d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8554d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8564d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 8574d6c458bSopenharmony_ci url.SetPath(""); 8584d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8594d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/"); 8604d6c458bSopenharmony_ci} 8614d6c458bSopenharmony_ci 8624d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetPath005, testing::ext::TestSize.Level0) 8634d6c458bSopenharmony_ci{ 8644d6c458bSopenharmony_ci OHOS::Url::URL url("file://hostsasf"); 8654d6c458bSopenharmony_ci std::string output; 8664d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8674d6c458bSopenharmony_ci url.SetPath("/askdj"); 8684d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetPath(env), output); 8694d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "/askdj"); 8704d6c458bSopenharmony_ci} 8714d6c458bSopenharmony_ci 8724d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearch001, testing::ext::TestSize.Level0) 8734d6c458bSopenharmony_ci{ 8744d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=qqqq#fragment"); 8754d6c458bSopenharmony_ci std::string output; 8764d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8774d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 8784d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?query=qqqq"); 8794d6c458bSopenharmony_ci} 8804d6c458bSopenharmony_ci 8814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearch002, testing::ext::TestSize.Level0) 8824d6c458bSopenharmony_ci{ 8834d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=qqqq&ll=pp#fragment"); 8844d6c458bSopenharmony_ci std::string output; 8854d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8864d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 8874d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?query=qqqq&ll=pp"); 8884d6c458bSopenharmony_ci} 8894d6c458bSopenharmony_ci 8904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearch003, testing::ext::TestSize.Level0) 8914d6c458bSopenharmony_ci{ 8924d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 8934d6c458bSopenharmony_ci std::string output; 8944d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8954d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 8964d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 8974d6c458bSopenharmony_ci} 8984d6c458bSopenharmony_ci 8994d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetSearch001, testing::ext::TestSize.Level0) 9004d6c458bSopenharmony_ci{ 9014d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 9024d6c458bSopenharmony_ci std::string output; 9034d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9044d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9054d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 9064d6c458bSopenharmony_ci url.SetSearch(""); 9074d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9084d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 9094d6c458bSopenharmony_ci} 9104d6c458bSopenharmony_ci 9114d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetSearch002, testing::ext::TestSize.Level0) 9124d6c458bSopenharmony_ci{ 9134d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 9144d6c458bSopenharmony_ci std::string output; 9154d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9164d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9174d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 9184d6c458bSopenharmony_ci url.SetSearch("?444=555"); 9194d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9204d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?444=555"); 9214d6c458bSopenharmony_ci} 9224d6c458bSopenharmony_ci 9234d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetSearch003, testing::ext::TestSize.Level0) 9244d6c458bSopenharmony_ci{ 9254d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 9264d6c458bSopenharmony_ci std::string output; 9274d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9284d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9294d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 9304d6c458bSopenharmony_ci url.SetSearch("444=555"); 9314d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9324d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?444=555"); 9334d6c458bSopenharmony_ci} 9344d6c458bSopenharmony_ci 9354d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetSearch004, testing::ext::TestSize.Level0) 9364d6c458bSopenharmony_ci{ 9374d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?ppp9875=77#fragment"); 9384d6c458bSopenharmony_ci std::string output; 9394d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9404d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9414d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?ppp9875=77"); 9424d6c458bSopenharmony_ci url.SetSearch("?##44=55"); 9434d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 9444d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?%23%2344=55"); 9454d6c458bSopenharmony_ci} 9464d6c458bSopenharmony_ci 9474d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlGetFragment001, testing::ext::TestSize.Level0) 9484d6c458bSopenharmony_ci{ 9494d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#fragment"); 9504d6c458bSopenharmony_ci std::string output; 9514d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9524d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9534d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#fragment"); 9544d6c458bSopenharmony_ci} 9554d6c458bSopenharmony_ci 9564d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlGetFragment002, testing::ext::TestSize.Level0) 9574d6c458bSopenharmony_ci{ 9584d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#fragment"); 9594d6c458bSopenharmony_ci std::string output; 9604d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9614d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9624d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#fragment"); 9634d6c458bSopenharmony_ci} 9644d6c458bSopenharmony_ci 9654d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlGetFragment003, testing::ext::TestSize.Level0) 9664d6c458bSopenharmony_ci{ 9674d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 9684d6c458bSopenharmony_ci std::string output; 9694d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9704d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9714d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#123456"); 9724d6c458bSopenharmony_ci} 9734d6c458bSopenharmony_ci 9744d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetFragment001, testing::ext::TestSize.Level0) 9754d6c458bSopenharmony_ci{ 9764d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 9774d6c458bSopenharmony_ci std::string output; 9784d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9794d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9804d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#123456"); 9814d6c458bSopenharmony_ci url.SetFragment(""); 9824d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9834d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 9844d6c458bSopenharmony_ci} 9854d6c458bSopenharmony_ci 9864d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetFragment002, testing::ext::TestSize.Level0) 9874d6c458bSopenharmony_ci{ 9884d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 9894d6c458bSopenharmony_ci std::string output; 9904d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 9914d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9924d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#123456"); 9934d6c458bSopenharmony_ci url.SetFragment("#445566"); 9944d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 9954d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#445566"); 9964d6c458bSopenharmony_ci} 9974d6c458bSopenharmony_ci 9984d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetFragment003, testing::ext::TestSize.Level0) 9994d6c458bSopenharmony_ci{ 10004d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?query=pppppp#123456"); 10014d6c458bSopenharmony_ci std::string output; 10024d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10034d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 10044d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#123456"); 10054d6c458bSopenharmony_ci url.SetFragment("445566"); 10064d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetFragment(env), output); 10074d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "#445566"); 10084d6c458bSopenharmony_ci} 10094d6c458bSopenharmony_ci 10104d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlIPV6001, testing::ext::TestSize.Level0) 10114d6c458bSopenharmony_ci{ 10124d6c458bSopenharmony_ci OHOS::Url::URL url("http://[1080:0:0:0:8:800:200C:417A]/index.html"); 10134d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10144d6c458bSopenharmony_ci napi_value result = url.GetIsIpv6(env); 10154d6c458bSopenharmony_ci bool value = false; 10164d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 10174d6c458bSopenharmony_ci ASSERT_TRUE(value); 10184d6c458bSopenharmony_ci} 10194d6c458bSopenharmony_ci 10204d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlIPV6002, testing::ext::TestSize.Level0) 10214d6c458bSopenharmony_ci{ 10224d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 10234d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10244d6c458bSopenharmony_ci napi_value result = url.GetIsIpv6(env); 10254d6c458bSopenharmony_ci bool value = false; 10264d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 10274d6c458bSopenharmony_ci ASSERT_FALSE(value); 10284d6c458bSopenharmony_ci} 10294d6c458bSopenharmony_ci 10304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlIPV6003, testing::ext::TestSize.Level0) 10314d6c458bSopenharmony_ci{ 10324d6c458bSopenharmony_ci OHOS::Url::URL url("http://[1080:0:0:0:8:800:200C.417A]/index.html"); 10334d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10344d6c458bSopenharmony_ci napi_value result = url.GetIsIpv6(env); 10354d6c458bSopenharmony_ci bool value = false; 10364d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 10374d6c458bSopenharmony_ci ASSERT_FALSE(value); 10384d6c458bSopenharmony_ci} 10394d6c458bSopenharmony_ci 10404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlGetOnOrOff001, testing::ext::TestSize.Level0) 10414d6c458bSopenharmony_ci{ 10424d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 10434d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10444d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 10454d6c458bSopenharmony_ci bool value = false; 10464d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 10474d6c458bSopenharmony_ci ASSERT_TRUE(value); 10484d6c458bSopenharmony_ci} 10494d6c458bSopenharmony_ci 10504d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlGetOnOrOff002, testing::ext::TestSize.Level0) 10514d6c458bSopenharmony_ci{ 10524d6c458bSopenharmony_ci OHOS::Url::URL url("http://192.168.259.551:80/index.html"); 10534d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10544d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 10554d6c458bSopenharmony_ci bool value = false; 10564d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value); 10574d6c458bSopenharmony_ci ASSERT_FALSE(value); 10584d6c458bSopenharmony_ci} 10594d6c458bSopenharmony_ci 10604d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHostname001, testing::ext::TestSize.Level0) 10614d6c458bSopenharmony_ci{ 10624d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 10634d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10644d6c458bSopenharmony_ci std::string output; 10654d6c458bSopenharmony_ci std::string value = "host"; 10664d6c458bSopenharmony_ci url.SetHostname(value); 10674d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHostname(env), output); 10684d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "host"); 10694d6c458bSopenharmony_ci} 10704d6c458bSopenharmony_ci 10714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHostname002, testing::ext::TestSize.Level0) 10724d6c458bSopenharmony_ci{ 10734d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 10744d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10754d6c458bSopenharmony_ci std::string output; 10764d6c458bSopenharmony_ci std::string value = ""; 10774d6c458bSopenharmony_ci url.SetHostname(value); 10784d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetHostname(env), output); 10794d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "255.255.255.1"); 10804d6c458bSopenharmony_ci} 10814d6c458bSopenharmony_ci 10824d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSetHostname003, testing::ext::TestSize.Level0) 10834d6c458bSopenharmony_ci{ 10844d6c458bSopenharmony_ci OHOS::Url::URL url("file:///www.example.com"); 10854d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10864d6c458bSopenharmony_ci std::string value = "localhost/"; 10874d6c458bSopenharmony_ci url.SetHostname(value); 10884d6c458bSopenharmony_ci napi_value result = url.GetOnOrOff(env); 10894d6c458bSopenharmony_ci bool value1 = false; 10904d6c458bSopenharmony_ci napi_get_value_bool(env, result, &value1); 10914d6c458bSopenharmony_ci ASSERT_TRUE(value1); 10924d6c458bSopenharmony_ci} 10934d6c458bSopenharmony_ci 10944d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParams001, testing::ext::TestSize.Level0) 10954d6c458bSopenharmony_ci{ 10964d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?foo=1&bar=2"); 10974d6c458bSopenharmony_ci std::string output; 10984d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 10994d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 11004d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?foo=1&bar=2"); 11014d6c458bSopenharmony_ci} 11024d6c458bSopenharmony_ci 11034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParams002, testing::ext::TestSize.Level0) 11044d6c458bSopenharmony_ci{ 11054d6c458bSopenharmony_ci OHOS::Url::URL url("https://example.com?d=value1&c=value2&b=大&4=key4"); 11064d6c458bSopenharmony_ci std::string output; 11074d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11084d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 11094d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?d=value1&c=value2&b=大&4=key4"); 11104d6c458bSopenharmony_ci} 11114d6c458bSopenharmony_ci 11124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParams003, testing::ext::TestSize.Level0) 11134d6c458bSopenharmony_ci{ 11144d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:8080/directory/file?你好=china#qwer=da"); 11154d6c458bSopenharmony_ci std::string output; 11164d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11174d6c458bSopenharmony_ci DealNapiStrValue(env, url.GetSearch(env), output); 11184d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "?你好=china"); 11194d6c458bSopenharmony_ci} 11204d6c458bSopenharmony_ci 11214d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsAppend001, testing::ext::TestSize.Level0) 11224d6c458bSopenharmony_ci{ 11234d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11244d6c458bSopenharmony_ci std::string output; 11254d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11264d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 11274d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 11284d6c458bSopenharmony_ci params.Append(env, input1, input2); 11294d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 11304d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 11314d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 11324d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma=jk"); 11334d6c458bSopenharmony_ci} 11344d6c458bSopenharmony_ci 11354d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsAppend002, testing::ext::TestSize.Level0) 11364d6c458bSopenharmony_ci{ 11374d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11384d6c458bSopenharmony_ci std::string output; 11394d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11404d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma 大"); 11414d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk¥"); 11424d6c458bSopenharmony_ci params.Append(env, input1, input2); 11434d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 11444d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 11454d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 11464d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma+%E5%A4%A7=jk%EF%BF%A5"); 11474d6c458bSopenharmony_ci} 11484d6c458bSopenharmony_ci 11494d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsAppend003, testing::ext::TestSize.Level0) 11504d6c458bSopenharmony_ci{ 11514d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11524d6c458bSopenharmony_ci std::string output; 11534d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11544d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 11554d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 11564d6c458bSopenharmony_ci params.Append(env, input1, input2); 11574d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 11584d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 11594d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 11604d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk"); 11614d6c458bSopenharmony_ci} 11624d6c458bSopenharmony_ci 11634d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsAppend004, testing::ext::TestSize.Level0) 11644d6c458bSopenharmony_ci{ 11654d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11664d6c458bSopenharmony_ci std::string output; 11674d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11684d6c458bSopenharmony_ci napi_value result = nullptr; 11694d6c458bSopenharmony_ci napi_get_undefined(env, &result); 11704d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 11714d6c458bSopenharmony_ci params.Append(env, result, input2); 11724d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input2), output); 11734d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 11744d6c458bSopenharmony_ci} 11754d6c458bSopenharmony_ci 11764d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsAppend005, testing::ext::TestSize.Level0) 11774d6c458bSopenharmony_ci{ 11784d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11794d6c458bSopenharmony_ci std::string output; 11804d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11814d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 11824d6c458bSopenharmony_ci napi_value result = nullptr; 11834d6c458bSopenharmony_ci napi_get_undefined(env, &result); 11844d6c458bSopenharmony_ci params.Append(env, input1, result); 11854d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 11864d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 11874d6c458bSopenharmony_ci} 11884d6c458bSopenharmony_ci 11894d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsDelete001, testing::ext::TestSize.Level0) 11904d6c458bSopenharmony_ci{ 11914d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 11924d6c458bSopenharmony_ci std::string output; 11934d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 11944d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 11954d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 11964d6c458bSopenharmony_ci params.Append(env, input1, input2); 11974d6c458bSopenharmony_ci params.Delete(env, input1); 11984d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 11994d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 12004d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 12014d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 12024d6c458bSopenharmony_ci} 12034d6c458bSopenharmony_ci 12044d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsDelete002, testing::ext::TestSize.Level0) 12054d6c458bSopenharmony_ci{ 12064d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12074d6c458bSopenharmony_ci std::string output; 12084d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12094d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 12104d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 12114d6c458bSopenharmony_ci params.Append(env, input1, input2); 12124d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma"); 12134d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk"); 12144d6c458bSopenharmony_ci params.Append(env, input3, input4); 12154d6c458bSopenharmony_ci params.Delete(env, input1); 12164d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 12174d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 12184d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 12194d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma=jk"); 12204d6c458bSopenharmony_ci} 12214d6c458bSopenharmony_ci 12224d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsDelete003, testing::ext::TestSize.Level0) 12234d6c458bSopenharmony_ci{ 12244d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12254d6c458bSopenharmony_ci std::string output; 12264d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12274d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 12284d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 12294d6c458bSopenharmony_ci params.Append(env, input1, input2); 12304d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma"); 12314d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk"); 12324d6c458bSopenharmony_ci params.Append(env, input3, input4); 12334d6c458bSopenharmony_ci params.Delete(env, input1); 12344d6c458bSopenharmony_ci params.Delete(env, input3); 12354d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 12364d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 12374d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 12384d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 12394d6c458bSopenharmony_ci} 12404d6c458bSopenharmony_ci 12414d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsDelete004, testing::ext::TestSize.Level0) 12424d6c458bSopenharmony_ci{ 12434d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12444d6c458bSopenharmony_ci std::string output; 12454d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12464d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 12474d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 12484d6c458bSopenharmony_ci params.Append(env, input1, input2); 12494d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma"); 12504d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk"); 12514d6c458bSopenharmony_ci params.Append(env, input3, input4); 12524d6c458bSopenharmony_ci napi_value result = nullptr; 12534d6c458bSopenharmony_ci napi_get_undefined(env, &result); 12544d6c458bSopenharmony_ci params.Delete(env, result); 12554d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input3), output); 12564d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "jk"); 12574d6c458bSopenharmony_ci} 12584d6c458bSopenharmony_ci 12594d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet001, testing::ext::TestSize.Level0) 12604d6c458bSopenharmony_ci{ 12614d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12624d6c458bSopenharmony_ci std::string output; 12634d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12644d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 12654d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 12664d6c458bSopenharmony_ci params.Append(env, input1, input2); 12674d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 12684d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "jk"); 12694d6c458bSopenharmony_ci} 12704d6c458bSopenharmony_ci 12714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet002, testing::ext::TestSize.Level0) 12724d6c458bSopenharmony_ci{ 12734d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12744d6c458bSopenharmony_ci std::string output; 12754d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12764d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "jk"); 12774d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 12784d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 12794d6c458bSopenharmony_ci} 12804d6c458bSopenharmony_ci 12814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet003, testing::ext::TestSize.Level0) 12824d6c458bSopenharmony_ci{ 12834d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12844d6c458bSopenharmony_ci std::string output; 12854d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12864d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 12874d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 12884d6c458bSopenharmony_ci params.Append(env, input1, input2); 12894d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 12904d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "jk"); 12914d6c458bSopenharmony_ci} 12924d6c458bSopenharmony_ci 12934d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet004, testing::ext::TestSize.Level0) 12944d6c458bSopenharmony_ci{ 12954d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 12964d6c458bSopenharmony_ci std::string output; 12974d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 12984d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "hello, \U0001F600 world!"); 12994d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 13004d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13014d6c458bSopenharmony_ci} 13024d6c458bSopenharmony_ci 13034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet005, testing::ext::TestSize.Level0) 13044d6c458bSopenharmony_ci{ 13054d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13064d6c458bSopenharmony_ci std::string output; 13074d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13084d6c458bSopenharmony_ci napi_value result = nullptr; 13094d6c458bSopenharmony_ci napi_get_undefined(env, &result); 13104d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, result), output); 13114d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13124d6c458bSopenharmony_ci} 13134d6c458bSopenharmony_ci 13144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGet006, testing::ext::TestSize.Level0) 13154d6c458bSopenharmony_ci{ 13164d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13174d6c458bSopenharmony_ci std::string output; 13184d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13194d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 13204d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 13214d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "asd"); 13224d6c458bSopenharmony_ci params.Append(env, input1, input2); 13234d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input3), output); 13244d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13254d6c458bSopenharmony_ci} 13264d6c458bSopenharmony_ci 13274d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll001, testing::ext::TestSize.Level0) 13284d6c458bSopenharmony_ci{ 13294d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13304d6c458bSopenharmony_ci std::string output; 13314d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13324d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 13334d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 13344d6c458bSopenharmony_ci params.Append(env, input1, input2); 13354d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "jk"); 13364d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, input3), output); 13374d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13384d6c458bSopenharmony_ci} 13394d6c458bSopenharmony_ci 13404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll002, testing::ext::TestSize.Level0) 13414d6c458bSopenharmony_ci{ 13424d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13434d6c458bSopenharmony_ci std::string output; 13444d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13454d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 13464d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 13474d6c458bSopenharmony_ci params.Append(env, input1, input2); 13484d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "jk1"); 13494d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, input3), output); 13504d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13514d6c458bSopenharmony_ci} 13524d6c458bSopenharmony_ci 13534d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll003, testing::ext::TestSize.Level0) 13544d6c458bSopenharmony_ci{ 13554d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13564d6c458bSopenharmony_ci std::string output; 13574d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13584d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "#[%@]"); 13594d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 13604d6c458bSopenharmony_ci params.Append(env, input1, input2); 13614d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma1"); 13624d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 13634d6c458bSopenharmony_ci params.Append(env, input3, input4); 13644d6c458bSopenharmony_ci napi_value input5 = StrToNapiValue(env, "jk2"); 13654d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, input5), output); 13664d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13674d6c458bSopenharmony_ci} 13684d6c458bSopenharmony_ci 13694d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll004, testing::ext::TestSize.Level0) 13704d6c458bSopenharmony_ci{ 13714d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13724d6c458bSopenharmony_ci std::string output; 13734d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13744d6c458bSopenharmony_ci napi_value result = nullptr; 13754d6c458bSopenharmony_ci napi_get_undefined(env, &result); 13764d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, result), output); 13774d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13784d6c458bSopenharmony_ci} 13794d6c458bSopenharmony_ci 13804d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll005, testing::ext::TestSize.Level0) 13814d6c458bSopenharmony_ci{ 13824d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13834d6c458bSopenharmony_ci std::string output; 13844d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13854d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "jk"); 13864d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, input1), output); 13874d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 13884d6c458bSopenharmony_ci} 13894d6c458bSopenharmony_ci 13904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsGetAll006, testing::ext::TestSize.Level0) 13914d6c458bSopenharmony_ci{ 13924d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 13934d6c458bSopenharmony_ci std::string output; 13944d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 13954d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 13964d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 13974d6c458bSopenharmony_ci params.Append(env, input1, input2); 13984d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma"); 13994d6c458bSopenharmony_ci DealNapiStrValue(env, params.GetAll(env, input3), output); 14004d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 14014d6c458bSopenharmony_ci} 14024d6c458bSopenharmony_ci 14034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsToUSVString001, testing::ext::TestSize.Level0) 14044d6c458bSopenharmony_ci{ 14054d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14064d6c458bSopenharmony_ci std::string output; 14074d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14084d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "你好"); 14094d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "안녕하세요"); 14104d6c458bSopenharmony_ci params.Append(env, input1, input2); 14114d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "[saa]"); 14124d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "{aas}"); 14134d6c458bSopenharmony_ci params.Append(env, input3, input4); 14144d6c458bSopenharmony_ci napi_value input5 = StrToNapiValue(env, "你好"); 14154d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input5), output); 14164d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "안녕하세요"); 14174d6c458bSopenharmony_ci} 14184d6c458bSopenharmony_ci 14194d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsHas001, testing::ext::TestSize.Level0) 14204d6c458bSopenharmony_ci{ 14214d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14224d6c458bSopenharmony_ci std::string output; 14234d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14244d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 14254d6c458bSopenharmony_ci DealNapiStrValue(env, params.IsHas(env, input1), output); 14264d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 14274d6c458bSopenharmony_ci} 14284d6c458bSopenharmony_ci 14294d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsHas002, testing::ext::TestSize.Level0) 14304d6c458bSopenharmony_ci{ 14314d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14324d6c458bSopenharmony_ci std::string output; 14334d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14344d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 14354d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 14364d6c458bSopenharmony_ci params.Append(env, input1, input2); 14374d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 14384d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 14394d6c458bSopenharmony_ci params.Append(env, input3, input4); 14404d6c458bSopenharmony_ci DealNapiStrValue(env, params.IsHas(env, input1), output); 14414d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 14424d6c458bSopenharmony_ci} 14434d6c458bSopenharmony_ci 14444d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsHas003, testing::ext::TestSize.Level0) 14454d6c458bSopenharmony_ci{ 14464d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14474d6c458bSopenharmony_ci std::string output; 14484d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14494d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 14504d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 14514d6c458bSopenharmony_ci params.Append(env, input1, input2); 14524d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 14534d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 14544d6c458bSopenharmony_ci params.Append(env, input3, input4); 14554d6c458bSopenharmony_ci DealNapiStrValue(env, params.IsHas(env, input3), output); 14564d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 14574d6c458bSopenharmony_ci} 14584d6c458bSopenharmony_ci 14594d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsHas004, testing::ext::TestSize.Level0) 14604d6c458bSopenharmony_ci{ 14614d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14624d6c458bSopenharmony_ci std::string output; 14634d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14644d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 14654d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 14664d6c458bSopenharmony_ci params.Append(env, input1, input2); 14674d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 14684d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 14694d6c458bSopenharmony_ci params.Append(env, input3, input4); 14704d6c458bSopenharmony_ci napi_value result = nullptr; 14714d6c458bSopenharmony_ci napi_get_undefined(env, &result); 14724d6c458bSopenharmony_ci DealNapiStrValue(env, params.IsHas(env, result), output); 14734d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 14744d6c458bSopenharmony_ci} 14754d6c458bSopenharmony_ci 14764d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSet001, testing::ext::TestSize.Level0) 14774d6c458bSopenharmony_ci{ 14784d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14794d6c458bSopenharmony_ci std::string output; 14804d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14814d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 14824d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 14834d6c458bSopenharmony_ci params.Append(env, input1, input2); 14844d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "aa"); 14854d6c458bSopenharmony_ci params.Set(env, input1, input3); 14864d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 14874d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 14884d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 14894d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma=aa"); 14904d6c458bSopenharmony_ci} 14914d6c458bSopenharmony_ci 14924d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSet002, testing::ext::TestSize.Level0) 14934d6c458bSopenharmony_ci{ 14944d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 14954d6c458bSopenharmony_ci std::string output; 14964d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 14974d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma1"); 14984d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "aa"); 14994d6c458bSopenharmony_ci params.Append(env, input1, input2); 15004d6c458bSopenharmony_ci params.Set(env, input1, input2); 15014d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15024d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15034d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15044d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma1=aa"); 15054d6c458bSopenharmony_ci} 15064d6c458bSopenharmony_ci 15074d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSet003, testing::ext::TestSize.Level0) 15084d6c458bSopenharmony_ci{ 15094d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15104d6c458bSopenharmony_ci std::string output; 15114d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 15124d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 15134d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 15144d6c458bSopenharmony_ci params.Append(env, input1, input2); 15154d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "ma1"); 15164d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "aa"); 15174d6c458bSopenharmony_ci params.Set(env, input3, input4); 15184d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15194d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15204d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15214d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma=jk&ma1=aa"); 15224d6c458bSopenharmony_ci} 15234d6c458bSopenharmony_ci 15244d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSet004, testing::ext::TestSize.Level0) 15254d6c458bSopenharmony_ci{ 15264d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15274d6c458bSopenharmony_ci std::string output; 15284d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 15294d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma1"); 15304d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "aa"); 15314d6c458bSopenharmony_ci params.Append(env, input1, input2); 15324d6c458bSopenharmony_ci napi_value result = nullptr; 15334d6c458bSopenharmony_ci napi_get_undefined(env, &result); 15344d6c458bSopenharmony_ci params.Set(env, result, input2); 15354d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15364d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15374d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15384d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma1=aa"); 15394d6c458bSopenharmony_ci} 15404d6c458bSopenharmony_ci 15414d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSet005, testing::ext::TestSize.Level0) 15424d6c458bSopenharmony_ci{ 15434d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15444d6c458bSopenharmony_ci std::string output; 15454d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 15464d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma1"); 15474d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "aa"); 15484d6c458bSopenharmony_ci params.Append(env, input1, input2); 15494d6c458bSopenharmony_ci napi_value result = nullptr; 15504d6c458bSopenharmony_ci napi_get_undefined(env, &result); 15514d6c458bSopenharmony_ci params.Set(env, input1, result); 15524d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15534d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15544d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15554d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma1=aa"); 15564d6c458bSopenharmony_ci} 15574d6c458bSopenharmony_ci 15584d6c458bSopenharmony_ci 15594d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSort001, testing::ext::TestSize.Level0) 15604d6c458bSopenharmony_ci{ 15614d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15624d6c458bSopenharmony_ci std::string output; 15634d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 15644d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 15654d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 15664d6c458bSopenharmony_ci params.Append(env, input1, input2); 15674d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "a"); 15684d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 15694d6c458bSopenharmony_ci params.Append(env, input3, input4); 15704d6c458bSopenharmony_ci params.Sort(); 15714d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15724d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15734d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15744d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "a=jk1&ma=jk"); 15754d6c458bSopenharmony_ci} 15764d6c458bSopenharmony_ci 15774d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSort002, testing::ext::TestSize.Level0) 15784d6c458bSopenharmony_ci{ 15794d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15804d6c458bSopenharmony_ci std::string output; 15814d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 15824d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 15834d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 15844d6c458bSopenharmony_ci params.Append(env, input1, input2); 15854d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 15864d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 15874d6c458bSopenharmony_ci params.Append(env, input3, input4); 15884d6c458bSopenharmony_ci params.Sort(); 15894d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 15904d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 15914d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 15924d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk1&ma=jk"); 15934d6c458bSopenharmony_ci} 15944d6c458bSopenharmony_ci 15954d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSort003, testing::ext::TestSize.Level0) 15964d6c458bSopenharmony_ci{ 15974d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 15984d6c458bSopenharmony_ci std::string output; 15994d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16004d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 16014d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 16024d6c458bSopenharmony_ci params.Append(env, input1, input2); 16034d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 16044d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 16054d6c458bSopenharmony_ci params.Append(env, input3, input4); 16064d6c458bSopenharmony_ci napi_value input5 = StrToNapiValue(env, "a"); 16074d6c458bSopenharmony_ci napi_value input6 = StrToNapiValue(env, "jk2"); 16084d6c458bSopenharmony_ci params.Append(env, input5, input6); 16094d6c458bSopenharmony_ci params.Sort(); 16104d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 16114d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 16124d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 16134d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "a=jk2&foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk1&ma=jk"); 16144d6c458bSopenharmony_ci} 16154d6c458bSopenharmony_ci 16164d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsToString001, testing::ext::TestSize.Level0) 16174d6c458bSopenharmony_ci{ 16184d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 16194d6c458bSopenharmony_ci std::string output; 16204d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16214d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "1 12"); 16224d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 16234d6c458bSopenharmony_ci params.Append(env, input1, input2); 16244d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 16254d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 16264d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 16274d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "1+12=jk"); 16284d6c458bSopenharmony_ci} 16294d6c458bSopenharmony_ci 16304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsToString002, testing::ext::TestSize.Level0) 16314d6c458bSopenharmony_ci{ 16324d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 16334d6c458bSopenharmony_ci std::string output; 16344d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16354d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "¥=)"); 16364d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 16374d6c458bSopenharmony_ci params.Append(env, input1, input2); 16384d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 16394d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 16404d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 16414d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "%EF%BF%A5%3D%29=jk"); 16424d6c458bSopenharmony_ci} 16434d6c458bSopenharmony_ci 16444d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsToString003, testing::ext::TestSize.Level0) 16454d6c458bSopenharmony_ci{ 16464d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 16474d6c458bSopenharmony_ci std::string output; 16484d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16494d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "foo~!@#$%^&*()_+-="); 16504d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 16514d6c458bSopenharmony_ci params.Append(env, input1, input2); 16524d6c458bSopenharmony_ci napi_value tempValue = params.GetArray(env); 16534d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, tempValue); 16544d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 16554d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "foo%7E%21%40%23%24%25%5E%26*%28%29_%2B-%3D=jk"); 16564d6c458bSopenharmony_ci} 16574d6c458bSopenharmony_ci 16584d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParams, testing::ext::TestSize.Level0) 16594d6c458bSopenharmony_ci{ 16604d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 16614d6c458bSopenharmony_ci std::string output; 16624d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16634d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 16644d6c458bSopenharmony_ci DealNapiStrValue(env, params.IsHas(env, input1), output); 16654d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 16664d6c458bSopenharmony_ci} 16674d6c458bSopenharmony_ci 16684d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsSetArray, testing::ext::TestSize.Level0) 16694d6c458bSopenharmony_ci{ 16704d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 16714d6c458bSopenharmony_ci std::string input1 = "jk"; 16724d6c458bSopenharmony_ci std::string input2 = "ma"; 16734d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 16744d6c458bSopenharmony_ci std::vector<std::string> vec; 16754d6c458bSopenharmony_ci vec.push_back(input1); 16764d6c458bSopenharmony_ci vec.push_back(input2); 16774d6c458bSopenharmony_ci params.SetArray(env, vec); 16784d6c458bSopenharmony_ci napi_value result = params.GetArray(env); 16794d6c458bSopenharmony_ci uint32_t length = 0; 16804d6c458bSopenharmony_ci napi_value napiStr = nullptr; 16814d6c458bSopenharmony_ci size_t arraySize = 0; 16824d6c458bSopenharmony_ci napi_get_array_length(env, result, &length); 16834d6c458bSopenharmony_ci std::string cstr1 = ""; 16844d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 16854d6c458bSopenharmony_ci napi_get_element(env, result, i, &napiStr); 16864d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 16874d6c458bSopenharmony_ci if (arraySize > 0) { 16884d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, cstr1.data(), arraySize + 1, &arraySize); 16894d6c458bSopenharmony_ci } 16904d6c458bSopenharmony_ci if (i == 0) { 16914d6c458bSopenharmony_ci ASSERT_STREQ("jk", cstr1.data()); 16924d6c458bSopenharmony_ci } else { 16934d6c458bSopenharmony_ci ASSERT_STREQ(cstr1.data(), "ma"); 16944d6c458bSopenharmony_ci } 16954d6c458bSopenharmony_ci } 16964d6c458bSopenharmony_ci} 16974d6c458bSopenharmony_ci 16984d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsIterByKeys, testing::ext::TestSize.Level0) 16994d6c458bSopenharmony_ci{ 17004d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 17014d6c458bSopenharmony_ci std::string input1 = "jk"; 17024d6c458bSopenharmony_ci std::string input2 = "ma"; 17034d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 17044d6c458bSopenharmony_ci std::vector<std::string> vec; 17054d6c458bSopenharmony_ci vec.push_back(input1); 17064d6c458bSopenharmony_ci vec.push_back(input2); 17074d6c458bSopenharmony_ci params.SetArray(env, vec); 17084d6c458bSopenharmony_ci napi_value result = params.IterByKeys(env); 17094d6c458bSopenharmony_ci uint32_t length = 0; 17104d6c458bSopenharmony_ci napi_value napiStr = nullptr; 17114d6c458bSopenharmony_ci size_t arraySize = 0; 17124d6c458bSopenharmony_ci napi_get_array_length(env, result, &length); 17134d6c458bSopenharmony_ci std::string cstr = ""; 17144d6c458bSopenharmony_ci for (size_t i = 0; i < length; i += 2) { 17154d6c458bSopenharmony_ci napi_get_element(env, result, i, &napiStr); 17164d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 17174d6c458bSopenharmony_ci if (arraySize > 0) { 17184d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 17194d6c458bSopenharmony_ci } 17204d6c458bSopenharmony_ci } 17214d6c458bSopenharmony_ci ASSERT_STREQ(cstr.data(), "jk"); 17224d6c458bSopenharmony_ci} 17234d6c458bSopenharmony_ci 17244d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsIterByValues, testing::ext::TestSize.Level0) 17254d6c458bSopenharmony_ci{ 17264d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 17274d6c458bSopenharmony_ci std::string input1 = "jk"; 17284d6c458bSopenharmony_ci std::string input2 = "ma"; 17294d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 17304d6c458bSopenharmony_ci std::vector<std::string> vec; 17314d6c458bSopenharmony_ci vec.push_back(input1); 17324d6c458bSopenharmony_ci vec.push_back(input2); 17334d6c458bSopenharmony_ci params.SetArray(env, vec); 17344d6c458bSopenharmony_ci napi_value result = params.IterByValues(env); 17354d6c458bSopenharmony_ci uint32_t length = 0; 17364d6c458bSopenharmony_ci napi_value napiStr = nullptr; 17374d6c458bSopenharmony_ci size_t arraySize = 0; 17384d6c458bSopenharmony_ci napi_get_array_length(env, result, &length); 17394d6c458bSopenharmony_ci std::string cstr = ""; 17404d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 17414d6c458bSopenharmony_ci napi_get_element(env, result, i, &napiStr); 17424d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 17434d6c458bSopenharmony_ci if (arraySize > 0) { 17444d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 17454d6c458bSopenharmony_ci } 17464d6c458bSopenharmony_ci } 17474d6c458bSopenharmony_ci ASSERT_STREQ(cstr.data(), "ma"); 17484d6c458bSopenharmony_ci} 17494d6c458bSopenharmony_ci 17504d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsEntries001, testing::ext::TestSize.Level0) 17514d6c458bSopenharmony_ci{ 17524d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 17534d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 17544d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 17554d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 17564d6c458bSopenharmony_ci params.Append(env, input1, input2); 17574d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "你好"); 17584d6c458bSopenharmony_ci napi_value input4 = StrToNapiValue(env, "jk1"); 17594d6c458bSopenharmony_ci params.Append(env, input3, input4); 17604d6c458bSopenharmony_ci napi_value input5 = StrToNapiValue(env, "a"); 17614d6c458bSopenharmony_ci napi_value input6 = StrToNapiValue(env, "jk2"); 17624d6c458bSopenharmony_ci params.Append(env, input5, input6); 17634d6c458bSopenharmony_ci napi_value result = params.Entries(env); 17644d6c458bSopenharmony_ci uint32_t length = 0; 17654d6c458bSopenharmony_ci napi_value napiStr = nullptr; 17664d6c458bSopenharmony_ci size_t arraySize = 0; 17674d6c458bSopenharmony_ci napi_get_array_length(env, result, &length); 17684d6c458bSopenharmony_ci std::string cstr = ""; 17694d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 17704d6c458bSopenharmony_ci napi_get_element(env, result, i, &napiStr); 17714d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, nullptr, 0, &arraySize); 17724d6c458bSopenharmony_ci if (arraySize > 0) { 17734d6c458bSopenharmony_ci napi_get_value_string_utf8(env, napiStr, cstr.data(), arraySize + 1, &arraySize); 17744d6c458bSopenharmony_ci } 17754d6c458bSopenharmony_ci } 17764d6c458bSopenharmony_ci ASSERT_EQ(length, 3); 17774d6c458bSopenharmony_ci} 17784d6c458bSopenharmony_ci 17794d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlSearchParamsEntries002, testing::ext::TestSize.Level0) 17804d6c458bSopenharmony_ci{ 17814d6c458bSopenharmony_ci OHOS::Url::URLSearchParams params = OHOS::Url::URLSearchParams(); 17824d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 17834d6c458bSopenharmony_ci std::string output; 17844d6c458bSopenharmony_ci params.Entries(env); 17854d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 17864d6c458bSopenharmony_ci DealNapiStrValue(env, params.Get(env, input1), output); 17874d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), ""); 17884d6c458bSopenharmony_ci} 17894d6c458bSopenharmony_ci 17904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities001, testing::ext::TestSize.Level0) 17914d6c458bSopenharmony_ci{ 17924d6c458bSopenharmony_ci std::string inPut = ""; 17934d6c458bSopenharmony_ci OHOS::Url::DecodeSpecialChars(inPut); 17944d6c458bSopenharmony_ci inPut = "%1238"; 17954d6c458bSopenharmony_ci OHOS::Url::DecodeSpecialChars(inPut); 17964d6c458bSopenharmony_ci inPut = " "; 17974d6c458bSopenharmony_ci OHOS::Url::DeleteC0OrSpace(inPut); 17984d6c458bSopenharmony_ci inPut = " 123 "; 17994d6c458bSopenharmony_ci OHOS::Url::DeleteC0OrSpace(inPut); 18004d6c458bSopenharmony_ci inPut = "dks aasdd"; 18014d6c458bSopenharmony_ci OHOS::Url::DeleteTabOrNewline(inPut); 18024d6c458bSopenharmony_ci inPut = "1asdf"; 18034d6c458bSopenharmony_ci std::string temp = ""; 18044d6c458bSopenharmony_ci std::bitset<11> flags; // 11:Each bit of a BIT represents a different parsing state. 18054d6c458bSopenharmony_ci bool isFalse = OHOS::Url::AnalysisScheme(inPut, temp, flags); 18064d6c458bSopenharmony_ci ASSERT_FALSE(isFalse); 18074d6c458bSopenharmony_ci inPut = "@Sdf"; 18084d6c458bSopenharmony_ci OHOS::Url::AnalysisUsernameAndPasswd(inPut, temp, temp, flags); 18094d6c458bSopenharmony_ci inPut = "12@3@222@Sdf"; 18104d6c458bSopenharmony_ci OHOS::Url::AnalysisUsernameAndPasswd(inPut, temp, temp, flags); 18114d6c458bSopenharmony_ci inPut = "../../"; 18124d6c458bSopenharmony_ci std::vector<std::string> temp1; 18134d6c458bSopenharmony_ci OHOS::Url::AnalysisPath(inPut, temp1, flags, true); 18144d6c458bSopenharmony_ci inPut = "asd#sad"; 18154d6c458bSopenharmony_ci OHOS::Url::AnalysisOpaqueHost(inPut, temp, flags); 18164d6c458bSopenharmony_ci inPut = "asdsad"; 18174d6c458bSopenharmony_ci OHOS::Url::AnalysisOpaqueHost(inPut, temp, flags); 18184d6c458bSopenharmony_ci bool isHexDigit = OHOS::Url::IsHexDigit('/'); 18194d6c458bSopenharmony_ci ASSERT_FALSE(isHexDigit); 18204d6c458bSopenharmony_ci} 18214d6c458bSopenharmony_ci 18224d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities002, testing::ext::TestSize.Level0) 18234d6c458bSopenharmony_ci{ 18244d6c458bSopenharmony_ci OHOS::Url::UrlData urlDataInfo; 18254d6c458bSopenharmony_ci std::string inPut = "192.136.54.22"; 18264d6c458bSopenharmony_ci std::string temp = ""; 18274d6c458bSopenharmony_ci std::bitset<11> flags; 18284d6c458bSopenharmony_ci OHOS::Url::DealIpv4(inPut); 18294d6c458bSopenharmony_ci inPut = "1080:0:0:0:8:800:200C:417A"; 18304d6c458bSopenharmony_ci OHOS::Url::FormatIpv6(inPut); 18314d6c458bSopenharmony_ci inPut = "2136504"; 18324d6c458bSopenharmony_ci size_t i = 0; 18334d6c458bSopenharmony_ci OHOS::Url::SplitNum(inPut, i); 18344d6c458bSopenharmony_ci inPut = "192.168.1.55"; 18354d6c458bSopenharmony_ci OHOS::Url::AnalyseIPv4(inPut, temp, flags); 18364d6c458bSopenharmony_ci inPut = ""; 18374d6c458bSopenharmony_ci OHOS::Url::AnalysisHost(inPut, inPut, flags, true); 18384d6c458bSopenharmony_ci inPut = "[asjdhkj"; 18394d6c458bSopenharmony_ci OHOS::Url::AnalysisHost(inPut, inPut, flags, true); 18404d6c458bSopenharmony_ci inPut = "f:11"; 18414d6c458bSopenharmony_ci bool isTrue = OHOS::Url::ISFileNohost(inPut); 18424d6c458bSopenharmony_ci ASSERT_TRUE(isTrue); 18434d6c458bSopenharmony_ci inPut = "../../../"; 18444d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(inPut, urlDataInfo, flags); 18454d6c458bSopenharmony_ci OHOS::Url::AnalysisFilescheme(inPut, urlDataInfo, flags); 18464d6c458bSopenharmony_ci OHOS::Url::AnalyInfoPath(flags, urlDataInfo, inPut); 18474d6c458bSopenharmony_ci inPut = "sadwasd"; 18484d6c458bSopenharmony_ci OHOS::Url::AnalyHostPath(inPut, flags, urlDataInfo); 18494d6c458bSopenharmony_ci inPut = "sad@wasd"; 18504d6c458bSopenharmony_ci OHOS::Url::AnalyStrHost(inPut, urlDataInfo, flags); 18514d6c458bSopenharmony_ci inPut = ""; 18524d6c458bSopenharmony_ci OHOS::Url::AnalyStrHost(inPut, urlDataInfo, flags); 18534d6c458bSopenharmony_ci inPut = "//sjalkjd"; 18544d6c458bSopenharmony_ci urlDataInfo.scheme = "sa"; 18554d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(inPut, urlDataInfo, flags); 18564d6c458bSopenharmony_ci inPut = "//sjalkjd"; 18574d6c458bSopenharmony_ci urlDataInfo.scheme = ""; 18584d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(inPut, urlDataInfo, flags); 18594d6c458bSopenharmony_ci inPut = ""; 18604d6c458bSopenharmony_ci OHOS::Url::AnalysisOnlyHost(inPut, urlDataInfo, flags, i); 18614d6c458bSopenharmony_ci bool isHexDigit = OHOS::Url::IsHexDigit('b'); 18624d6c458bSopenharmony_ci ASSERT_TRUE(isHexDigit); 18634d6c458bSopenharmony_ci} 18644d6c458bSopenharmony_ci 18654d6c458bSopenharmony_cistd::string GetStringUtf8(napi_env env, napi_value str) 18664d6c458bSopenharmony_ci{ 18674d6c458bSopenharmony_ci std::string buffer = ""; 18684d6c458bSopenharmony_ci size_t bufferSize = 0; 18694d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, str, nullptr, 0, &bufferSize) != napi_ok) { 18704d6c458bSopenharmony_ci HILOG_ERROR("can not get src size"); 18714d6c458bSopenharmony_ci return buffer; 18724d6c458bSopenharmony_ci } 18734d6c458bSopenharmony_ci buffer.resize(bufferSize); 18744d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, str, buffer.data(), bufferSize + 1, &bufferSize) != napi_ok) { 18754d6c458bSopenharmony_ci HILOG_ERROR("can not get src value"); 18764d6c458bSopenharmony_ci return buffer; 18774d6c458bSopenharmony_ci } 18784d6c458bSopenharmony_ci return buffer; 18794d6c458bSopenharmony_ci} 18804d6c458bSopenharmony_ci 18814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule001, testing::ext::TestSize.Level0) 18824d6c458bSopenharmony_ci{ 18834d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 18844d6c458bSopenharmony_ci napi_value exports = nullptr; 18854d6c458bSopenharmony_ci napi_create_object(env, &exports); 18864d6c458bSopenharmony_ci OHOS::Url::Init(env, exports); 18874d6c458bSopenharmony_ci napi_value urlClass = nullptr; 18884d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 18894d6c458bSopenharmony_ci std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 18904d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 18914d6c458bSopenharmony_ci napi_get_named_property(env, exports, "Url", &urlClass); 18924d6c458bSopenharmony_ci napi_value instance = nullptr; 18934d6c458bSopenharmony_ci napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 18944d6c458bSopenharmony_ci 18954d6c458bSopenharmony_ci std::string input1 = "www.example.com"; 18964d6c458bSopenharmony_ci napi_value newValue = nullptr; 18974d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 18984d6c458bSopenharmony_ci napi_set_named_property(env, instance, "hostname", newValue); 18994d6c458bSopenharmony_ci napi_value urlProperty = nullptr; 19004d6c458bSopenharmony_ci napi_get_named_property(env, instance, "hostname", &urlProperty); 19014d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, urlProperty); 19024d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "www.example.com"); 19034d6c458bSopenharmony_ci 19044d6c458bSopenharmony_ci napi_value tempFn = nullptr; 19054d6c458bSopenharmony_ci napi_get_named_property(env, instance, "onOrOff", &tempFn); 19064d6c458bSopenharmony_ci bool res1 = false; 19074d6c458bSopenharmony_ci napi_get_value_bool(env, tempFn, &res1); 19084d6c458bSopenharmony_ci ASSERT_TRUE(res1); 19094d6c458bSopenharmony_ci 19104d6c458bSopenharmony_ci napi_get_named_property(env, instance, "GetIsIpv6", &tempFn); 19114d6c458bSopenharmony_ci res1 = true; 19124d6c458bSopenharmony_ci napi_get_value_bool(env, tempFn, &res1); 19134d6c458bSopenharmony_ci ASSERT_FALSE(res1); 19144d6c458bSopenharmony_ci 19154d6c458bSopenharmony_ci input1 = "query1"; 19164d6c458bSopenharmony_ci newValue = nullptr; 19174d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19184d6c458bSopenharmony_ci napi_set_named_property(env, instance, "search", newValue); 19194d6c458bSopenharmony_ci urlProperty = nullptr; 19204d6c458bSopenharmony_ci napi_get_named_property(env, instance, "search", &urlProperty); 19214d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 19224d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "?query1"); 19234d6c458bSopenharmony_ci 19244d6c458bSopenharmony_ci input1 = "username1"; 19254d6c458bSopenharmony_ci newValue = nullptr; 19264d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19274d6c458bSopenharmony_ci napi_set_named_property(env, instance, "username", newValue); 19284d6c458bSopenharmony_ci urlProperty = nullptr; 19294d6c458bSopenharmony_ci napi_get_named_property(env, instance, "username", &urlProperty); 19304d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 19314d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "username1"); 19324d6c458bSopenharmony_ci} 19334d6c458bSopenharmony_ci 19344d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule003, testing::ext::TestSize.Level0) 19354d6c458bSopenharmony_ci{ 19364d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 19374d6c458bSopenharmony_ci napi_value exports = nullptr; 19384d6c458bSopenharmony_ci napi_create_object(env, &exports); 19394d6c458bSopenharmony_ci OHOS::Url::Init(env, exports); 19404d6c458bSopenharmony_ci napi_value urlClass = nullptr; 19414d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 19424d6c458bSopenharmony_ci std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 19434d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 19444d6c458bSopenharmony_ci napi_get_named_property(env, exports, "Url", &urlClass); 19454d6c458bSopenharmony_ci napi_value instance = nullptr; 19464d6c458bSopenharmony_ci napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 19474d6c458bSopenharmony_ci 19484d6c458bSopenharmony_ci std::string input1 = "password1"; 19494d6c458bSopenharmony_ci napi_value newValue = nullptr; 19504d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19514d6c458bSopenharmony_ci napi_set_named_property(env, instance, "password", newValue); 19524d6c458bSopenharmony_ci napi_value urlProperty = nullptr; 19534d6c458bSopenharmony_ci napi_get_named_property(env, instance, "password", &urlProperty); 19544d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, urlProperty); 19554d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "password1"); 19564d6c458bSopenharmony_ci 19574d6c458bSopenharmony_ci input1 = "www.example.com:11"; 19584d6c458bSopenharmony_ci newValue = nullptr; 19594d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19604d6c458bSopenharmony_ci napi_set_named_property(env, instance, "host", newValue); 19614d6c458bSopenharmony_ci urlProperty = nullptr; 19624d6c458bSopenharmony_ci napi_get_named_property(env, instance, "host", &urlProperty); 19634d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 19644d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "www.example.com:11"); 19654d6c458bSopenharmony_ci 19664d6c458bSopenharmony_ci input1 = "fagment1"; 19674d6c458bSopenharmony_ci newValue = nullptr; 19684d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19694d6c458bSopenharmony_ci napi_set_named_property(env, instance, "hash", newValue); 19704d6c458bSopenharmony_ci urlProperty = nullptr; 19714d6c458bSopenharmony_ci napi_get_named_property(env, instance, "hash", &urlProperty); 19724d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 19734d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "#fagment1"); 19744d6c458bSopenharmony_ci} 19754d6c458bSopenharmony_ci 19764d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule004, testing::ext::TestSize.Level0) 19774d6c458bSopenharmony_ci{ 19784d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 19794d6c458bSopenharmony_ci napi_value exports = nullptr; 19804d6c458bSopenharmony_ci napi_create_object(env, &exports); 19814d6c458bSopenharmony_ci OHOS::Url::Init(env, exports); 19824d6c458bSopenharmony_ci napi_value urlClass = nullptr; 19834d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 19844d6c458bSopenharmony_ci std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 19854d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 19864d6c458bSopenharmony_ci napi_get_named_property(env, exports, "Url", &urlClass); 19874d6c458bSopenharmony_ci napi_value instance = nullptr; 19884d6c458bSopenharmony_ci napi_new_instance(env, urlClass, 1, constructorArgs, &instance); 19894d6c458bSopenharmony_ci 19904d6c458bSopenharmony_ci std::string input1 = "https:"; 19914d6c458bSopenharmony_ci napi_value newValue = nullptr; 19924d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 19934d6c458bSopenharmony_ci napi_set_named_property(env, instance, "protocol", newValue); 19944d6c458bSopenharmony_ci napi_value urlProperty = nullptr; 19954d6c458bSopenharmony_ci napi_get_named_property(env, instance, "protocol", &urlProperty); 19964d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, urlProperty); 19974d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "https:"); 19984d6c458bSopenharmony_ci 19994d6c458bSopenharmony_ci input1 = "/path/path1"; 20004d6c458bSopenharmony_ci newValue = nullptr; 20014d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 20024d6c458bSopenharmony_ci napi_set_named_property(env, instance, "pathname", newValue); 20034d6c458bSopenharmony_ci urlProperty = nullptr; 20044d6c458bSopenharmony_ci napi_get_named_property(env, instance, "pathname", &urlProperty); 20054d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 20064d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "/path/path1"); 20074d6c458bSopenharmony_ci 20084d6c458bSopenharmony_ci input1 = "55"; 20094d6c458bSopenharmony_ci newValue = nullptr; 20104d6c458bSopenharmony_ci napi_create_string_utf8(env, input1.c_str(), input1.size(), &newValue); 20114d6c458bSopenharmony_ci napi_set_named_property(env, instance, "port", newValue); 20124d6c458bSopenharmony_ci urlProperty = nullptr; 20134d6c458bSopenharmony_ci napi_get_named_property(env, instance, "port", &urlProperty); 20144d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 20154d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "55"); 20164d6c458bSopenharmony_ci 20174d6c458bSopenharmony_ci napi_value constructorArgs1[1] = { 0 }; 20184d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs1[0]); 20194d6c458bSopenharmony_ci napi_value hrefFn = nullptr; 20204d6c458bSopenharmony_ci napi_get_named_property(env, instance, "href", &hrefFn); 20214d6c458bSopenharmony_ci napi_value result1 = nullptr; 20224d6c458bSopenharmony_ci napi_call_function(env, instance, hrefFn, 1, constructorArgs1, &result1); 20234d6c458bSopenharmony_ci 20244d6c458bSopenharmony_ci urlProperty = nullptr; 20254d6c458bSopenharmony_ci napi_get_named_property(env, instance, "port", &urlProperty); 20264d6c458bSopenharmony_ci res = GetStringUtf8(env, urlProperty); 20274d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "99"); 20284d6c458bSopenharmony_ci} 20294d6c458bSopenharmony_ci 20304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule002, testing::ext::TestSize.Level0) 20314d6c458bSopenharmony_ci{ 20324d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 20334d6c458bSopenharmony_ci napi_value exports = nullptr; 20344d6c458bSopenharmony_ci napi_create_object(env, &exports); 20354d6c458bSopenharmony_ci OHOS::Url::Init(env, exports); 20364d6c458bSopenharmony_ci napi_value urlParamsClass = nullptr; 20374d6c458bSopenharmony_ci napi_get_named_property(env, exports, "URLParams1", &urlParamsClass); 20384d6c458bSopenharmony_ci napi_value instance = nullptr; 20394d6c458bSopenharmony_ci napi_new_instance(env, urlParamsClass, 0, nullptr, &instance); 20404d6c458bSopenharmony_ci 20414d6c458bSopenharmony_ci napi_value paramsFn = nullptr; 20424d6c458bSopenharmony_ci napi_get_named_property(env, instance, "append", ¶msFn); 20434d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 20444d6c458bSopenharmony_ci napi_value input2 = StrToNapiValue(env, "jk"); 20454d6c458bSopenharmony_ci napi_value args[] = { input1, input2 }; 20464d6c458bSopenharmony_ci napi_value result = nullptr; 20474d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 2, args, &result); 20484d6c458bSopenharmony_ci 20494d6c458bSopenharmony_ci paramsFn = nullptr; 20504d6c458bSopenharmony_ci napi_get_named_property(env, instance, "set", ¶msFn); 20514d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "aa"); 20524d6c458bSopenharmony_ci napi_value args1[] = { input1, input3 }; 20534d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 2, args1, &result); 20544d6c458bSopenharmony_ci 20554d6c458bSopenharmony_ci paramsFn = nullptr; 20564d6c458bSopenharmony_ci napi_get_named_property(env, instance, "array", ¶msFn); 20574d6c458bSopenharmony_ci std::string output = ""; 20584d6c458bSopenharmony_ci std::vector<std::string> paramsString = GetParamsStrig(env, paramsFn); 20594d6c458bSopenharmony_ci DealNapiStrValue(env, ToString(env, paramsString), output); 20604d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "ma=aa"); 20614d6c458bSopenharmony_ci napi_set_named_property(env, instance, "array", paramsFn); 20624d6c458bSopenharmony_ci 20634d6c458bSopenharmony_ci paramsFn = nullptr; 20644d6c458bSopenharmony_ci napi_get_named_property(env, instance, "has", ¶msFn); 20654d6c458bSopenharmony_ci napi_value args2[1] = { input1 }; 20664d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 1, args2, &result); 20674d6c458bSopenharmony_ci bool res1 = false; 20684d6c458bSopenharmony_ci napi_get_value_bool(env, result, &res1); 20694d6c458bSopenharmony_ci ASSERT_TRUE(res1); 20704d6c458bSopenharmony_ci} 20714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule005, testing::ext::TestSize.Level0) 20724d6c458bSopenharmony_ci{ 20734d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 20744d6c458bSopenharmony_ci napi_value exports = nullptr; 20754d6c458bSopenharmony_ci napi_create_object(env, &exports); 20764d6c458bSopenharmony_ci OHOS::Url::Init(env, exports); 20774d6c458bSopenharmony_ci napi_value urlParamsClass = nullptr; 20784d6c458bSopenharmony_ci napi_get_named_property(env, exports, "URLParams1", &urlParamsClass); 20794d6c458bSopenharmony_ci napi_value instance = nullptr; 20804d6c458bSopenharmony_ci napi_new_instance(env, urlParamsClass, 0, nullptr, &instance); 20814d6c458bSopenharmony_ci std::string output = ""; 20824d6c458bSopenharmony_ci napi_value paramsFn = nullptr; 20834d6c458bSopenharmony_ci napi_get_named_property(env, instance, "append", ¶msFn); 20844d6c458bSopenharmony_ci napi_value input1 = StrToNapiValue(env, "ma"); 20854d6c458bSopenharmony_ci napi_value result = nullptr; 20864d6c458bSopenharmony_ci 20874d6c458bSopenharmony_ci paramsFn = nullptr; 20884d6c458bSopenharmony_ci napi_get_named_property(env, instance, "set", ¶msFn); 20894d6c458bSopenharmony_ci napi_value input3 = StrToNapiValue(env, "aa"); 20904d6c458bSopenharmony_ci napi_value args1[] = { input1, input3 }; 20914d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 2, args1, &result); 20924d6c458bSopenharmony_ci 20934d6c458bSopenharmony_ci paramsFn = nullptr; 20944d6c458bSopenharmony_ci napi_get_named_property(env, instance, "sort", ¶msFn); 20954d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 20964d6c458bSopenharmony_ci 20974d6c458bSopenharmony_ci paramsFn = nullptr; 20984d6c458bSopenharmony_ci napi_get_named_property(env, instance, "keys", ¶msFn); 20994d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 21004d6c458bSopenharmony_ci 21014d6c458bSopenharmony_ci paramsFn = nullptr; 21024d6c458bSopenharmony_ci napi_get_named_property(env, instance, "values", ¶msFn); 21034d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 21044d6c458bSopenharmony_ci 21054d6c458bSopenharmony_ci paramsFn = nullptr; 21064d6c458bSopenharmony_ci napi_get_named_property(env, instance, "get", ¶msFn); 21074d6c458bSopenharmony_ci 21084d6c458bSopenharmony_ci napi_value args3[1] = { input1 }; 21094d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 1, args3, &result); 21104d6c458bSopenharmony_ci DealNapiStrValue(env, result, output); 21114d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "aa"); 21124d6c458bSopenharmony_ci 21134d6c458bSopenharmony_ci paramsFn = nullptr; 21144d6c458bSopenharmony_ci napi_get_named_property(env, instance, "getAll", ¶msFn); 21154d6c458bSopenharmony_ci 21164d6c458bSopenharmony_ci napi_value args4[1] = { input1 }; 21174d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 1, args4, &result); 21184d6c458bSopenharmony_ci DealNapiStrValue(env, result, output); 21194d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "aa"); 21204d6c458bSopenharmony_ci 21214d6c458bSopenharmony_ci paramsFn = nullptr; 21224d6c458bSopenharmony_ci napi_get_named_property(env, instance, "entries", ¶msFn); 21234d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 0, nullptr, &result); 21244d6c458bSopenharmony_ci 21254d6c458bSopenharmony_ci paramsFn = nullptr; 21264d6c458bSopenharmony_ci napi_get_named_property(env, instance, "delete", ¶msFn); 21274d6c458bSopenharmony_ci napi_value args5[1] = { input1 }; 21284d6c458bSopenharmony_ci napi_call_function(env, instance, paramsFn, 1, args5, &result); 21294d6c458bSopenharmony_ci DealNapiStrValue(env, result, output); 21304d6c458bSopenharmony_ci ASSERT_STREQ(output.c_str(), "aa"); 21314d6c458bSopenharmony_ci} 21324d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule006, testing::ext::TestSize.Level0) 21334d6c458bSopenharmony_ci{ 21344d6c458bSopenharmony_ci std::string inPut = "#1asdf"; 21354d6c458bSopenharmony_ci std::string temp = ""; 21364d6c458bSopenharmony_ci std::bitset<11> flags; // 11:Each bit of a BIT represents a different parsing state. 21374d6c458bSopenharmony_ci bool isFalse = OHOS::Url::AnalysisScheme(inPut, temp, flags); 21384d6c458bSopenharmony_ci ASSERT_FALSE(isFalse); 21394d6c458bSopenharmony_ci} 21404d6c458bSopenharmony_ci 21414d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule007, testing::ext::TestSize.Level0) 21424d6c458bSopenharmony_ci{ 21434d6c458bSopenharmony_ci std::string inPut = ""; 21444d6c458bSopenharmony_ci std::string temp = ""; 21454d6c458bSopenharmony_ci std::bitset<11> flags(1023) ; // 11:Each bit of a BIT represents a different parsing state. 21464d6c458bSopenharmony_ci OHOS::Url::AnalysisScheme(inPut, temp, flags); 21474d6c458bSopenharmony_ci long a = flags.to_ulong(); 21484d6c458bSopenharmony_ci ASSERT_EQ(a, 1023); 21494d6c458bSopenharmony_ci} 21504d6c458bSopenharmony_ci 21514d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlModule008, testing::ext::TestSize.Level0) 21524d6c458bSopenharmony_ci{ 21534d6c458bSopenharmony_ci std::string inPut = "66666"; 21544d6c458bSopenharmony_ci std::string temp = ""; 21554d6c458bSopenharmony_ci std::bitset<11> flags(1023) ; // 11:Each bit of a BIT represents a different parsing state. 21564d6c458bSopenharmony_ci OHOS::Url::AnalysisScheme(inPut, temp, flags); 21574d6c458bSopenharmony_ci long a = flags.to_ulong(); 21584d6c458bSopenharmony_ci ASSERT_EQ(a, 1023); 21594d6c458bSopenharmony_ci} 21604d6c458bSopenharmony_ci 21614d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities009, testing::ext::TestSize.Level0) 21624d6c458bSopenharmony_ci{ 21634d6c458bSopenharmony_ci std::string inPut = "99::1080:0:0:8:800:200C:417A"; 21644d6c458bSopenharmony_ci OHOS::Url::FormatIpv6(inPut); 21654d6c458bSopenharmony_ci ASSERT_STREQ(inPut.c_str(), "99:1080:0:0:8:800:200C:417A"); 21664d6c458bSopenharmony_ci inPut = "::99:1080:0:0:8:800:200C:417A"; 21674d6c458bSopenharmony_ci OHOS::Url::FormatIpv6(inPut); 21684d6c458bSopenharmony_ci ASSERT_STREQ(inPut.c_str(), "0:99:1080:0:0:8:800:200C:417A"); 21694d6c458bSopenharmony_ci} 21704d6c458bSopenharmony_ci 21714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities010, testing::ext::TestSize.Level0) 21724d6c458bSopenharmony_ci{ 21734d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 21744d6c458bSopenharmony_ci std::string str = "0x.23.56"; 21754d6c458bSopenharmony_ci url.SetHostname(str); 21764d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "0x.23.56"); 21774d6c458bSopenharmony_ci} 21784d6c458bSopenharmony_ci 21794d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities011, testing::ext::TestSize.Level0) 21804d6c458bSopenharmony_ci{ 21814d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 21824d6c458bSopenharmony_ci std::string str = "0.23.56"; 21834d6c458bSopenharmony_ci url.SetHostname(str); 21844d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "0.23.56"); 21854d6c458bSopenharmony_ci} 21864d6c458bSopenharmony_ci 21874d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities012, testing::ext::TestSize.Level0) 21884d6c458bSopenharmony_ci{ 21894d6c458bSopenharmony_ci OHOS::Url::URL url("http://0377.0xff.255.1:80/index.html"); 21904d6c458bSopenharmony_ci std::string str = "33.""."; 21914d6c458bSopenharmony_ci url.SetHostname(str); 21924d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "33.."); 21934d6c458bSopenharmony_ci} 21944d6c458bSopenharmony_ci 21954d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities013, testing::ext::TestSize.Level0) 21964d6c458bSopenharmony_ci{ 21974d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 21984d6c458bSopenharmony_ci std::string str = "111111111.1001000.111.10101"; 21994d6c458bSopenharmony_ci url.SetHost(str); 22004d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "111111111.1001000.111.10101"); 22014d6c458bSopenharmony_ci} 22024d6c458bSopenharmony_ci 22034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities014, testing::ext::TestSize.Level0) 22044d6c458bSopenharmony_ci{ 22054d6c458bSopenharmony_ci OHOS::Url::URL url("http://username:password@host:199/directory/file?query#fragment"); 22064d6c458bSopenharmony_ci std::string str = "10.11.11111111"; 22074d6c458bSopenharmony_ci url.SetHost(str); 22084d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "10.11.11111111"); 22094d6c458bSopenharmony_ci} 22104d6c458bSopenharmony_ci 22114d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities015, testing::ext::TestSize.Level0) 22124d6c458bSopenharmony_ci{ 22134d6c458bSopenharmony_ci std::string str = "hello world!"; 22144d6c458bSopenharmony_ci size_t number = 0; 22154d6c458bSopenharmony_ci OHOS::Url::SplitNum(str, number); 22164d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "hello world!"); 22174d6c458bSopenharmony_ci} 22184d6c458bSopenharmony_ci 22194d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities016, testing::ext::TestSize.Level0) 22204d6c458bSopenharmony_ci{ 22214d6c458bSopenharmony_ci std::string input = "H+#LLOWORLD"; 22224d6c458bSopenharmony_ci std::string scheme = ""; 22234d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22244d6c458bSopenharmony_ci bool rst = OHOS::Url::AnalysisScheme(input, scheme, flags); 22254d6c458bSopenharmony_ci ASSERT_FALSE(rst); 22264d6c458bSopenharmony_ci} 22274d6c458bSopenharmony_ci 22284d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities017, testing::ext::TestSize.Level0) 22294d6c458bSopenharmony_ci{ 22304d6c458bSopenharmony_ci std::string input = "H+#LLOWORLD:"; 22314d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 22324d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22334d6c458bSopenharmony_ci size_t pos = 0; 22344d6c458bSopenharmony_ci OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 22354d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "H+#LLOWORLD:"); 22364d6c458bSopenharmony_ci} 22374d6c458bSopenharmony_ci 22384d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities018, testing::ext::TestSize.Level0) 22394d6c458bSopenharmony_ci{ 22404d6c458bSopenharmony_ci std::string input = "H+#LLOWORLD:65536"; 22414d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 22424d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22434d6c458bSopenharmony_ci size_t pos = 0; 22444d6c458bSopenharmony_ci OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 22454d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "H+#LLOWORLD:65536"); 22464d6c458bSopenharmony_ci} 22474d6c458bSopenharmony_ci 22484d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities019, testing::ext::TestSize.Level0) 22494d6c458bSopenharmony_ci{ 22504d6c458bSopenharmony_ci std::string input01 = "256"; 22514d6c458bSopenharmony_ci std::vector<std::string> nums; 22524d6c458bSopenharmony_ci nums.push_back(input01); 22534d6c458bSopenharmony_ci std::string host; 22544d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22554d6c458bSopenharmony_ci OHOS::Url::FormatIpv4(nums, host, flags); 22564d6c458bSopenharmony_ci ASSERT_STREQ(host.c_str(), "0.0.1.0"); 22574d6c458bSopenharmony_ci} 22584d6c458bSopenharmony_ci 22594d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities020, testing::ext::TestSize.Level0) 22604d6c458bSopenharmony_ci{ 22614d6c458bSopenharmony_ci std::string input = "abcdefghi"; 22624d6c458bSopenharmony_ci std::string input01 = "1"; 22634d6c458bSopenharmony_ci std::string input02 = "2"; 22644d6c458bSopenharmony_ci std::vector<std::string> nums; 22654d6c458bSopenharmony_ci nums.push_back(input); 22664d6c458bSopenharmony_ci nums.push_back(input01); 22674d6c458bSopenharmony_ci nums.push_back(input02); 22684d6c458bSopenharmony_ci std::string host; 22694d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22704d6c458bSopenharmony_ci OHOS::Url::FormatIpv4(nums, host, flags); 22714d6c458bSopenharmony_ci ASSERT_EQ(nums.size(), 3); 22724d6c458bSopenharmony_ci} 22734d6c458bSopenharmony_ci 22744d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities021, testing::ext::TestSize.Level0) 22754d6c458bSopenharmony_ci{ 22764d6c458bSopenharmony_ci std::string input = "155.155.256.111111111"; 22774d6c458bSopenharmony_ci std::string host; 22784d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22794d6c458bSopenharmony_ci OHOS::Url::AnalyseIPv4(input, host, flags); 22804d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "155.155.256.111111111"); 22814d6c458bSopenharmony_ci} 22824d6c458bSopenharmony_ci 22834d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities022, testing::ext::TestSize.Level0) 22844d6c458bSopenharmony_ci{ 22854d6c458bSopenharmony_ci std::string input = "http://example.com/path/.%2E/to%2eresource"; 22864d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 22874d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22884d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 22894d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "to%2eresource"); 22904d6c458bSopenharmony_ci} 22914d6c458bSopenharmony_ci 22924d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities023, testing::ext::TestSize.Level0) 22934d6c458bSopenharmony_ci{ 22944d6c458bSopenharmony_ci std::string input = "http://example.com/path/to%2eresource/%2E"; 22954d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 22964d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 22974d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 22984d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "%2E"); 22994d6c458bSopenharmony_ci} 23004d6c458bSopenharmony_ci 23014d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities024, testing::ext::TestSize.Level0) 23024d6c458bSopenharmony_ci{ 23034d6c458bSopenharmony_ci std::string input = ".%2E"; 23044d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23054d6c458bSopenharmony_ci std::string str = "h:"; 23064d6c458bSopenharmony_ci urlinfo.path.push_back(str); 23074d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23084d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 23094d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), ".%2E"); 23104d6c458bSopenharmony_ci} 23114d6c458bSopenharmony_ci 23124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities025, testing::ext::TestSize.Level0) 23134d6c458bSopenharmony_ci{ 23144d6c458bSopenharmony_ci std::string input = ".%2E"; 23154d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23164d6c458bSopenharmony_ci std::string str = "w:"; 23174d6c458bSopenharmony_ci urlinfo.path.push_back(str); 23184d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23194d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 23204d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), ".%2E"); 23214d6c458bSopenharmony_ci} 23224d6c458bSopenharmony_ci 23234d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities026, testing::ext::TestSize.Level0) 23244d6c458bSopenharmony_ci{ 23254d6c458bSopenharmony_ci std::string input = ".%2E"; 23264d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23274d6c458bSopenharmony_ci std::string str = "z:"; 23284d6c458bSopenharmony_ci urlinfo.path.push_back(str); 23294d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23304d6c458bSopenharmony_ci OHOS::Url::AnalysisFilePath(input, urlinfo, flags); 23314d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), ".%2E"); 23324d6c458bSopenharmony_ci} 23334d6c458bSopenharmony_ci 23344d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities027, testing::ext::TestSize.Level0) 23354d6c458bSopenharmony_ci{ 23364d6c458bSopenharmony_ci std::string temp = "w:51"; 23374d6c458bSopenharmony_ci size_t pos = 2; 23384d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23394d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23404d6c458bSopenharmony_ci OHOS::Url::AnalysisSpecialFile(temp, pos, urlinfo, flags); 23414d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "w:51"); 23424d6c458bSopenharmony_ci} 23434d6c458bSopenharmony_ci 23444d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities028, testing::ext::TestSize.Level0) 23454d6c458bSopenharmony_ci{ 23464d6c458bSopenharmony_ci std::string input = "/g";; 23474d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23484d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23494d6c458bSopenharmony_ci OHOS::Url::AnalysisFile(input, urlinfo, flags); 23504d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "g"); 23514d6c458bSopenharmony_ci} 23524d6c458bSopenharmony_ci 23534d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities029, testing::ext::TestSize.Level0) 23544d6c458bSopenharmony_ci{ 23554d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23564d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 23574d6c458bSopenharmony_ci std::string input = "//abc"; 23584d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23594d6c458bSopenharmony_ci OHOS::Url::AnalysisFile(input, urlinfo, flags); 23604d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "//abc"); 23614d6c458bSopenharmony_ci} 23624d6c458bSopenharmony_ci 23634d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities030, testing::ext::TestSize.Level0) 23644d6c458bSopenharmony_ci{ 23654d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23664d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 23674d6c458bSopenharmony_ci std::string input = "/abc"; 23684d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23694d6c458bSopenharmony_ci OHOS::Url::AnalyInfoPath(flags, urlinfo, input); 23704d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "/abc"); 23714d6c458bSopenharmony_ci} 23724d6c458bSopenharmony_ci 23734d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities031, testing::ext::TestSize.Level0) 23744d6c458bSopenharmony_ci{ 23754d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23764d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 23774d6c458bSopenharmony_ci std::string input = ":h"; 23784d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23794d6c458bSopenharmony_ci OHOS::Url::AnalyHostPath(input, flags, urlinfo); 23804d6c458bSopenharmony_ci ASSERT_TRUE(flags[0]); 23814d6c458bSopenharmony_ci} 23824d6c458bSopenharmony_ci 23834d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities032, testing::ext::TestSize.Level0) 23844d6c458bSopenharmony_ci{ 23854d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23864d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 23874d6c458bSopenharmony_ci std::string input = "///"; 23884d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23894d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 23904d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "///"); 23914d6c458bSopenharmony_ci} 23924d6c458bSopenharmony_ci 23934d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities033, testing::ext::TestSize.Level0) 23944d6c458bSopenharmony_ci{ 23954d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 23964d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 23974d6c458bSopenharmony_ci std::string input = "//"; 23984d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 23994d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 24004d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "//"); 24014d6c458bSopenharmony_ci} 24024d6c458bSopenharmony_ci 24034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities034, testing::ext::TestSize.Level0) 24044d6c458bSopenharmony_ci{ 24054d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24064d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 24074d6c458bSopenharmony_ci std::string input = "//::/"; 24084d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 24094d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 24104d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "//::/"); 24114d6c458bSopenharmony_ci} 24124d6c458bSopenharmony_ci 24134d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities035, testing::ext::TestSize.Level0) 24144d6c458bSopenharmony_ci{ 24154d6c458bSopenharmony_ci std::string input = "abc:d:e"; 24164d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 24174d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24184d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 24194d6c458bSopenharmony_ci size_t pos = 0; 24204d6c458bSopenharmony_ci OHOS::Url::AnalysisOnlyHost(input, urlinfo, flags, pos); 24214d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "abc:d:e"); 24224d6c458bSopenharmony_ci} 24234d6c458bSopenharmony_ci 24244d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities036, testing::ext::TestSize.Level0) 24254d6c458bSopenharmony_ci{ 24264d6c458bSopenharmony_ci std::string input = "abc:d:e/fg"; 24274d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 24284d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24294d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 24304d6c458bSopenharmony_ci size_t pos = 6; // 6:string position 24314d6c458bSopenharmony_ci OHOS::Url::ParsingHostAndPath(input, urlinfo, pos, flags); 24324d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "abc:d:e/fg"); 24334d6c458bSopenharmony_ci} 24344d6c458bSopenharmony_ci 24354d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities037, testing::ext::TestSize.Level0) 24364d6c458bSopenharmony_ci{ 24374d6c458bSopenharmony_ci OHOS::Url::UrlData urlData; 24384d6c458bSopenharmony_ci OHOS::Url::UrlData baseData; 24394d6c458bSopenharmony_ci baseData.path.push_back(""); 24404d6c458bSopenharmony_ci urlData.path.push_back(""); 24414d6c458bSopenharmony_ci bool isFile = false; 24424d6c458bSopenharmony_ci OHOS::Url::ShorteningPath(urlData, baseData, isFile); 24434d6c458bSopenharmony_ci ASSERT_FALSE(isFile); 24444d6c458bSopenharmony_ci} 24454d6c458bSopenharmony_ci 24464d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities038, testing::ext::TestSize.Level0) 24474d6c458bSopenharmony_ci{ 24484d6c458bSopenharmony_ci OHOS::Url::UrlData urlData; 24494d6c458bSopenharmony_ci OHOS::Url::UrlData baseData; 24504d6c458bSopenharmony_ci baseData.path.push_back("a:"); 24514d6c458bSopenharmony_ci urlData.path.push_back("a"); 24524d6c458bSopenharmony_ci bool isFile = true; 24534d6c458bSopenharmony_ci OHOS::Url::ShorteningPath(urlData, baseData, isFile); 24544d6c458bSopenharmony_ci ASSERT_TRUE(isFile); 24554d6c458bSopenharmony_ci} 24564d6c458bSopenharmony_ci 24574d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities040, testing::ext::TestSize.Level0) 24584d6c458bSopenharmony_ci{ 24594d6c458bSopenharmony_ci std::string input = ".%2E"; 24604d6c458bSopenharmony_ci std::vector<std::string> path; 24614d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24624d6c458bSopenharmony_ci bool isSpecial = true; 24634d6c458bSopenharmony_ci OHOS::Url::AnalysisPath(input, path, flags, isSpecial); 24644d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), ".%2E"); 24654d6c458bSopenharmony_ci} 24664d6c458bSopenharmony_ci 24674d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities041, testing::ext::TestSize.Level0) 24684d6c458bSopenharmony_ci{ 24694d6c458bSopenharmony_ci std::string input = "%2E"; 24704d6c458bSopenharmony_ci std::vector<std::string> path; 24714d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24724d6c458bSopenharmony_ci bool isSpecial = true; 24734d6c458bSopenharmony_ci OHOS::Url::AnalysisPath(input, path, flags, isSpecial); 24744d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "%2E"); 24754d6c458bSopenharmony_ci} 24764d6c458bSopenharmony_ci 24774d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities042, testing::ext::TestSize.Level0) 24784d6c458bSopenharmony_ci{ 24794d6c458bSopenharmony_ci std::string input = "99::1080:800:200C:417A"; 24804d6c458bSopenharmony_ci OHOS::Url::FormatIpv6(input); 24814d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "99:0:0:0:1080:800:200C:417A"); 24824d6c458bSopenharmony_ci} 24834d6c458bSopenharmony_ci 24844d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities043, testing::ext::TestSize.Level0) 24854d6c458bSopenharmony_ci{ 24864d6c458bSopenharmony_ci std::string input = "000:1080:800:200C:417A"; 24874d6c458bSopenharmony_ci std::vector<std::string> ipv6; 24884d6c458bSopenharmony_ci ipv6.push_back(input); 24894d6c458bSopenharmony_ci OHOS::Url::RemoveLeadingZeros(ipv6); 24904d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "000:1080:800:200C:417A"); 24914d6c458bSopenharmony_ci} 24924d6c458bSopenharmony_ci 24934d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities044, testing::ext::TestSize.Level0) 24944d6c458bSopenharmony_ci{ 24954d6c458bSopenharmony_ci std::string input = "::ffff:192.168.1.1"; 24964d6c458bSopenharmony_ci std::string host = ""; 24974d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 24984d6c458bSopenharmony_ci OHOS::Url::IPv6Host(input, host, flags); 24994d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "::ffff:c0a8:101"); 25004d6c458bSopenharmony_ci} 25014d6c458bSopenharmony_ci 25024d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities045, testing::ext::TestSize.Level0) 25034d6c458bSopenharmony_ci{ 25044d6c458bSopenharmony_ci std::string input = "w"; 25054d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 25064d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 25074d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 25084d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "w"); 25094d6c458bSopenharmony_ci} 25104d6c458bSopenharmony_ci 25114d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities046, testing::ext::TestSize.Level0) 25124d6c458bSopenharmony_ci{ 25134d6c458bSopenharmony_ci std::string input = "ww:w]wa:b]c/www"; 25144d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 25154d6c458bSopenharmony_ci size_t pos; 25164d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 25174d6c458bSopenharmony_ci flags.set(static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT0)); 25184d6c458bSopenharmony_ci OHOS::Url::ParsingHostAndPath(input, urlinfo, pos, flags); 25194d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "ww:w]wa:b]c/www"); 25204d6c458bSopenharmony_ci} 25214d6c458bSopenharmony_ci 25224d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities047, testing::ext::TestSize.Level0) 25234d6c458bSopenharmony_ci{ 25244d6c458bSopenharmony_ci OHOS::Url::UrlData urlData; 25254d6c458bSopenharmony_ci std::string s1 = "www"; 25264d6c458bSopenharmony_ci std::string s2 = "aaa"; 25274d6c458bSopenharmony_ci std::string s3 = "bbb"; 25284d6c458bSopenharmony_ci std::string s4 = "ccc"; 25294d6c458bSopenharmony_ci urlData.path.push_back(s1); 25304d6c458bSopenharmony_ci urlData.path.push_back(s2); 25314d6c458bSopenharmony_ci urlData.path.push_back(s3); 25324d6c458bSopenharmony_ci urlData.path.push_back(s4); 25334d6c458bSopenharmony_ci std::string rst = OHOS::Url::BasePathToStr(urlData); 25344d6c458bSopenharmony_ci ASSERT_STREQ(rst.c_str(), "www/aaa/bbb/ccc"); 25354d6c458bSopenharmony_ci} 25364d6c458bSopenharmony_ci 25374d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities048, testing::ext::TestSize.Level0) 25384d6c458bSopenharmony_ci{ 25394d6c458bSopenharmony_ci std::vector<std::string> ipv6; 25404d6c458bSopenharmony_ci std::string str = "00ccccc"; 25414d6c458bSopenharmony_ci ipv6.push_back(str); 25424d6c458bSopenharmony_ci OHOS::Url::RemoveLeadingZeros(ipv6); 25434d6c458bSopenharmony_ci ASSERT_STREQ(str.c_str(), "00ccccc"); 25444d6c458bSopenharmony_ci} 25454d6c458bSopenharmony_ci 25464d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities049, testing::ext::TestSize.Level0) 25474d6c458bSopenharmony_ci{ 25484d6c458bSopenharmony_ci std::string input = "//@/aabab"; 25494d6c458bSopenharmony_ci OHOS::Url::UrlData urlinfo; 25504d6c458bSopenharmony_ci std::bitset<static_cast<size_t>(OHOS::Url::BitsetStatusFlag::BIT_STATUS_11)> flags; 25514d6c458bSopenharmony_ci OHOS::Url::AnalysisNoDefaultProtocol(input, urlinfo, flags); 25524d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "//@/aabab"); 25534d6c458bSopenharmony_ci} 25544d6c458bSopenharmony_ci 25554d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, testUrlutilities050, testing::ext::TestSize.Level0) 25564d6c458bSopenharmony_ci{ 25574d6c458bSopenharmony_ci std::string input = "99::1080:8:800:200C:417A"; 25584d6c458bSopenharmony_ci OHOS::Url::FormatIpv6(input); 25594d6c458bSopenharmony_ci ASSERT_STREQ(input.c_str(), "99:0:0:1080:8:800:200C:417A"); 25604d6c458bSopenharmony_ci}