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