OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "googleurl/src/gurl.h" | 5 #include "googleurl/src/gurl.h" |
6 #include "net/base/registry_controlled_domain.h" | 6 #include "net/base/registry_controlled_domain.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 #include "effective_tld_names_unittest1.cc" | 9 #include "effective_tld_names_unittest1.cc" |
10 #undef TOTAL_KEYWORDS | 10 #undef TOTAL_KEYWORDS |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 virtual void TearDown() { | 48 virtual void TearDown() { |
49 TestRegistryControlledDomainService::UseDefaultInstance(); | 49 TestRegistryControlledDomainService::UseDefaultInstance(); |
50 } | 50 } |
51 }; | 51 }; |
52 | 52 |
53 | 53 |
54 std::string GetDomainFromURL(const std::string& url) { | 54 std::string GetDomainFromURL(const std::string& url) { |
55 return TestRegistryControlledDomainService::GetDomainAndRegistry(GURL(url)); | 55 return TestRegistryControlledDomainService::GetDomainAndRegistry(GURL(url)); |
56 } | 56 } |
57 | 57 |
58 std::string GetDomainFromHost(const std::wstring& host) { | 58 std::string GetDomainFromHost(const std::string& host) { |
59 return TestRegistryControlledDomainService::GetDomainAndRegistry(host); | 59 return TestRegistryControlledDomainService::GetDomainAndRegistry(host); |
60 } | 60 } |
61 | 61 |
62 size_t GetRegistryLengthFromURL(const std::string& url, | 62 size_t GetRegistryLengthFromURL(const std::string& url, |
63 bool allow_unknown_registries) { | 63 bool allow_unknown_registries) { |
64 return TestRegistryControlledDomainService::GetRegistryLength(GURL(url), | 64 return TestRegistryControlledDomainService::GetRegistryLength(GURL(url), |
65 allow_unknown_registries); | 65 allow_unknown_registries); |
66 } | 66 } |
67 | 67 |
68 size_t GetRegistryLengthFromHost(const std::wstring& host, | 68 size_t GetRegistryLengthFromHost(const std::string& host, |
69 bool allow_unknown_registries) { | 69 bool allow_unknown_registries) { |
70 return TestRegistryControlledDomainService::GetRegistryLength(host, | 70 return TestRegistryControlledDomainService::GetRegistryLength(host, |
71 allow_unknown_registries); | 71 allow_unknown_registries); |
72 } | 72 } |
73 | 73 |
74 bool CompareDomains(const std::string& url1, const std::string& url2) { | 74 bool CompareDomains(const std::string& url1, const std::string& url2) { |
75 GURL g1 = GURL(url1); | 75 GURL g1 = GURL(url1); |
76 GURL g2 = GURL(url2); | 76 GURL g2 = GURL(url2); |
77 return TestRegistryControlledDomainService::SameDomainOrHost(g1, g2); | 77 return TestRegistryControlledDomainService::SameDomainOrHost(g1, g2); |
78 } | 78 } |
(...skipping 27 matching lines...) Expand all Loading... |
106 EXPECT_EQ("", GetDomainFromURL("http://foo.com..")); | 106 EXPECT_EQ("", GetDomainFromURL("http://foo.com..")); |
107 EXPECT_EQ("", GetDomainFromURL("http://...")); | 107 EXPECT_EQ("", GetDomainFromURL("http://...")); |
108 EXPECT_EQ("", GetDomainFromURL("http://192.168.0.1")); | 108 EXPECT_EQ("", GetDomainFromURL("http://192.168.0.1")); |
109 EXPECT_EQ("", GetDomainFromURL("http://localhost")); | 109 EXPECT_EQ("", GetDomainFromURL("http://localhost")); |
110 EXPECT_EQ("", GetDomainFromURL("http://localhost.")); | 110 EXPECT_EQ("", GetDomainFromURL("http://localhost.")); |
111 EXPECT_EQ("", GetDomainFromURL("http:////Comment")); | 111 EXPECT_EQ("", GetDomainFromURL("http:////Comment")); |
112 | 112 |
113 // Test std::wstring version of GetDomainAndRegistry(). Uses the same | 113 // Test std::wstring version of GetDomainAndRegistry(). Uses the same |
114 // underpinnings as the GURL version, so this is really more of a check of | 114 // underpinnings as the GURL version, so this is really more of a check of |
115 // CanonicalizeHost(). | 115 // CanonicalizeHost(). |
116 EXPECT_EQ("baz.jp", GetDomainFromHost(L"a.baz.jp")); // 1 | 116 EXPECT_EQ("baz.jp", GetDomainFromHost("a.baz.jp")); // 1 |
117 EXPECT_EQ("baz.jp.", GetDomainFromHost(L"a.baz.jp.")); // 1 | 117 EXPECT_EQ("baz.jp.", GetDomainFromHost("a.baz.jp.")); // 1 |
118 EXPECT_EQ("", GetDomainFromHost(L"ac.jp")); // 2 | 118 EXPECT_EQ("", GetDomainFromHost("ac.jp")); // 2 |
119 EXPECT_EQ("", GetDomainFromHost(L"a.bar.jp")); // 3 | 119 EXPECT_EQ("", GetDomainFromHost("a.bar.jp")); // 3 |
120 EXPECT_EQ("", GetDomainFromHost(L"bar.jp")); // 3 | 120 EXPECT_EQ("", GetDomainFromHost("bar.jp")); // 3 |
121 EXPECT_EQ("", GetDomainFromHost(L"baz.bar.jp")); // 3 4 | 121 EXPECT_EQ("", GetDomainFromHost("baz.bar.jp")); // 3 4 |
122 EXPECT_EQ("a.b.baz.bar.jp", GetDomainFromHost(L"a.b.baz.bar.jp")); // 3 4 | 122 EXPECT_EQ("a.b.baz.bar.jp", GetDomainFromHost("a.b.baz.bar.jp")); // 3 4 |
123 EXPECT_EQ("pref.bar.jp", GetDomainFromHost(L"baz.pref.bar.jp")); // 5 | 123 EXPECT_EQ("pref.bar.jp", GetDomainFromHost("baz.pref.bar.jp")); // 5 |
124 EXPECT_EQ("b.bar.baz.com.", GetDomainFromHost(L"a.b.bar.baz.com.")); // 6 | 124 EXPECT_EQ("b.bar.baz.com.", GetDomainFromHost("a.b.bar.baz.com.")); // 6 |
125 EXPECT_EQ("a.d.c", GetDomainFromHost(L"a.d.c")); // 7 | 125 EXPECT_EQ("a.d.c", GetDomainFromHost("a.d.c")); // 7 |
126 EXPECT_EQ("a.d.c", GetDomainFromHost(L".a.d.c")); // 7 | 126 EXPECT_EQ("a.d.c", GetDomainFromHost(".a.d.c")); // 7 |
127 EXPECT_EQ("a.d.c", GetDomainFromHost(L"..a.d.c")); // 7 | 127 EXPECT_EQ("a.d.c", GetDomainFromHost("..a.d.c")); // 7 |
128 EXPECT_EQ("b.c", GetDomainFromHost(L"a.b.c")); // 7 8 | 128 EXPECT_EQ("b.c", GetDomainFromHost("a.b.c")); // 7 8 |
129 EXPECT_EQ("baz.com", GetDomainFromHost(L"baz.com")); // none | 129 EXPECT_EQ("baz.com", GetDomainFromHost("baz.com")); // none |
130 EXPECT_EQ("baz.com.", GetDomainFromHost(L"baz.com.")); // none | 130 EXPECT_EQ("baz.com.", GetDomainFromHost("baz.com.")); // none |
131 | 131 |
132 EXPECT_EQ("", GetDomainFromHost(L"")); | 132 EXPECT_EQ("", GetDomainFromHost("")); |
133 EXPECT_EQ("", GetDomainFromHost(L"foo.com..")); | 133 EXPECT_EQ("", GetDomainFromHost("foo.com..")); |
134 EXPECT_EQ("", GetDomainFromHost(L"...")); | 134 EXPECT_EQ("", GetDomainFromHost("...")); |
135 EXPECT_EQ("", GetDomainFromHost(L"192.168.0.1")); | 135 EXPECT_EQ("", GetDomainFromHost("192.168.0.1")); |
136 EXPECT_EQ("", GetDomainFromHost(L"localhost.")); | 136 EXPECT_EQ("", GetDomainFromHost("localhost.")); |
137 EXPECT_EQ("", GetDomainFromHost(L".localhost.")); | 137 EXPECT_EQ("", GetDomainFromHost(".localhost.")); |
138 } | 138 } |
139 | 139 |
140 TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) { | 140 TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) { |
141 TestRegistryControlledDomainService::UseDomainData( | 141 TestRegistryControlledDomainService::UseDomainData( |
142 Perfect_Hash_Test1::FindDomain); | 142 Perfect_Hash_Test1::FindDomain); |
143 | 143 |
144 // Test GURL version of GetRegistryLength(). | 144 // Test GURL version of GetRegistryLength(). |
145 EXPECT_EQ(2U, GetRegistryLengthFromURL("http://a.baz.jp/file.html", false)); | 145 EXPECT_EQ(2U, GetRegistryLengthFromURL("http://a.baz.jp/file.html", false)); |
146 // 1 | 146 // 1 |
147 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://a.baz.jp./file.html", false)); | 147 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://a.baz.jp./file.html", false)); |
(...skipping 26 matching lines...) Expand all Loading... |
174 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://192.168.0.1", false)); | 174 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://192.168.0.1", false)); |
175 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", false)); | 175 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", false)); |
176 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", true)); | 176 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", true)); |
177 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", false)); | 177 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", false)); |
178 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", true)); | 178 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", true)); |
179 EXPECT_EQ(0U, GetRegistryLengthFromURL("http:////Comment", false)); | 179 EXPECT_EQ(0U, GetRegistryLengthFromURL("http:////Comment", false)); |
180 | 180 |
181 // Test std::wstring version of GetRegistryLength(). Uses the same | 181 // Test std::wstring version of GetRegistryLength(). Uses the same |
182 // underpinnings as the GURL version, so this is really more of a check of | 182 // underpinnings as the GURL version, so this is really more of a check of |
183 // CanonicalizeHost(). | 183 // CanonicalizeHost(). |
184 EXPECT_EQ(2U, GetRegistryLengthFromHost(L"a.baz.jp", false)); // 1 | 184 EXPECT_EQ(2U, GetRegistryLengthFromHost("a.baz.jp", false)); // 1 |
185 EXPECT_EQ(3U, GetRegistryLengthFromHost(L"a.baz.jp.", false)); // 1 | 185 EXPECT_EQ(3U, GetRegistryLengthFromHost("a.baz.jp.", false)); // 1 |
186 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"ac.jp", false)); // 2 | 186 EXPECT_EQ(0U, GetRegistryLengthFromHost("ac.jp", false)); // 2 |
187 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"a.bar.jp", false)); // 3 | 187 EXPECT_EQ(0U, GetRegistryLengthFromHost("a.bar.jp", false)); // 3 |
188 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"bar.jp", false)); // 3 | 188 EXPECT_EQ(0U, GetRegistryLengthFromHost("bar.jp", false)); // 3 |
189 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.bar.jp", false)); // 3 4 | 189 EXPECT_EQ(0U, GetRegistryLengthFromHost("baz.bar.jp", false)); // 3 4 |
190 EXPECT_EQ(12U, GetRegistryLengthFromHost(L"a.b.baz.bar.jp", false)); // 4 | 190 EXPECT_EQ(12U, GetRegistryLengthFromHost("a.b.baz.bar.jp", false)); // 4 |
191 EXPECT_EQ(6U, GetRegistryLengthFromHost(L"baz.pref.bar.jp", false)); // 5 | 191 EXPECT_EQ(6U, GetRegistryLengthFromHost("baz.pref.bar.jp", false)); // 5 |
192 EXPECT_EQ(11U, GetRegistryLengthFromHost(L"a.b.bar.baz.com", false)); | 192 EXPECT_EQ(11U, GetRegistryLengthFromHost("a.b.bar.baz.com", false)); // 6 |
193 // 6 | 193 EXPECT_EQ(3U, GetRegistryLengthFromHost("a.d.c", false)); // 7 |
194 EXPECT_EQ(3U, GetRegistryLengthFromHost(L"a.d.c", false)); // 7 | 194 EXPECT_EQ(3U, GetRegistryLengthFromHost(".a.d.c", false)); // 7 |
195 EXPECT_EQ(3U, GetRegistryLengthFromHost(L".a.d.c", false)); // 7 | 195 EXPECT_EQ(3U, GetRegistryLengthFromHost("..a.d.c", false)); // 7 |
196 EXPECT_EQ(3U, GetRegistryLengthFromHost(L"..a.d.c", false)); // 7 | 196 EXPECT_EQ(1U, GetRegistryLengthFromHost("a.b.c", false)); // 7 8 |
197 EXPECT_EQ(1U, GetRegistryLengthFromHost(L"a.b.c", false)); // 7 8 | 197 EXPECT_EQ(0U, GetRegistryLengthFromHost("baz.com", false)); // none |
198 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.com", false)); // none | 198 EXPECT_EQ(0U, GetRegistryLengthFromHost("baz.com.", false)); // none |
199 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.com.", false)); // none | 199 EXPECT_EQ(3U, GetRegistryLengthFromHost("baz.com", true)); // none |
200 EXPECT_EQ(3U, GetRegistryLengthFromHost(L"baz.com", true)); // none | 200 EXPECT_EQ(4U, GetRegistryLengthFromHost("baz.com.", true)); // none |
201 EXPECT_EQ(4U, GetRegistryLengthFromHost(L"baz.com.", true)); // none | |
202 | 201 |
203 EXPECT_EQ(std::string::npos, GetRegistryLengthFromHost(L"", false)); | 202 EXPECT_EQ(std::string::npos, GetRegistryLengthFromHost("", false)); |
204 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"foo.com..", false)); | 203 EXPECT_EQ(0U, GetRegistryLengthFromHost("foo.com..", false)); |
205 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"..", false)); | 204 EXPECT_EQ(0U, GetRegistryLengthFromHost("..", false)); |
206 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"192.168.0.1", false)); | 205 EXPECT_EQ(0U, GetRegistryLengthFromHost("192.168.0.1", false)); |
207 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost", false)); | 206 EXPECT_EQ(0U, GetRegistryLengthFromHost("localhost", false)); |
208 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost", true)); | 207 EXPECT_EQ(0U, GetRegistryLengthFromHost("localhost", true)); |
209 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost.", false)); | 208 EXPECT_EQ(0U, GetRegistryLengthFromHost("localhost.", false)); |
210 EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost.", true)); | 209 EXPECT_EQ(0U, GetRegistryLengthFromHost("localhost.", true)); |
211 } | 210 } |
212 | 211 |
213 TEST_F(RegistryControlledDomainTest, TestSameDomainOrHost) { | 212 TEST_F(RegistryControlledDomainTest, TestSameDomainOrHost) { |
214 TestRegistryControlledDomainService::UseDomainData( | 213 TestRegistryControlledDomainService::UseDomainData( |
215 Perfect_Hash_Test2::FindDomain); | 214 Perfect_Hash_Test2::FindDomain); |
216 | 215 |
217 EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html", | 216 EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html", |
218 "http://a.b.bar.jp/file.html")); // b.bar.jp | 217 "http://a.b.bar.jp/file.html")); // b.bar.jp |
219 EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html", | 218 EXPECT_TRUE(CompareDomains("http://a.b.bar.jp/file.html", |
220 "http://b.b.bar.jp/file.html")); // b.bar.jp | 219 "http://b.b.bar.jp/file.html")); // b.bar.jp |
(...skipping 27 matching lines...) Expand all Loading... |
248 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://stanford.edu", false)); | 247 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://stanford.edu", false)); |
249 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ustreas.gov", false)); | 248 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ustreas.gov", false)); |
250 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://icann.net", false)); | 249 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://icann.net", false)); |
251 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ferretcentral.org", false)); | 250 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ferretcentral.org", false)); |
252 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://nowhere.foo", false)); | 251 EXPECT_EQ(0U, GetRegistryLengthFromURL("http://nowhere.foo", false)); |
253 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://nowhere.foo", true)); | 252 EXPECT_EQ(3U, GetRegistryLengthFromURL("http://nowhere.foo", true)); |
254 } | 253 } |
255 | 254 |
256 } // namespace | 255 } // namespace |
257 } // namespace net | 256 } // namespace net |
OLD | NEW |