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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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", &paramsFn);
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}