OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <errno.h> | 5 #include <errno.h> |
6 #include <stddef.h> | 6 #include <stddef.h> |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "url/third_party/mozilla/url_parse.h" | 10 #include "url/third_party/mozilla/url_parse.h" |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 // "punctuation and symbol" blocked in IDNA 2008. | 395 // "punctuation and symbol" blocked in IDNA 2008. |
396 // UTS 46 table 4, row (j) | 396 // UTS 46 table 4, row (j) |
397 {"\xe2\x82\xb7.com", L"\x20b7.com", "xn--wzg.com", | 397 {"\xe2\x82\xb7.com", L"\x20b7.com", "xn--wzg.com", |
398 Component(0, 11), CanonHostInfo::NEUTRAL, -1, ""}, | 398 Component(0, 11), CanonHostInfo::NEUTRAL, -1, ""}, |
399 // Maps uppercase letters to lower case letters. | 399 // Maps uppercase letters to lower case letters. |
400 // In IDNA 2003, it's allowed without case-folding | 400 // In IDNA 2003, it's allowed without case-folding |
401 // ( xn--bc-7cb.com ) because it's not defined in Unicode 3.2 | 401 // ( xn--bc-7cb.com ) because it's not defined in Unicode 3.2 |
402 // (added in Unicode 4.1). UTS 46 table 4 row (k) | 402 // (added in Unicode 4.1). UTS 46 table 4 row (k) |
403 {"bc\xc8\xba.com", L"bc\x23a.com", "xn--bc-is1a.com", | 403 {"bc\xc8\xba.com", L"bc\x23a.com", "xn--bc-is1a.com", |
404 Component(0, 15), CanonHostInfo::NEUTRAL, -1, ""}, | 404 Component(0, 15), CanonHostInfo::NEUTRAL, -1, ""}, |
| 405 // Maps U+FF43 (Full Width Small Letter C) to 'c'. |
| 406 {"ab\xef\xbd\x83.xyz", L"ab\xff43.xyz", "abc.xyz", |
| 407 Component(0, 7), CanonHostInfo::NEUTRAL, -1, ""}, |
| 408 // Maps U+1D68C (Math Monospace Small C) to 'c'. |
| 409 // U+1D68C = \xD835\xDE8C in UTF-16 |
| 410 {"ab\xf0\x9d\x9a\x8c.xyz", L"ab\xd835\xde8c.xyz", "abc.xyz", |
| 411 Component(0, 7), CanonHostInfo::NEUTRAL, -1, ""}, |
405 // BiDi check test | 412 // BiDi check test |
406 // "Divehi" in Divehi (Thaana script) ends with BidiClass=NSM. | 413 // "Divehi" in Divehi (Thaana script) ends with BidiClass=NSM. |
407 // Disallowed in IDNA 2003 but now allowed in UTS 46/IDNA 2008. | 414 // Disallowed in IDNA 2003 but now allowed in UTS 46/IDNA 2008. |
408 {"\xde\x8b\xde\xa8\xde\x88\xde\xac\xde\x80\xde\xa8", | 415 {"\xde\x8b\xde\xa8\xde\x88\xde\xac\xde\x80\xde\xa8", |
409 L"\x78b\x7a8\x788\x7ac\x780\x7a8", "xn--hqbpi0jcw", | 416 L"\x78b\x7a8\x788\x7ac\x780\x7a8", "xn--hqbpi0jcw", |
410 Component(0, 13), CanonHostInfo::NEUTRAL, -1, ""}, | 417 Component(0, 13), CanonHostInfo::NEUTRAL, -1, ""}, |
411 // Disallowed in both IDNA 2003 and 2008 with BiDi check. | 418 // Disallowed in both IDNA 2003 and 2008 with BiDi check. |
412 // Labels starting with a RTL character cannot end with a LTR character. | 419 // Labels starting with a RTL character cannot end with a LTR character. |
413 {"\xd8\xac\xd8\xa7\xd8\xb1xyz", L"\x62c\x627\x631xyz", | 420 {"\xd8\xac\xd8\xa7\xd8\xb1xyz", L"\x62c\x627\x631xyz", |
414 "%D8%AC%D8%A7%D8%B1xyz", Component(0, 21), | 421 "%D8%AC%D8%A7%D8%B1xyz", Component(0, 21), |
(...skipping 1744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2159 repl_output.Complete(); | 2166 repl_output.Complete(); |
2160 | 2167 |
2161 // Generate the expected string and check. | 2168 // Generate the expected string and check. |
2162 std::string expected("file:///foo?"); | 2169 std::string expected("file:///foo?"); |
2163 for (size_t i = 0; i < new_query.length(); i++) | 2170 for (size_t i = 0; i < new_query.length(); i++) |
2164 expected.push_back('a'); | 2171 expected.push_back('a'); |
2165 EXPECT_TRUE(expected == repl_str); | 2172 EXPECT_TRUE(expected == repl_str); |
2166 } | 2173 } |
2167 | 2174 |
2168 } // namespace url | 2175 } // namespace url |
OLD | NEW |