license.bot | bf09a50 | 2008-08-24 00:55:55 | [diff] [blame] | 1 | // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 4 | |
| 5 | #include "googleurl/src/gurl.h" |
| 6 | #include "net/base/registry_controlled_domain.h" |
| 7 | #include "testing/gtest/include/gtest/gtest.h" |
| 8 | |
| 9 | namespace { |
| 10 | |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 11 | class TestRegistryControlledDomainService : |
[email protected] | 8ac1a75 | 2008-07-31 19:40:37 | [diff] [blame] | 12 | public net::RegistryControlledDomainService { |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 13 | public: |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 14 | // Sets and parses the given data. |
| 15 | static void UseDomainData(const std::string& data) { |
[email protected] | 8ac1a75 | 2008-07-31 19:40:37 | [diff] [blame] | 16 | net::RegistryControlledDomainService::UseDomainData(data); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 17 | } |
| 18 | |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 19 | // Creates a new dedicated instance to be used for testing, deleting any |
| 20 | // previously-set one. |
| 21 | static void UseDedicatedInstance() { |
| 22 | delete static_cast<TestRegistryControlledDomainService*>( |
| 23 | SetInstance(new TestRegistryControlledDomainService())); |
| 24 | } |
| 25 | |
| 26 | // Restores RegistryControlledDomainService to using its default instance, |
| 27 | // deleting any previously-set test instance. |
| 28 | static void UseDefaultInstance() { |
| 29 | delete static_cast<TestRegistryControlledDomainService*>(SetInstance(NULL)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 30 | } |
| 31 | }; |
| 32 | |
| 33 | class RegistryControlledDomainTest : public testing::Test { |
| 34 | protected: |
| 35 | virtual void SetUp() { |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 36 | TestRegistryControlledDomainService::UseDedicatedInstance(); |
| 37 | } |
| 38 | |
| 39 | virtual void TearDown() { |
| 40 | TestRegistryControlledDomainService::UseDefaultInstance(); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 41 | } |
| 42 | }; |
| 43 | |
| 44 | // Convenience functions to shorten the names for repeated use below. |
| 45 | void SetTestData(const std::string& data) { |
| 46 | TestRegistryControlledDomainService::UseDomainData(data); |
| 47 | } |
| 48 | |
| 49 | std::string GetDomainFromURL(const std::string& url) { |
| 50 | return TestRegistryControlledDomainService::GetDomainAndRegistry(GURL(url)); |
| 51 | } |
| 52 | |
| 53 | std::string GetDomainFromHost(const std::wstring& host) { |
| 54 | return TestRegistryControlledDomainService::GetDomainAndRegistry(host); |
| 55 | } |
| 56 | |
| 57 | size_t GetRegistryLengthFromURL(const std::string& url, |
| 58 | bool allow_unknown_registries) { |
| 59 | return TestRegistryControlledDomainService::GetRegistryLength(GURL(url), |
| 60 | allow_unknown_registries); |
| 61 | } |
| 62 | |
| 63 | size_t GetRegistryLengthFromHost(const std::wstring& host, |
| 64 | bool allow_unknown_registries) { |
| 65 | return TestRegistryControlledDomainService::GetRegistryLength(host, |
| 66 | allow_unknown_registries); |
| 67 | } |
| 68 | |
| 69 | bool CompareDomains(const std::string& url1, const std::string& url2) { |
| 70 | GURL g1 = GURL(url1); |
| 71 | GURL g2 = GURL(url2); |
| 72 | return TestRegistryControlledDomainService::SameDomainOrHost(g1, g2); |
| 73 | } |
| 74 | |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 75 | TEST_F(RegistryControlledDomainTest, TestParsing) { |
| 76 | // Ensure that various simple and pathological cases parse without hanging or |
| 77 | // crashing. Testing the correctness of the parsing directly would require |
| 78 | // opening the singleton class up more. |
| 79 | SetTestData("com"); |
| 80 | SetTestData("abc.com\n"); |
| 81 | SetTestData("abc.com\ndef.com\n*.abc.com\n!foo.abc.com"); |
| 82 | SetTestData("abc.com.\n"); |
| 83 | SetTestData(""); |
| 84 | SetTestData("*."); |
| 85 | SetTestData("!"); |
| 86 | SetTestData("."); |
| 87 | } |
| 88 | |
| 89 | static const char kTestData[] = "jp\n" // 1 |
| 90 | "ac.jp\n" // 2 |
| 91 | "*.bar.jp\n" // 3 |
| 92 | "*.baz.bar.jp\n" // 4 |
| 93 | "*.foo.bar.jp\n" // 5 |
| 94 | "!foo.bar.jp\n" // 6 |
| 95 | "!pref.bar.jp\n" // 7 |
| 96 | "bar.baz.com\n" // 8 |
| 97 | "*.c\n" // 9 |
| 98 | "!b.c"; // 10 |
| 99 | |
| 100 | TEST_F(RegistryControlledDomainTest, TestGetDomainAndRegistry) { |
| 101 | SetTestData(kTestData); |
| 102 | |
| 103 | // Test GURL version of GetDomainAndRegistry(). |
| 104 | EXPECT_EQ("baz.jp", GetDomainFromURL("http://a.baz.jp/file.html")); // 1 |
| 105 | EXPECT_EQ("baz.jp.", GetDomainFromURL("http://a.baz.jp./file.html")); // 1 |
| 106 | EXPECT_EQ("", GetDomainFromURL("http://ac.jp")); // 2 |
| 107 | EXPECT_EQ("", GetDomainFromURL("http://a.bar.jp")); // 3 |
| 108 | EXPECT_EQ("", GetDomainFromURL("http://bar.jp")); // 3 |
| 109 | EXPECT_EQ("", GetDomainFromURL("http://baz.bar.jp")); // 3 4 |
| 110 | EXPECT_EQ("a.b.baz.bar.jp", GetDomainFromURL("http://a.b.baz.bar.jp")); |
| 111 | // 4 |
| 112 | EXPECT_EQ("foo.bar.jp", GetDomainFromURL("http://foo.bar.jp")); // 3 5 6 |
| 113 | EXPECT_EQ("pref.bar.jp", GetDomainFromURL("http://baz.pref.bar.jp")); // 7 |
| 114 | EXPECT_EQ("b.bar.baz.com.", GetDomainFromURL("http://a.b.bar.baz.com.")); |
| 115 | // 8 |
| 116 | EXPECT_EQ("a.d.c", GetDomainFromURL("http://a.d.c")); // 9 |
| 117 | EXPECT_EQ("a.d.c", GetDomainFromURL("http://.a.d.c")); // 9 |
| 118 | EXPECT_EQ("a.d.c", GetDomainFromURL("http://..a.d.c")); // 9 |
| 119 | EXPECT_EQ("b.c", GetDomainFromURL("http://a.b.c")); // 9 10 |
| 120 | EXPECT_EQ("baz.com", GetDomainFromURL("http://baz.com")); // none |
| 121 | EXPECT_EQ("baz.com.", GetDomainFromURL("http://baz.com.")); // none |
| 122 | |
| 123 | EXPECT_EQ("", GetDomainFromURL("")); |
| 124 | EXPECT_EQ("", GetDomainFromURL("http://")); |
| 125 | EXPECT_EQ("", GetDomainFromURL("file:///C:/file.html")); |
| 126 | EXPECT_EQ("", GetDomainFromURL("http://foo.com..")); |
| 127 | EXPECT_EQ("", GetDomainFromURL("http://...")); |
| 128 | EXPECT_EQ("", GetDomainFromURL("http://192.168.0.1")); |
| 129 | EXPECT_EQ("", GetDomainFromURL("http://localhost")); |
| 130 | EXPECT_EQ("", GetDomainFromURL("http://localhost.")); |
| 131 | EXPECT_EQ("", GetDomainFromURL("http:////Comment")); |
| 132 | |
| 133 | // Test std::wstring version of GetDomainAndRegistry(). Uses the same |
| 134 | // underpinnings as the GURL version, so this is really more of a check of |
| 135 | // CanonicalizeHost(). |
| 136 | EXPECT_EQ("baz.jp", GetDomainFromHost(L"a.baz.jp")); // 1 |
| 137 | EXPECT_EQ("baz.jp.", GetDomainFromHost(L"a.baz.jp.")); // 1 |
| 138 | EXPECT_EQ("", GetDomainFromHost(L"ac.jp")); // 2 |
| 139 | EXPECT_EQ("", GetDomainFromHost(L"a.bar.jp")); // 3 |
| 140 | EXPECT_EQ("", GetDomainFromHost(L"bar.jp")); // 3 |
| 141 | EXPECT_EQ("", GetDomainFromHost(L"baz.bar.jp")); // 3 4 |
| 142 | EXPECT_EQ("a.b.baz.bar.jp", GetDomainFromHost(L"a.b.baz.bar.jp")); // 3 4 |
| 143 | EXPECT_EQ("foo.bar.jp", GetDomainFromHost(L"foo.bar.jp")); // 3 5 6 |
| 144 | EXPECT_EQ("pref.bar.jp", GetDomainFromHost(L"baz.pref.bar.jp")); // 7 |
| 145 | EXPECT_EQ("b.bar.baz.com.", GetDomainFromHost(L"a.b.bar.baz.com.")); // 8 |
| 146 | EXPECT_EQ("a.d.c", GetDomainFromHost(L"a.d.c")); // 9 |
| 147 | EXPECT_EQ("a.d.c", GetDomainFromHost(L".a.d.c")); // 9 |
| 148 | EXPECT_EQ("a.d.c", GetDomainFromHost(L"..a.d.c")); // 9 |
| 149 | EXPECT_EQ("b.c", GetDomainFromHost(L"a.b.c")); // 9 10 |
| 150 | EXPECT_EQ("baz.com", GetDomainFromHost(L"baz.com")); // none |
| 151 | EXPECT_EQ("baz.com.", GetDomainFromHost(L"baz.com.")); // none |
| 152 | |
| 153 | EXPECT_EQ("", GetDomainFromHost(L"")); |
| 154 | EXPECT_EQ("", GetDomainFromHost(L"foo.com..")); |
| 155 | EXPECT_EQ("", GetDomainFromHost(L"...")); |
| 156 | EXPECT_EQ("", GetDomainFromHost(L"192.168.0.1")); |
| 157 | EXPECT_EQ("", GetDomainFromHost(L"localhost.")); |
| 158 | EXPECT_EQ("", GetDomainFromHost(L".localhost.")); |
| 159 | } |
| 160 | |
| 161 | TEST_F(RegistryControlledDomainTest, TestGetRegistryLength) { |
| 162 | SetTestData(kTestData); |
| 163 | |
| 164 | // Test GURL version of GetRegistryLength(). |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 165 | EXPECT_EQ(2U, GetRegistryLengthFromURL("http://a.baz.jp/file.html", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 166 | // 1 |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 167 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://a.baz.jp./file.html", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 168 | // 1 |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 169 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://ac.jp", false)); // 2 |
| 170 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://a.bar.jp", false)); // 3 |
| 171 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://bar.jp", false)); // 3 |
| 172 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://baz.bar.jp", false)); // 3 4 |
| 173 | EXPECT_EQ(12U, GetRegistryLengthFromURL("http://a.b.baz.bar.jp", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 174 | // 4 |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 175 | EXPECT_EQ(6U, GetRegistryLengthFromURL("http://foo.bar.jp", false)); // 3 5 6 |
| 176 | EXPECT_EQ(6U, GetRegistryLengthFromURL("http://baz.pref.bar.jp", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 177 | // 7 |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 178 | EXPECT_EQ(11U, GetRegistryLengthFromURL("http://a.b.bar.baz.com", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 179 | // 8 |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 180 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://a.d.c", false)); // 9 |
| 181 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://.a.d.c", false)); // 9 |
| 182 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://..a.d.c", false)); // 9 |
| 183 | EXPECT_EQ(1U, GetRegistryLengthFromURL("http://a.b.c", false)); // 9 10 |
| 184 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://baz.com", false)); // none |
| 185 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://baz.com.", false)); // none |
| 186 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://baz.com", true)); // none |
| 187 | EXPECT_EQ(4U, GetRegistryLengthFromURL("http://baz.com.", true)); // none |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 188 | |
| 189 | EXPECT_EQ(std::string::npos, GetRegistryLengthFromURL("", false)); |
| 190 | EXPECT_EQ(std::string::npos, GetRegistryLengthFromURL("http://", false)); |
| 191 | EXPECT_EQ(std::string::npos, |
| 192 | GetRegistryLengthFromURL("file:///C:/file.html", false)); |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 193 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://foo.com..", false)); |
| 194 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://...", false)); |
| 195 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://192.168.0.1", false)); |
| 196 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", false)); |
| 197 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost", true)); |
| 198 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", false)); |
| 199 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://localhost.", true)); |
| 200 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http:////Comment", false)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 201 | |
| 202 | // Test std::wstring version of GetRegistryLength(). Uses the same |
| 203 | // underpinnings as the GURL version, so this is really more of a check of |
| 204 | // CanonicalizeHost(). |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 205 | EXPECT_EQ(2U, GetRegistryLengthFromHost(L"a.baz.jp", false)); // 1 |
| 206 | EXPECT_EQ(3U, GetRegistryLengthFromHost(L"a.baz.jp.", false)); // 1 |
| 207 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"ac.jp", false)); // 2 |
| 208 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"a.bar.jp", false)); // 3 |
| 209 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"bar.jp", false)); // 3 |
| 210 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.bar.jp", false)); // 3 4 |
| 211 | EXPECT_EQ(12U, GetRegistryLengthFromHost(L"a.b.baz.bar.jp", false)); // 4 |
| 212 | EXPECT_EQ(6U, GetRegistryLengthFromHost(L"foo.bar.jp", false)); // 3 5 6 |
| 213 | EXPECT_EQ(6U, GetRegistryLengthFromHost(L"baz.pref.bar.jp", false)); // 7 |
| 214 | EXPECT_EQ(11U, GetRegistryLengthFromHost(L"a.b.bar.baz.com", false)); |
| 215 | // 8 |
| 216 | EXPECT_EQ(3U, GetRegistryLengthFromHost(L"a.d.c", false)); // 9 |
| 217 | EXPECT_EQ(3U, GetRegistryLengthFromHost(L".a.d.c", false)); // 9 |
| 218 | EXPECT_EQ(3U, GetRegistryLengthFromHost(L"..a.d.c", false)); // 9 |
| 219 | EXPECT_EQ(1U, GetRegistryLengthFromHost(L"a.b.c", false)); // 9 10 |
| 220 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.com", false)); // none |
| 221 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"baz.com.", false)); // none |
| 222 | EXPECT_EQ(3U, GetRegistryLengthFromHost(L"baz.com", true)); // none |
| 223 | EXPECT_EQ(4U, GetRegistryLengthFromHost(L"baz.com.", true)); // none |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 224 | |
| 225 | EXPECT_EQ(std::string::npos, GetRegistryLengthFromHost(L"", false)); |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 226 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"foo.com..", false)); |
| 227 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"..", false)); |
| 228 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"192.168.0.1", false)); |
| 229 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost", false)); |
| 230 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost", true)); |
| 231 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost.", false)); |
| 232 | EXPECT_EQ(0U, GetRegistryLengthFromHost(L"localhost.", true)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 233 | } |
| 234 | |
| 235 | TEST_F(RegistryControlledDomainTest, TestSameDomainOrHost) { |
| 236 | SetTestData("jp\nbar.jp"); |
| 237 | |
| 238 | EXPECT_EQ(true, CompareDomains("http://a.b.bar.jp/file.html", |
| 239 | "http://a.b.bar.jp/file.html")); // b.bar.jp |
| 240 | EXPECT_EQ(true, CompareDomains("http://a.b.bar.jp/file.html", |
| 241 | "http://b.b.bar.jp/file.html")); // b.bar.jp |
| 242 | EXPECT_EQ(false, CompareDomains("http://a.foo.jp/file.html", // foo.jp |
| 243 | "http://a.not.jp/file.html")); // not.jp |
| 244 | EXPECT_EQ(false, CompareDomains("http://a.foo.jp/file.html", // foo.jp |
| 245 | "http://a.foo.jp./file.html")); // foo.jp. |
| 246 | EXPECT_EQ(false, CompareDomains("http://a.com/file.html", // a.com |
| 247 | "http://b.com/file.html")); // b.com |
| 248 | EXPECT_EQ(true, CompareDomains("http://a.x.com/file.html", |
| 249 | "http://b.x.com/file.html")); // x.com |
| 250 | EXPECT_EQ(true, CompareDomains("http://a.x.com/file.html", |
| 251 | "http://.x.com/file.html")); // x.com |
| 252 | EXPECT_EQ(true, CompareDomains("http://a.x.com/file.html", |
| 253 | "http://..b.x.com/file.html")); // x.com |
| 254 | EXPECT_EQ(true, CompareDomains("http://intranet/file.html", |
| 255 | "http://intranet/file.html")); // intranet |
| 256 | EXPECT_EQ(true, CompareDomains("http://127.0.0.1/file.html", |
| 257 | "http://127.0.0.1/file.html")); // 127.0.0.1 |
| 258 | EXPECT_EQ(false, CompareDomains("http://192.168.0.1/file.html", // 192.168.0.1 |
| 259 | "http://127.0.0.1/file.html")); // 127.0.0.1 |
| 260 | EXPECT_EQ(false, CompareDomains("file:///C:/file.html", |
| 261 | "file:///C:/file.html")); // no host |
| 262 | } |
| 263 | |
| 264 | TEST_F(RegistryControlledDomainTest, TestDefaultData) { |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 265 | TestRegistryControlledDomainService::UseDefaultInstance(); |
| 266 | |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 267 | // Note that no data is set: we're using the default rules. |
[email protected] | d862fd9 | 2008-08-21 18:15:35 | [diff] [blame] | 268 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://google.com", false)); |
| 269 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://stanford.edu", false)); |
| 270 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ustreas.gov", false)); |
| 271 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://icann.net", false)); |
| 272 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://ferretcentral.org", false)); |
| 273 | EXPECT_EQ(0U, GetRegistryLengthFromURL("http://nowhere.foo", false)); |
| 274 | EXPECT_EQ(3U, GetRegistryLengthFromURL("http://nowhere.foo", true)); |
initial.commit | 586acc5fe | 2008-07-26 22:42:52 | [diff] [blame] | 275 | } |
license.bot | bf09a50 | 2008-08-24 00:55:55 | [diff] [blame] | 276 | |
[email protected] | 11b901ee | 2008-09-10 00:16:28 | [diff] [blame] | 277 | } // namespace |