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 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 | 880 |
881 // This tests tests. | 881 // This tests tests. |
882 const char spec[] = "192.168.0.1"; | 882 const char spec[] = "192.168.0.1"; |
883 CanonicalizeIPAddress(spec, Component(), &output1, &host_info); | 883 CanonicalizeIPAddress(spec, Component(), &output1, &host_info); |
884 EXPECT_FALSE(host_info.IsIPAddress()); | 884 EXPECT_FALSE(host_info.IsIPAddress()); |
885 | 885 |
886 CanonicalizeIPAddress(spec, Component(0, 0), &output1, &host_info); | 886 CanonicalizeIPAddress(spec, Component(0, 0), &output1, &host_info); |
887 EXPECT_FALSE(host_info.IsIPAddress()); | 887 EXPECT_FALSE(host_info.IsIPAddress()); |
888 } | 888 } |
889 | 889 |
| 890 // Verifies that CanonicalizeHostSubstring produces the expected output and |
| 891 // does not "fix" IP addresses. Because this code is a subset of |
| 892 // CanonicalizeHost, the shared functionality is not tested. |
| 893 TEST(URLCanonTest, CanonicalizeHostSubstring) { |
| 894 // Basic sanity check. |
| 895 { |
| 896 std::string out_str; |
| 897 StdStringCanonOutput output(&out_str); |
| 898 EXPECT_TRUE(CanonicalizeHostSubstring("M\xc3\x9cNCHEN.com", |
| 899 Component(0, 12), &output)); |
| 900 output.Complete(); |
| 901 EXPECT_EQ("xn--mnchen-3ya.com", out_str); |
| 902 } |
| 903 |
| 904 // Failure case. |
| 905 { |
| 906 std::string out_str; |
| 907 StdStringCanonOutput output(&out_str); |
| 908 EXPECT_FALSE(CanonicalizeHostSubstring( |
| 909 WStringToUTF16(L"\xfdd0zyx.com").c_str(), Component(0, 8), &output)); |
| 910 output.Complete(); |
| 911 EXPECT_EQ("%EF%BF%BDzyx.com", out_str); |
| 912 } |
| 913 |
| 914 // Should return true for empty input strings. |
| 915 { |
| 916 std::string out_str; |
| 917 StdStringCanonOutput output(&out_str); |
| 918 EXPECT_TRUE(CanonicalizeHostSubstring("", Component(0, 0), &output)); |
| 919 output.Complete(); |
| 920 EXPECT_EQ(std::string(), out_str); |
| 921 } |
| 922 |
| 923 // Numbers that look like IP addresses should not be changed. |
| 924 { |
| 925 std::string out_str; |
| 926 StdStringCanonOutput output(&out_str); |
| 927 EXPECT_TRUE( |
| 928 CanonicalizeHostSubstring("01.02.03.04", Component(0, 11), &output)); |
| 929 output.Complete(); |
| 930 EXPECT_EQ("01.02.03.04", out_str); |
| 931 } |
| 932 } |
| 933 |
890 TEST(URLCanonTest, UserInfo) { | 934 TEST(URLCanonTest, UserInfo) { |
891 // Note that the canonicalizer should escape and treat empty components as | 935 // Note that the canonicalizer should escape and treat empty components as |
892 // not being there. | 936 // not being there. |
893 | 937 |
894 // We actually parse a full input URL so we can get the initial components. | 938 // We actually parse a full input URL so we can get the initial components. |
895 struct UserComponentCase { | 939 struct UserComponentCase { |
896 const char* input; | 940 const char* input; |
897 const char* expected; | 941 const char* expected; |
898 Component expected_username; | 942 Component expected_username; |
899 Component expected_password; | 943 Component expected_password; |
(...skipping 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2198 }; | 2242 }; |
2199 | 2243 |
2200 for (auto& test_case : cases) { | 2244 for (auto& test_case : cases) { |
2201 SCOPED_TRACE(test_case.scheme); | 2245 SCOPED_TRACE(test_case.scheme); |
2202 EXPECT_EQ(test_case.expected_port, | 2246 EXPECT_EQ(test_case.expected_port, |
2203 DefaultPortForScheme(test_case.scheme, strlen(test_case.scheme))); | 2247 DefaultPortForScheme(test_case.scheme, strlen(test_case.scheme))); |
2204 } | 2248 } |
2205 } | 2249 } |
2206 | 2250 |
2207 } // namespace url | 2251 } // namespace url |
OLD | NEW |