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_uri.h" 214d6c458bSopenharmony_ci#include "native_module_uri.h" 224d6c458bSopenharmony_ci 234d6c458bSopenharmony_ci#define ASSERT_CHECK_CALL(call) \ 244d6c458bSopenharmony_ci { \ 254d6c458bSopenharmony_ci ASSERT_EQ(call, napi_ok); \ 264d6c458bSopenharmony_ci } 274d6c458bSopenharmony_ci 284d6c458bSopenharmony_ci#define ASSERT_CHECK_VALUE_TYPE(env, value, type) \ 294d6c458bSopenharmony_ci { \ 304d6c458bSopenharmony_ci napi_valuetype valueType = napi_undefined; \ 314d6c458bSopenharmony_ci ASSERT_TRUE(value != nullptr); \ 324d6c458bSopenharmony_ci ASSERT_CHECK_CALL(napi_typeof(env, value, &valueType)); \ 334d6c458bSopenharmony_ci ASSERT_EQ(valueType, type); \ 344d6c458bSopenharmony_ci } 354d6c458bSopenharmony_ci 364d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest001, testing::ext::TestSize.Level0) 374d6c458bSopenharmony_ci{ 384d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 394d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 404d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@www.baidu.com:99"); 414d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@www.baidu.com:99/path/path?query"); 424d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 434d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "www.baidu.com"); 444d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 454d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 464d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 474d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 484d6c458bSopenharmony_ci} 494d6c458bSopenharmony_ci 504d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest002, testing::ext::TestSize.Level0) 514d6c458bSopenharmony_ci{ 524d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[1080::8:800:200C:417A]:99/path/66path1?query#fagment"); 534d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 544d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[1080::8:800:200C:417A]:99"); 554d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[1080::8:800:200C:417A]:99/path/66path1?query"); 564d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 574d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[1080::8:800:200C:417A]"); 584d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 594d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/66path1"); 604d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 614d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 624d6c458bSopenharmony_ci} 634d6c458bSopenharmony_ci 644d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest003, testing::ext::TestSize.Level0) 654d6c458bSopenharmony_ci{ 664d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[::]:88/path/path66?foooo#gaogao"); 674d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 684d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[::]:88"); 694d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[::]:88/path/path66?foooo"); 704d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 714d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::]"); 724d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "88"); 734d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path66"); 744d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "foooo"); 754d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "gaogao"); 764d6c458bSopenharmony_ci} 774d6c458bSopenharmony_ci 784d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest004, testing::ext::TestSize.Level0) 794d6c458bSopenharmony_ci{ 804d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[1:0:0:1:2:1:2:1]:99/path/66path1?query#fagment"); 814d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 824d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[1:0:0:1:2:1:2:1]:99"); 834d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[1:0:0:1:2:1:2:1]:99/path/66path1?query"); 844d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 854d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[1:0:0:1:2:1:2:1]"); 864d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 874d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/66path1"); 884d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 894d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 904d6c458bSopenharmony_ci} 914d6c458bSopenharmony_ci 924d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest005, testing::ext::TestSize.Level0) 934d6c458bSopenharmony_ci{ 944d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[::FFFF:129.144.52.38]:99/path/path?query#fagment"); 954d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 964d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[::FFFF:129.144.52.38]:99"); 974d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[::FFFF:129.144.52.38]:99/path/path?query"); 984d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 994d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::FFFF:129.144.52.38]"); 1004d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1014d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1024d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1034d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1044d6c458bSopenharmony_ci} 1054d6c458bSopenharmony_ci 1064d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest006, testing::ext::TestSize.Level0) 1074d6c458bSopenharmony_ci{ 1084d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[::192.9.5.5]:99/path/path?query#fagment"); 1094d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1104d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[::192.9.5.5]:99"); 1114d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[::192.9.5.5]:99/path/path?query"); 1124d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1134d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::192.9.5.5]"); 1144d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1154d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1164d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1174d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1184d6c458bSopenharmony_ci} 1194d6c458bSopenharmony_ci 1204d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest007, testing::ext::TestSize.Level0) 1214d6c458bSopenharmony_ci{ 1224d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[22::22:2:2%ss]:99/path/path?query#fagment"); 1234d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1244d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[22::22:2:2%ss]:99"); 1254d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[22::22:2:2%ss]:99/path/path?query"); 1264d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1274d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[22::22:2:2%ss]"); 1284d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1294d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1304d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1314d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1324d6c458bSopenharmony_ci} 1334d6c458bSopenharmony_ci 1344d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest008, testing::ext::TestSize.Level0) 1354d6c458bSopenharmony_ci{ 1364d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[fe80:0000:0001:0000:0440:44ff:1233:5678]" 1374d6c458bSopenharmony_ci ":99/path/path?query#fagment"); 1384d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1394d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[fe80:0000:0001:0000:0440:44ff:1233:5678]:99"); 1404d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[fe80:0000:0001:0000:0440:44ff:1233:5678]" 1414d6c458bSopenharmony_ci ":99/path/path?query"); 1424d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1434d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[fe80:0000:0001:0000:0440:44ff:1233:5678]"); 1444d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1454d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1464d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1474d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1484d6c458bSopenharmony_ci} 1494d6c458bSopenharmony_ci 1504d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest009, testing::ext::TestSize.Level0) 1514d6c458bSopenharmony_ci{ 1524d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@[fe80::0001:0000]:99/path/path?query#fagment"); 1534d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1544d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@[fe80::0001:0000]:99"); 1554d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@[fe80::0001:0000]:99/path/path?query"); 1564d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1574d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[fe80::0001:0000]"); 1584d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1594d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1604d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1614d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1624d6c458bSopenharmony_ci} 1634d6c458bSopenharmony_ci 1644d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest010, testing::ext::TestSize.Level0) 1654d6c458bSopenharmony_ci{ 1664d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 1674d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1684d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@www.baidu.com:99"); 1694d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@www.baidu.com:99/path/path?query"); 1704d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1714d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "www.baidu.com"); 1724d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1734d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1744d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1754d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1764d6c458bSopenharmony_ci} 1774d6c458bSopenharmony_ci 1784d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest011, testing::ext::TestSize.Level0) 1794d6c458bSopenharmony_ci{ 1804d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@199.98.55.44:99/path/path?query#fagment"); 1814d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1824d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "username:password@199.98.55.44:99"); 1834d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//username:password@199.98.55.44:99/path/path?query"); 1844d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "username:password"); 1854d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "199.98.55.44"); 1864d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 1874d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 1884d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 1894d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 1904d6c458bSopenharmony_ci} 1914d6c458bSopenharmony_ci 1924d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest012, testing::ext::TestSize.Level0) 1934d6c458bSopenharmony_ci{ 1944d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://16.9.5.4:99/path/path?query#fagment"); 1954d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 1964d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "16.9.5.4:99"); 1974d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//16.9.5.4:99/path/path?query"); 1984d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 1994d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "16.9.5.4"); 2004d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 2014d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2024d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2034d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 2044d6c458bSopenharmony_ci} 2054d6c458bSopenharmony_ci 2064d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest013, testing::ext::TestSize.Level0) 2074d6c458bSopenharmony_ci{ 2084d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://[::168:169:333]:99/path/path?query#fagment"); 2094d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2104d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "[::168:169:333]:99"); 2114d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//[::168:169:333]:99/path/path?query"); 2124d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 2134d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::168:169:333]"); 2144d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "99"); 2154d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2164d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2174d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 2184d6c458bSopenharmony_ci} 2194d6c458bSopenharmony_ci 2204d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest014, testing::ext::TestSize.Level0) 2214d6c458bSopenharmony_ci{ 2224d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://user@49.10hh8.54.12:80/path/path?query#qwer"); 2234d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2244d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "user@49.10hh8.54.12:80"); 2254d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//user@49.10hh8.54.12:80/path/path?query"); 2264d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 2274d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 2284d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2294d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2304d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2314d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 2324d6c458bSopenharmony_ci} 2334d6c458bSopenharmony_ci 2344d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest015, testing::ext::TestSize.Level0) 2354d6c458bSopenharmony_ci{ 2364d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://user@www.baidu.com/path/path?query#qwer"); 2374d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2384d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "user@www.baidu.com"); 2394d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//user@www.baidu.com/path/path?query"); 2404d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "user"); 2414d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "www.baidu.com"); 2424d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2434d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2444d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2454d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 2464d6c458bSopenharmony_ci} 2474d6c458bSopenharmony_ci 2484d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest016, testing::ext::TestSize.Level0) 2494d6c458bSopenharmony_ci{ 2504d6c458bSopenharmony_ci OHOS::Uri::Uri uri("ftp://user@www.1hw.1com:77/path/path?query#qwer"); 2514d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "ftp"); 2524d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "user@www.1hw.1com:77"); 2534d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//user@www.1hw.1com:77/path/path?query"); 2544d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 2554d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 2564d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2574d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2584d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2594d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 2604d6c458bSopenharmony_ci} 2614d6c458bSopenharmony_ci 2624d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest017, testing::ext::TestSize.Level0) 2634d6c458bSopenharmony_ci{ 2644d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://user@hosthost/path/path?query#qwer"); 2654d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2664d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "user@hosthost"); 2674d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//user@hosthost/path/path?query"); 2684d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "user"); 2694d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "hosthost"); 2704d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2714d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2724d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2734d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 2744d6c458bSopenharmony_ci} 2754d6c458bSopenharmony_ci 2764d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest018, testing::ext::TestSize.Level0) 2774d6c458bSopenharmony_ci{ 2784d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://user@[::]/path/path?query#qwer"); 2794d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2804d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "user@[::]"); 2814d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//user@[::]/path/path?query"); 2824d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), "user"); 2834d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::]"); 2844d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2854d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 2864d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 2874d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 2884d6c458bSopenharmony_ci} 2894d6c458bSopenharmony_ci 2904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest019, testing::ext::TestSize.Level0) 2914d6c458bSopenharmony_ci{ 2924d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://[::192:0:5]/path/path?query#qwer"); 2934d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 2944d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), "[::192:0:5]"); 2954d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "//[::192:0:5]/path/path?query"); 2964d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 2974d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), "[::192:0:5]"); 2984d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 2994d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/path/path"); 3004d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 3014d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "qwer"); 3024d6c458bSopenharmony_ci} 3034d6c458bSopenharmony_ci 3044d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest020, testing::ext::TestSize.Level0) 3054d6c458bSopenharmony_ci{ 3064d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/username:password@www.baidu.com:99/path/path?query#fagment"); 3074d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3084d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3094d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "/username:password@www.baidu.com:99/path/path?query"); 3104d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3114d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3124d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3134d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/username:password@www.baidu.com:99/path/path"); 3144d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 3154d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3164d6c458bSopenharmony_ci} 3174d6c458bSopenharmony_ci 3184d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest021, testing::ext::TestSize.Level0) 3194d6c458bSopenharmony_ci{ 3204d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/&username:password@[1080::8:800:200C:417A]:99/path/66path1?query#fagment"); 3214d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3224d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3234d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "/&username:password@[1080::8:800:200C:417A]:99/path/66path1?query"); 3244d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3254d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3264d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3274d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/&username:password@[1080::8:800:200C:417A]:99/path/66path1"); 3284d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 3294d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3304d6c458bSopenharmony_ci} 3314d6c458bSopenharmony_ci 3324d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest022, testing::ext::TestSize.Level0) 3334d6c458bSopenharmony_ci{ 3344d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/[username:password@[::FFFF:129.144.52.38]:99/path/path?query#fagment"); 3354d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3364d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3374d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "/[username:password@[::FFFF:129.144.52.38]:99/path/path?query"); 3384d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3394d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3404d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3414d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), "/[username:password@[::FFFF:129.144.52.38]:99/path/path"); 3424d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), "query"); 3434d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3444d6c458bSopenharmony_ci} 3454d6c458bSopenharmony_ci 3464d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest023, testing::ext::TestSize.Level0) 3474d6c458bSopenharmony_ci{ 3484d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:username:password@[1080::8:800:200C:417A]:99/path/66path1?query#fagment"); 3494d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3504d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3514d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "username:password@[1080::8:800:200C:417A]:99/path/66path1?query"); 3524d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3534d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3544d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3554d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), ""); 3564d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), ""); 3574d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3584d6c458bSopenharmony_ci} 3594d6c458bSopenharmony_ci 3604d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest024, testing::ext::TestSize.Level0) 3614d6c458bSopenharmony_ci{ 3624d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:^$username:password@[::192.9.5.5]:99/path/path?query#fagment"); 3634d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3644d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3654d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "^$username:password@[::192.9.5.5]:99/path/path?query"); 3664d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3674d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3684d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3694d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), ""); 3704d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), ""); 3714d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3724d6c458bSopenharmony_ci} 3734d6c458bSopenharmony_ci 3744d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest025, testing::ext::TestSize.Level0) 3754d6c458bSopenharmony_ci{ 3764d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:[?]username:password@[fe80::0001:0000]:99/path/path?query#fagment"); 3774d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 3784d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetAuthority().c_str(), ""); 3794d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), "[?]username:password@[fe80::0001:0000]:99/path/path?query"); 3804d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetUserinfo().c_str(), ""); 3814d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetHost().c_str(), ""); 3824d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPort().c_str(), "-1"); 3834d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), ""); 3844d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), ""); 3854d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), "fagment"); 3864d6c458bSopenharmony_ci} 3874d6c458bSopenharmony_ci 3884d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest026, testing::ext::TestSize.Level0) 3894d6c458bSopenharmony_ci{ 3904d6c458bSopenharmony_ci OHOS::Uri::Uri uri(""); 3914d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), ""); 3924d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetSsp().c_str(), ""); 3934d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), ""); 3944d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "uri is empty"); 3954d6c458bSopenharmony_ci} 3964d6c458bSopenharmony_ci 3974d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest027, testing::ext::TestSize.Level0) 3984d6c458bSopenharmony_ci{ 3994d6c458bSopenharmony_ci OHOS::Uri::Uri uri("#asd;"); 4004d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "#It can't be the first"); 4014d6c458bSopenharmony_ci} 4024d6c458bSopenharmony_ci 4034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest028, testing::ext::TestSize.Level0) 4044d6c458bSopenharmony_ci{ 4054d6c458bSopenharmony_ci OHOS::Uri::Uri uri("?sa^d:s#asd;"); 4064d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "Query does not conform to the rule"); 4074d6c458bSopenharmony_ci} 4084d6c458bSopenharmony_ci 4094d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest029, testing::ext::TestSize.Level0) 4104d6c458bSopenharmony_ci{ 4114d6c458bSopenharmony_ci OHOS::Uri::Uri uri("?sad:s#a^sd;"); 4124d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "Fragment does not conform to the rule"); 4134d6c458bSopenharmony_ci} 4144d6c458bSopenharmony_ci 4154d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest030, testing::ext::TestSize.Level0) 4164d6c458bSopenharmony_ci{ 4174d6c458bSopenharmony_ci OHOS::Uri::Uri uri("4http:/username:password@www.baidu.com:99/path/path?query#fagment"); 4184d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "Scheme the first character must be a letter"); 4194d6c458bSopenharmony_ci} 4204d6c458bSopenharmony_ci 4214d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest031, testing::ext::TestSize.Level0) 4224d6c458bSopenharmony_ci{ 4234d6c458bSopenharmony_ci OHOS::Uri::Uri uri("ht*tp:/username:password@www.baidu.com:99/path/path?query#fagment"); 4244d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "ht*tp"); 4254d6c458bSopenharmony_ci} 4264d6c458bSopenharmony_ci 4274d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest032, testing::ext::TestSize.Level0) 4284d6c458bSopenharmony_ci{ 4294d6c458bSopenharmony_ci OHOS::Uri::Uri uri("/usern]ame/path/path?query#fagment"); 4304d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "SpecialPath does not conform to the rule"); 4314d6c458bSopenharmony_ci} 4324d6c458bSopenharmony_ci 4334d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest033, testing::ext::TestSize.Level0) 4344d6c458bSopenharmony_ci{ 4354d6c458bSopenharmony_ci OHOS::Uri::Uri uri("/username/path/path?query#fagment"); 4364d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4374d6c458bSopenharmony_ci} 4384d6c458bSopenharmony_ci 4394d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest034, testing::ext::TestSize.Level0) 4404d6c458bSopenharmony_ci{ 4414d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/userna^me:password@www.baidu.com:99/path/path?query#fagment"); 4424d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4434d6c458bSopenharmony_ci} 4444d6c458bSopenharmony_ci 4454d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest035, testing::ext::TestSize.Level0) 4464d6c458bSopenharmony_ci{ 4474d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://?query#fagment"); 4484d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetScheme().c_str(), "http"); 4494d6c458bSopenharmony_ci} 4504d6c458bSopenharmony_ci 4514d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest036, testing::ext::TestSize.Level0) 4524d6c458bSopenharmony_ci{ 4534d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/username:password@www.baidu.com:99/pa^th/path?query#fagment"); 4544d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4554d6c458bSopenharmony_ci} 4564d6c458bSopenharmony_ci 4574d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest037, testing::ext::TestSize.Level0) 4584d6c458bSopenharmony_ci{ 4594d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/username:password@www.baidu.com:9^9/path/path?query#fagment"); 4604d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4614d6c458bSopenharmony_ci} 4624d6c458bSopenharmony_ci 4634d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest038, testing::ext::TestSize.Level0) 4644d6c458bSopenharmony_ci{ 4654d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/username:password@[1:0:0:1:2:1:2:1]:9^9/path/path?query#fagment"); 4664d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4674d6c458bSopenharmony_ci} 4684d6c458bSopenharmony_ci 4694d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest039, testing::ext::TestSize.Level0) 4704d6c458bSopenharmony_ci{ 4714d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http:/username:password@[1:0:0:1:2:1:2:1/path/path?query#fagment"); 4724d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), ""); 4734d6c458bSopenharmony_ci} 4744d6c458bSopenharmony_ci 4754d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest040, testing::ext::TestSize.Level0) 4764d6c458bSopenharmony_ci{ 4774d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:sfvs1:2:1:2:1]:99/path1?query#fagment"); 4784d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "ipv6 does not conform to the rule"); 4794d6c458bSopenharmony_ci} 4804d6c458bSopenharmony_ci 4814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest041, testing::ext::TestSize.Level0) 4824d6c458bSopenharmony_ci{ 4834d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http、:/username:password@www.baidu.com:99/path/path?query#fagment"); 4844d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "scheme does not conform to the rule"); 4854d6c458bSopenharmony_ci} 4864d6c458bSopenharmony_ci 4874d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest042, testing::ext::TestSize.Level0) 4884d6c458bSopenharmony_ci{ 4894d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://[ffff::1]:、99/path/path?query#fagment"); 4904d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "Prot does not conform to the rule"); 4914d6c458bSopenharmony_ci} 4924d6c458bSopenharmony_ci 4934d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest043, testing::ext::TestSize.Level0) 4944d6c458bSopenharmony_ci{ 4954d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://[ffff::1:99/path/path?query#fagment"); 4964d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "IPv6 is missing a closing bracket"); 4974d6c458bSopenharmony_ci} 4984d6c458bSopenharmony_ci 4994d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest044, testing::ext::TestSize.Level0) 5004d6c458bSopenharmony_ci{ 5014d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://ffff::1]:99/path/path?query#fagment"); 5024d6c458bSopenharmony_ci ASSERT_STREQ(uri.IsFailed().c_str(), "host does not conform to the rule"); 5034d6c458bSopenharmony_ci} 5044d6c458bSopenharmony_ci 5054d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest001, testing::ext::TestSize.Level0) 5064d6c458bSopenharmony_ci{ 5074d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/path1?query#fagment"); 5084d6c458bSopenharmony_ci OHOS::Uri::Uri uri1 = uri; 5094d6c458bSopenharmony_ci ASSERT_TRUE(uri.Equals(uri1)); 5104d6c458bSopenharmony_ci} 5114d6c458bSopenharmony_ci 5124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest002, testing::ext::TestSize.Level0) 5134d6c458bSopenharmony_ci{ 5144d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/path1?query#fagment"); 5154d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/path1?query#fagment"); 5164d6c458bSopenharmony_ci ASSERT_TRUE(uri.Equals(uri1)); 5174d6c458bSopenharmony_ci} 5184d6c458bSopenharmony_ci 5194d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest003, testing::ext::TestSize.Level0) 5204d6c458bSopenharmony_ci{ 5214d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/path1?query#fagment"); 5224d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/path1?query#fagment123"); 5234d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5244d6c458bSopenharmony_ci} 5254d6c458bSopenharmony_ci 5264d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest004, testing::ext::TestSize.Level0) 5274d6c458bSopenharmony_ci{ 5284d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5294d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://username:password@www.baidu.com:29/path/path?query#fagment"); 5304d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5314d6c458bSopenharmony_ci} 5324d6c458bSopenharmony_ci 5334d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest005, testing::ext::TestSize.Level0) 5344d6c458bSopenharmony_ci{ 5354d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5364d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://user1name:password@www.baidu.com:99/path/path?query#fagment"); 5374d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5384d6c458bSopenharmony_ci} 5394d6c458bSopenharmony_ci 5404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest006, testing::ext::TestSize.Level0) 5414d6c458bSopenharmony_ci{ 5424d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5434d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://username:password@w2ww.baidu.com:99/path/path?query#fagment"); 5444d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5454d6c458bSopenharmony_ci} 5464d6c458bSopenharmony_ci 5474d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest007, testing::ext::TestSize.Level0) 5484d6c458bSopenharmony_ci{ 5494d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5504d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://username:password@www.baidu.com:99/pa4th/path?query#fagment"); 5514d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5524d6c458bSopenharmony_ci} 5534d6c458bSopenharmony_ci 5544d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest008, testing::ext::TestSize.Level0) 5554d6c458bSopenharmony_ci{ 5564d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?qu4ery#fagment"); 5574d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5584d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5594d6c458bSopenharmony_ci} 5604d6c458bSopenharmony_ci 5614d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, EqualsTest009, testing::ext::TestSize.Level0) 5624d6c458bSopenharmony_ci{ 5634d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://username:password@www.baidu.com:99/path/path?query#fagment"); 5644d6c458bSopenharmony_ci OHOS::Uri::Uri uri1("h4ttp://username:password@www.baidu.com:99/path/path?query#fagment"); 5654d6c458bSopenharmony_ci ASSERT_FALSE(uri.Equals(uri1)); 5664d6c458bSopenharmony_ci} 5674d6c458bSopenharmony_ci 5684d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, NormalizeTest001, testing::ext::TestSize.Level0) 5694d6c458bSopenharmony_ci{ 5704d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://user@[1:0:0:1:2:1:2:1]:99/path/66./../././mm/.././path1?query#fagment"); 5714d6c458bSopenharmony_ci std::string normalize = uri.Normalize(); 5724d6c458bSopenharmony_ci ASSERT_STREQ(normalize.c_str(), "http://user@[1:0:0:1:2:1:2:1]:99/path/path1?query#fagment"); 5734d6c458bSopenharmony_ci} 5744d6c458bSopenharmony_ci 5754d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, NormalizeTest002, testing::ext::TestSize.Level0) 5764d6c458bSopenharmony_ci{ 5774d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/../../path?query#fagment"); 5784d6c458bSopenharmony_ci std::string normalize = uri.Normalize(); 5794d6c458bSopenharmony_ci ASSERT_STREQ(normalize.c_str(), "http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/../../path?query#fagment"); 5804d6c458bSopenharmony_ci} 5814d6c458bSopenharmony_ci 5824d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, NormalizeTest003, testing::ext::TestSize.Level0) 5834d6c458bSopenharmony_ci{ 5844d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/../../path/.././../aa/bb/cc?query#fagment"); 5854d6c458bSopenharmony_ci std::string normalize = uri.Normalize(); 5864d6c458bSopenharmony_ci ASSERT_STREQ(normalize.c_str(), "http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/../../../aa/bb/cc?query#fagment"); 5874d6c458bSopenharmony_ci} 5884d6c458bSopenharmony_ci 5894d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, NormalizeTest004, testing::ext::TestSize.Level0) 5904d6c458bSopenharmony_ci{ 5914d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99?query#fagment"); 5924d6c458bSopenharmony_ci std::string normalize = uri.Normalize(); 5934d6c458bSopenharmony_ci ASSERT_STREQ(normalize.c_str(), "http://gg:gaogao@[1:0:0:1:2:1:2:1]:99?query#fagment"); 5944d6c458bSopenharmony_ci} 5954d6c458bSopenharmony_ci 5964d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToStringTest001, testing::ext::TestSize.Level0) 5974d6c458bSopenharmony_ci{ 5984d6c458bSopenharmony_ci OHOS::Uri::Uri uri("http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/aa/bb/cc?query#fagment"); 5994d6c458bSopenharmony_ci ASSERT_STREQ(uri.ToString().c_str(), "http://gg:gaogao@[1:0:0:1:2:1:2:1]:99/aa/bb/cc?query#fagment"); 6004d6c458bSopenharmony_ci} 6014d6c458bSopenharmony_ci 6024d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToStringTest002, testing::ext::TestSize.Level0) 6034d6c458bSopenharmony_ci{ 6044d6c458bSopenharmony_ci OHOS::Uri::Uri uri("htt1p://gg:gaogao@[::192.9.5.5]:99/path/66path1?query#fagment"); 6054d6c458bSopenharmony_ci ASSERT_STREQ(uri.ToString().c_str(), "htt1p://gg:gaogao@[::192.9.5.5]:99/path/66path1?query#fagment"); 6064d6c458bSopenharmony_ci} 6074d6c458bSopenharmony_ci 6084d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToStringTest003, testing::ext::TestSize.Level0) 6094d6c458bSopenharmony_ci{ 6104d6c458bSopenharmony_ci OHOS::Uri::Uri uri("ftp://username:www.baidu.com/path?query#fagment"); 6114d6c458bSopenharmony_ci ASSERT_STREQ(uri.ToString().c_str(), "ftp://username:www.baidu.com/path?query#fagment"); 6124d6c458bSopenharmony_ci} 6134d6c458bSopenharmony_ci 6144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsAbsoluteTest001, testing::ext::TestSize.Level0) 6154d6c458bSopenharmony_ci{ 6164d6c458bSopenharmony_ci OHOS::Uri::Uri uri("f/tp://username:password@www.baidu.com:88/path?query#fagment"); 6174d6c458bSopenharmony_ci bool res = uri.IsAbsolute(); 6184d6c458bSopenharmony_ci ASSERT_FALSE(res); 6194d6c458bSopenharmony_ci} 6204d6c458bSopenharmony_ci 6214d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsAbsoluteTest002, testing::ext::TestSize.Level0) 6224d6c458bSopenharmony_ci{ 6234d6c458bSopenharmony_ci OHOS::Uri::Uri uri("ftp://username:password@www.baidu.com:88/path?query#fagment"); 6244d6c458bSopenharmony_ci bool res = uri.IsAbsolute(); 6254d6c458bSopenharmony_ci ASSERT_TRUE(res); 6264d6c458bSopenharmony_ci} 6274d6c458bSopenharmony_ci 6284d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsAbsoluteTest003, testing::ext::TestSize.Level0) 6294d6c458bSopenharmony_ci{ 6304d6c458bSopenharmony_ci OHOS::Uri::Uri uri("htt/p://username:password@www.baidu.com:88/path?query#fagment"); 6314d6c458bSopenharmony_ci bool res = uri.IsAbsolute(); 6324d6c458bSopenharmony_ci ASSERT_FALSE(res); 6334d6c458bSopenharmony_ci} 6344d6c458bSopenharmony_ci 6354d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsRelativeTest001, testing::ext::TestSize.Level0) 6364d6c458bSopenharmony_ci{ 6374d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://www.example.com/aaa"); 6384d6c458bSopenharmony_ci bool res = uri.IsRelative(); 6394d6c458bSopenharmony_ci ASSERT_FALSE(res); 6404d6c458bSopenharmony_ci} 6414d6c458bSopenharmony_ci 6424d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsRelativeTest002, testing::ext::TestSize.Level0) 6434d6c458bSopenharmony_ci{ 6444d6c458bSopenharmony_ci OHOS::Uri::Uri uri("/bbb"); 6454d6c458bSopenharmony_ci bool res = uri.IsRelative(); 6464d6c458bSopenharmony_ci ASSERT_TRUE(res); 6474d6c458bSopenharmony_ci} 6484d6c458bSopenharmony_ci 6494d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsOpaqueTest001, testing::ext::TestSize.Level0) 6504d6c458bSopenharmony_ci{ 6514d6c458bSopenharmony_ci OHOS::Uri::Uri uri("aaa:user@example.com"); 6524d6c458bSopenharmony_ci bool res = uri.IsOpaque(); 6534d6c458bSopenharmony_ci ASSERT_TRUE(res); 6544d6c458bSopenharmony_ci} 6554d6c458bSopenharmony_ci 6564d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsOpaqueTest002, testing::ext::TestSize.Level0) 6574d6c458bSopenharmony_ci{ 6584d6c458bSopenharmony_ci OHOS::Uri::Uri uri("content://com.example/bbb"); 6594d6c458bSopenharmony_ci bool res = uri.IsOpaque(); 6604d6c458bSopenharmony_ci ASSERT_FALSE(res); 6614d6c458bSopenharmony_ci} 6624d6c458bSopenharmony_ci 6634d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsHierarchicalTest001, testing::ext::TestSize.Level0) 6644d6c458bSopenharmony_ci{ 6654d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://www.example.com/path/to/resource"); 6664d6c458bSopenharmony_ci bool res = uri.IsHierarchical(); 6674d6c458bSopenharmony_ci ASSERT_TRUE(res); 6684d6c458bSopenharmony_ci} 6694d6c458bSopenharmony_ci 6704d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsHierarchicalTest002, testing::ext::TestSize.Level0) 6714d6c458bSopenharmony_ci{ 6724d6c458bSopenharmony_ci OHOS::Uri::Uri uri("/path/to/resource"); 6734d6c458bSopenharmony_ci bool res = uri.IsHierarchical(); 6744d6c458bSopenharmony_ci ASSERT_TRUE(res); 6754d6c458bSopenharmony_ci} 6764d6c458bSopenharmony_ci 6774d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IsHierarchicalTest003, testing::ext::TestSize.Level0) 6784d6c458bSopenharmony_ci{ 6794d6c458bSopenharmony_ci OHOS::Uri::Uri uri("tel:123456789"); 6804d6c458bSopenharmony_ci bool res = uri.IsHierarchical(); 6814d6c458bSopenharmony_ci ASSERT_FALSE(res); 6824d6c458bSopenharmony_ci} 6834d6c458bSopenharmony_ci 6844d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, AddQueryValueTest001, testing::ext::TestSize.Level0) 6854d6c458bSopenharmony_ci{ 6864d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://username:password@host:8080/file?aaa=1#myfragment"); 6874d6c458bSopenharmony_ci std::string temp = uri.AddQueryValue("bbb", "2"); 6884d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "https://username:password@host:8080/file?aaa=1&bbb=2#myfragment"); 6894d6c458bSopenharmony_ci} 6904d6c458bSopenharmony_ci 6914d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, AddQueryValueTest002, testing::ext::TestSize.Level0) 6924d6c458bSopenharmony_ci{ 6934d6c458bSopenharmony_ci OHOS::Uri::Uri uri("mao:user@example.com"); 6944d6c458bSopenharmony_ci std::string temp = uri.AddQueryValue("bb", "cc"); 6954d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "mao:?bb=cc"); 6964d6c458bSopenharmony_ci} 6974d6c458bSopenharmony_ci 6984d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ClearQueryTest001, testing::ext::TestSize.Level0) 6994d6c458bSopenharmony_ci{ 7004d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://username:password@host:8080/file?aaa=1#myfragment"); 7014d6c458bSopenharmony_ci std::string temp = uri.ClearQuery(); 7024d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "https://username:password@host:8080/file#myfragment"); 7034d6c458bSopenharmony_ci} 7044d6c458bSopenharmony_ci 7054d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetSegmentTest001, testing::ext::TestSize.Level0) 7064d6c458bSopenharmony_ci{ 7074d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://username:password@host:8080/file?aaa=1#myfragment"); 7084d6c458bSopenharmony_ci std::vector<std::string> temp = uri.GetSegment(); 7094d6c458bSopenharmony_ci ASSERT_EQ(temp.size(), 1); 7104d6c458bSopenharmony_ci} 7114d6c458bSopenharmony_ci 7124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, AddSegmentTest001, testing::ext::TestSize.Level0) 7134d6c458bSopenharmony_ci{ 7144d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://username:password@host:8080/file?aaa=1#myfragment"); 7154d6c458bSopenharmony_ci std::string temp = uri.AddSegment("segment"); 7164d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "https://username:password@host:8080/file/segment?aaa=1#myfragment"); 7174d6c458bSopenharmony_ci} 7184d6c458bSopenharmony_ci 7194d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, AddSegmentTest002, testing::ext::TestSize.Level0) 7204d6c458bSopenharmony_ci{ 7214d6c458bSopenharmony_ci OHOS::Uri::Uri uri("mao:user@example.com"); 7224d6c458bSopenharmony_ci std::string temp = uri.AddSegment("aaa"); 7234d6c458bSopenharmony_ci ASSERT_STREQ(temp.c_str(), "mao:/aaa"); 7244d6c458bSopenharmony_ci} 7254d6c458bSopenharmony_ci 7264d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetTest001, testing::ext::TestSize.Level0) 7274d6c458bSopenharmony_ci{ 7284d6c458bSopenharmony_ci OHOS::Uri::Uri uri("https://username:password@host:8080"); 7294d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetPath().c_str(), ""); 7304d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetQuery().c_str(), ""); 7314d6c458bSopenharmony_ci ASSERT_STREQ(uri.GetFragment().c_str(), ""); 7324d6c458bSopenharmony_ci} 7334d6c458bSopenharmony_ci 7344d6c458bSopenharmony_cistd::string GetStringUtf8(napi_env env, napi_value str) 7354d6c458bSopenharmony_ci{ 7364d6c458bSopenharmony_ci std::string buffer = ""; 7374d6c458bSopenharmony_ci size_t bufferSize = 0; 7384d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, str, nullptr, 0, &bufferSize) != napi_ok) { 7394d6c458bSopenharmony_ci HILOG_ERROR("can not get src size"); 7404d6c458bSopenharmony_ci return buffer; 7414d6c458bSopenharmony_ci } 7424d6c458bSopenharmony_ci buffer.resize(bufferSize); 7434d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, str, buffer.data(), bufferSize + 1, &bufferSize) != napi_ok) { 7444d6c458bSopenharmony_ci HILOG_ERROR("can not get src value"); 7454d6c458bSopenharmony_ci return buffer; 7464d6c458bSopenharmony_ci } 7474d6c458bSopenharmony_ci return buffer; 7484d6c458bSopenharmony_ci} 7494d6c458bSopenharmony_ci 7504d6c458bSopenharmony_cinapi_value StrToNapiValue(napi_env env, const std::string &result) 7514d6c458bSopenharmony_ci{ 7524d6c458bSopenharmony_ci napi_value output = nullptr; 7534d6c458bSopenharmony_ci napi_create_string_utf8(env, result.c_str(), result.size(), &output); 7544d6c458bSopenharmony_ci return output; 7554d6c458bSopenharmony_ci} 7564d6c458bSopenharmony_ci 7574d6c458bSopenharmony_cistd::vector<std::string> GetArray(napi_env env, const napi_value tempStr) 7584d6c458bSopenharmony_ci{ 7594d6c458bSopenharmony_ci std::vector<std::string> strVec; 7604d6c458bSopenharmony_ci napi_value napiStr = nullptr; 7614d6c458bSopenharmony_ci uint32_t length = 0; 7624d6c458bSopenharmony_ci size_t strLength = 0; 7634d6c458bSopenharmony_ci napi_get_array_length(env, tempStr, &length); 7644d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 7654d6c458bSopenharmony_ci napi_get_element(env, tempStr, i, &napiStr); 7664d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, napiStr, nullptr, 0, &strLength) != napi_ok) { 7674d6c458bSopenharmony_ci HILOG_ERROR("can not get napiStr size"); 7684d6c458bSopenharmony_ci return strVec; 7694d6c458bSopenharmony_ci } 7704d6c458bSopenharmony_ci if (strLength > 0) { 7714d6c458bSopenharmony_ci std::string itemStr = ""; 7724d6c458bSopenharmony_ci itemStr.resize(strLength); 7734d6c458bSopenharmony_ci if (napi_get_value_string_utf8(env, napiStr, itemStr.data(), strLength + 1, &strLength) != napi_ok) { 7744d6c458bSopenharmony_ci HILOG_ERROR("can not get napiStr size"); 7754d6c458bSopenharmony_ci return strVec; 7764d6c458bSopenharmony_ci } 7774d6c458bSopenharmony_ci strVec.push_back(itemStr); 7784d6c458bSopenharmony_ci } else { 7794d6c458bSopenharmony_ci strVec.push_back(""); 7804d6c458bSopenharmony_ci } 7814d6c458bSopenharmony_ci } 7824d6c458bSopenharmony_ci return strVec; 7834d6c458bSopenharmony_ci} 7844d6c458bSopenharmony_ci 7854d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ModuleTest001, testing::ext::TestSize.Level0) 7864d6c458bSopenharmony_ci{ 7874d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 7884d6c458bSopenharmony_ci napi_value exports = nullptr; 7894d6c458bSopenharmony_ci napi_create_object(env, &exports); 7904d6c458bSopenharmony_ci OHOS::Uri::UriInit(env, exports); 7914d6c458bSopenharmony_ci napi_value uriClass = nullptr; 7924d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 7934d6c458bSopenharmony_ci std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 7944d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 7954d6c458bSopenharmony_ci napi_status status = napi_get_named_property(env, exports, "Uri", &uriClass); 7964d6c458bSopenharmony_ci napi_value instance = nullptr; 7974d6c458bSopenharmony_ci status = napi_new_instance(env, uriClass, 1, constructorArgs, &instance); 7984d6c458bSopenharmony_ci napi_value getTemp = nullptr; 7994d6c458bSopenharmony_ci napi_get_named_property(env, instance, "scheme", &getTemp); 8004d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, getTemp); 8014d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http"); 8024d6c458bSopenharmony_ci 8034d6c458bSopenharmony_ci napi_get_named_property(env, instance, "authority", &getTemp); 8044d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8054d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "username:password@www.baidu.com:99"); 8064d6c458bSopenharmony_ci 8074d6c458bSopenharmony_ci napi_get_named_property(env, instance, "ssp", &getTemp); 8084d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8094d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "//username:password@www.baidu.com:99/path/path?query"); 8104d6c458bSopenharmony_ci 8114d6c458bSopenharmony_ci napi_get_named_property(env, instance, "userInfo", &getTemp); 8124d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8134d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "username:password"); 8144d6c458bSopenharmony_ci 8154d6c458bSopenharmony_ci napi_get_named_property(env, instance, "host", &getTemp); 8164d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8174d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "www.baidu.com"); 8184d6c458bSopenharmony_ci 8194d6c458bSopenharmony_ci napi_get_named_property(env, instance, "port", &getTemp); 8204d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8214d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "99"); 8224d6c458bSopenharmony_ci 8234d6c458bSopenharmony_ci napi_get_named_property(env, instance, "path", &getTemp); 8244d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8254d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "/path/path"); 8264d6c458bSopenharmony_ci 8274d6c458bSopenharmony_ci napi_get_named_property(env, instance, "query", &getTemp); 8284d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8294d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "query"); 8304d6c458bSopenharmony_ci 8314d6c458bSopenharmony_ci napi_get_named_property(env, instance, "fragment", &getTemp); 8324d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8334d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "fagment"); 8344d6c458bSopenharmony_ci 8354d6c458bSopenharmony_ci napi_get_named_property(env, instance, "isFailed", &getTemp); 8364d6c458bSopenharmony_ci res = GetStringUtf8(env, getTemp); 8374d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), ""); 8384d6c458bSopenharmony_ci} 8394d6c458bSopenharmony_ci 8404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ModuleTest002, testing::ext::TestSize.Level0) 8414d6c458bSopenharmony_ci{ 8424d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8434d6c458bSopenharmony_ci napi_value exports = nullptr; 8444d6c458bSopenharmony_ci napi_create_object(env, &exports); 8454d6c458bSopenharmony_ci OHOS::Uri::UriInit(env, exports); 8464d6c458bSopenharmony_ci napi_value uriClass = nullptr; 8474d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 8484d6c458bSopenharmony_ci std::string input = "http://username:password@www.baidu.com:99/path/path?query#fagment"; 8494d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 8504d6c458bSopenharmony_ci napi_get_named_property(env, exports, "Uri", &uriClass); 8514d6c458bSopenharmony_ci napi_value instance = nullptr; 8524d6c458bSopenharmony_ci napi_new_instance(env, uriClass, 1, constructorArgs, &instance); 8534d6c458bSopenharmony_ci napi_value tempFn = nullptr; 8544d6c458bSopenharmony_ci napi_get_named_property(env, instance, "checkIsAbsolute", &tempFn); 8554d6c458bSopenharmony_ci napi_value result = nullptr; 8564d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 8574d6c458bSopenharmony_ci ASSERT_TRUE(result); 8584d6c458bSopenharmony_ci 8594d6c458bSopenharmony_ci napi_get_named_property(env, instance, "toString", &tempFn); 8604d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 8614d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, result); 8624d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http://username:password@www.baidu.com:99/path/path?query#fagment"); 8634d6c458bSopenharmony_ci 8644d6c458bSopenharmony_ci napi_get_named_property(env, instance, "normalize", &tempFn); 8654d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 8664d6c458bSopenharmony_ci res = GetStringUtf8(env, result); 8674d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http://username:password@www.baidu.com:99/path/path?query#fagment"); 8684d6c458bSopenharmony_ci 8694d6c458bSopenharmony_ci napi_value equalsFn = nullptr; 8704d6c458bSopenharmony_ci napi_get_named_property(env, instance, "equals", &equalsFn); 8714d6c458bSopenharmony_ci napi_value constructorArgs1[1] = { 0 }; 8724d6c458bSopenharmony_ci std::string input2 = "http://username:password@www.baidu.com:88/path?query1#fagment"; 8734d6c458bSopenharmony_ci napi_create_string_utf8(env, input2.c_str(), input2.size(), &constructorArgs1[0]); 8744d6c458bSopenharmony_ci napi_value otherInstance = nullptr; 8754d6c458bSopenharmony_ci napi_new_instance(env, uriClass, 1, constructorArgs1, &otherInstance); 8764d6c458bSopenharmony_ci napi_value args[1] = { otherInstance }; 8774d6c458bSopenharmony_ci napi_value result1 = nullptr; 8784d6c458bSopenharmony_ci napi_call_function(env, instance, equalsFn, 1, args, &result1); 8794d6c458bSopenharmony_ci bool res1 = true; 8804d6c458bSopenharmony_ci napi_get_value_bool(env, result1, &res1); 8814d6c458bSopenharmony_ci ASSERT_FALSE(res1); 8824d6c458bSopenharmony_ci} 8834d6c458bSopenharmony_ci 8844d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ModuleTest003, testing::ext::TestSize.Level0) 8854d6c458bSopenharmony_ci{ 8864d6c458bSopenharmony_ci napi_env env = (napi_env)engine_; 8874d6c458bSopenharmony_ci napi_value exports = nullptr; 8884d6c458bSopenharmony_ci napi_create_object(env, &exports); 8894d6c458bSopenharmony_ci OHOS::Uri::UriInit(env, exports); 8904d6c458bSopenharmony_ci napi_value uriClass = nullptr; 8914d6c458bSopenharmony_ci napi_value constructorArgs[1] = { 0 }; 8924d6c458bSopenharmony_ci std::string input = "http://name:word@www.uritest.com:99/path/abc?query#fagment"; 8934d6c458bSopenharmony_ci napi_create_string_utf8(env, input.c_str(), input.size(), &constructorArgs[0]); 8944d6c458bSopenharmony_ci napi_get_named_property(env, exports, "Uri", &uriClass); 8954d6c458bSopenharmony_ci napi_value instance = nullptr; 8964d6c458bSopenharmony_ci napi_new_instance(env, uriClass, 1, constructorArgs, &instance); 8974d6c458bSopenharmony_ci napi_value tempFn = nullptr; 8984d6c458bSopenharmony_ci 8994d6c458bSopenharmony_ci napi_get_named_property(env, instance, "checkIsRelative", &tempFn); 9004d6c458bSopenharmony_ci napi_value result = nullptr; 9014d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 9024d6c458bSopenharmony_ci bool flag = true; 9034d6c458bSopenharmony_ci napi_get_value_bool(env, result, &flag); 9044d6c458bSopenharmony_ci ASSERT_FALSE(flag); 9054d6c458bSopenharmony_ci 9064d6c458bSopenharmony_ci napi_get_named_property(env, instance, "checkIsOpaque", &tempFn); 9074d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 9084d6c458bSopenharmony_ci napi_get_value_bool(env, result, &flag); 9094d6c458bSopenharmony_ci ASSERT_FALSE(flag); 9104d6c458bSopenharmony_ci 9114d6c458bSopenharmony_ci napi_get_named_property(env, instance, "checkIsHierarchical", &tempFn); 9124d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 9134d6c458bSopenharmony_ci napi_get_value_bool(env, result, &flag); 9144d6c458bSopenharmony_ci ASSERT_TRUE(flag); 9154d6c458bSopenharmony_ci 9164d6c458bSopenharmony_ci napi_value key = StrToNapiValue(env, "aaa"); 9174d6c458bSopenharmony_ci napi_value value = StrToNapiValue(env, "bbb"); 9184d6c458bSopenharmony_ci napi_value keyArgs[] = { key, value }; 9194d6c458bSopenharmony_ci napi_get_named_property(env, instance, "addQueryValue", &tempFn); 9204d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 2, keyArgs, &result); 9214d6c458bSopenharmony_ci std::string res = GetStringUtf8(env, result); 9224d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http://name:word@www.uritest.com:99/path/abc?query&aaa=bbb#fagment"); 9234d6c458bSopenharmony_ci 9244d6c458bSopenharmony_ci napi_get_named_property(env, instance, "getSegment", &tempFn); 9254d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 9264d6c458bSopenharmony_ci std::vector<std::string> temp = GetArray(env, result); 9274d6c458bSopenharmony_ci ASSERT_STREQ(temp[0].c_str(), "path"); 9284d6c458bSopenharmony_ci ASSERT_STREQ(temp[1].c_str(), "abc"); 9294d6c458bSopenharmony_ci 9304d6c458bSopenharmony_ci napi_value segment = StrToNapiValue(env, "aaa"); 9314d6c458bSopenharmony_ci napi_value segargs[] = { segment }; 9324d6c458bSopenharmony_ci napi_get_named_property(env, instance, "addSegment", &tempFn); 9334d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 1, segargs, &result); 9344d6c458bSopenharmony_ci res = GetStringUtf8(env, result); 9354d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http://name:word@www.uritest.com:99/path/abc/aaa?query#fagment"); 9364d6c458bSopenharmony_ci 9374d6c458bSopenharmony_ci napi_get_named_property(env, instance, "clearQuery", &tempFn); 9384d6c458bSopenharmony_ci napi_call_function(env, instance, tempFn, 0, nullptr, &result); 9394d6c458bSopenharmony_ci res = GetStringUtf8(env, result); 9404d6c458bSopenharmony_ci ASSERT_STREQ(res.c_str(), "http://name:word@www.uritest.com:99/path/abc#fagment"); 9414d6c458bSopenharmony_ci}