| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/navigation_entry.h" | 5 #include "chrome/browser/navigation_entry.h" |
| 6 #include "chrome/browser/render_view_host.h" | 6 #include "chrome/browser/render_view_host.h" |
| 7 #include "chrome/browser/web_contents.h" | 7 #include "chrome/browser/web_contents.h" |
| 8 #include "chrome/common/render_messages.h" | 8 #include "chrome/common/render_messages.h" |
| 9 #include "chrome/test/testing_profile.h" | 9 #include "chrome/test/testing_profile.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 EXPECT_TRUE(instance.get()->site().is_empty()); | 195 EXPECT_TRUE(instance.get()->site().is_empty()); |
| 196 | 196 |
| 197 instance.get()->SetSite(GURL("http://www.google.com/index.html")); | 197 instance.get()->SetSite(GURL("http://www.google.com/index.html")); |
| 198 EXPECT_EQ(GURL("http://google.com"), instance.get()->site()); | 198 EXPECT_EQ(GURL("http://google.com"), instance.get()->site()); |
| 199 | 199 |
| 200 EXPECT_TRUE(instance->has_site()); | 200 EXPECT_TRUE(instance->has_site()); |
| 201 } | 201 } |
| 202 | 202 |
| 203 // Test to ensure GetSiteForURL properly returns sites for URLs. | 203 // Test to ensure GetSiteForURL properly returns sites for URLs. |
| 204 TEST_F(SiteInstanceTest, GetSiteForURL) { | 204 TEST_F(SiteInstanceTest, GetSiteForURL) { |
| 205 // Pages are irrelevant. |
| 205 GURL test_url = GURL("http://www.google.com/index.html"); | 206 GURL test_url = GURL("http://www.google.com/index.html"); |
| 206 EXPECT_EQ(GURL("http://google.com"), SiteInstance::GetSiteForURL(test_url)); | 207 EXPECT_EQ(GURL("http://google.com"), SiteInstance::GetSiteForURL(test_url)); |
| 207 | 208 |
| 209 // Ports are irrlevant. |
| 208 test_url = GURL("https://www.google.com:8080"); | 210 test_url = GURL("https://www.google.com:8080"); |
| 209 EXPECT_EQ(GURL("https://google.com:8080"), | 211 EXPECT_EQ(GURL("https://google.com"), SiteInstance::GetSiteForURL(test_url)); |
| 210 SiteInstance::GetSiteForURL(test_url)); | |
| 211 | 212 |
| 213 // Javascript URLs have no site. |
| 212 test_url = GURL("javascript:foo();"); | 214 test_url = GURL("javascript:foo();"); |
| 213 EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); | 215 EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); |
| 214 | 216 |
| 215 test_url = GURL("http://foo/a.html"); | 217 test_url = GURL("http://foo/a.html"); |
| 216 EXPECT_EQ(GURL("http://foo"), SiteInstance::GetSiteForURL(test_url)); | 218 EXPECT_EQ(GURL("http://foo"), SiteInstance::GetSiteForURL(test_url)); |
| 217 | 219 |
| 218 test_url = GURL("file:///C:/Downloads/"); | 220 test_url = GURL("file:///C:/Downloads/"); |
| 219 EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); | 221 EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); |
| 220 | 222 |
| 221 // TODO(creis): Do we want to special case file URLs to ensure they have | 223 // TODO(creis): Do we want to special case file URLs to ensure they have |
| 222 // either no site or a special "file://" site? We currently return | 224 // either no site or a special "file://" site? We currently return |
| 223 // "file://home/" as the site, which seems broken. | 225 // "file://home/" as the site, which seems broken. |
| 224 // test_url = GURL("file://home/"); | 226 // test_url = GURL("file://home/"); |
| 225 // EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); | 227 // EXPECT_EQ(GURL::EmptyGURL(), SiteInstance::GetSiteForURL(test_url)); |
| 226 } | 228 } |
| 227 | 229 |
| 228 // Test of distinguishing URLs from different sites. Most of this logic is | 230 // Test of distinguishing URLs from different sites. Most of this logic is |
| 229 // tested in RegistryControlledDomainTest. This test focuses on URLs with | 231 // tested in RegistryControlledDomainTest. This test focuses on URLs with |
| 230 // different schemes or ports. | 232 // different schemes or ports. |
| 231 TEST_F(SiteInstanceTest, IsSameWebSite) { | 233 TEST_F(SiteInstanceTest, IsSameWebSite) { |
| 232 GURL url_foo = GURL("http://foo/a.html"); | 234 GURL url_foo = GURL("http://foo/a.html"); |
| 233 GURL url_foo2 = GURL("http://foo/b.html"); | 235 GURL url_foo2 = GURL("http://foo/b.html"); |
| 234 GURL url_foo_https = GURL("https://foo/a.html"); | 236 GURL url_foo_https = GURL("https://foo/a.html"); |
| 235 GURL url_foo_port = GURL("http://foo:8080/a.html"); | 237 GURL url_foo_port = GURL("http://foo:8080/a.html"); |
| 236 GURL url_javascript = GURL("javascript:alert(1);"); | 238 GURL url_javascript = GURL("javascript:alert(1);"); |
| 237 GURL url_crash = GURL("about:crash"); | 239 GURL url_crash = GURL("about:crash"); |
| 238 GURL url_hang = GURL("about:hang"); | 240 GURL url_hang = GURL("about:hang"); |
| 239 GURL url_shorthang = GURL("about:shorthang"); | 241 GURL url_shorthang = GURL("about:shorthang"); |
| 240 | 242 |
| 243 // Same scheme and port -> same site. |
| 241 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_foo, url_foo2)); | 244 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_foo, url_foo2)); |
| 245 |
| 246 // Different scheme -> different site. |
| 242 EXPECT_FALSE(SiteInstance::IsSameWebSite(url_foo, url_foo_https)); | 247 EXPECT_FALSE(SiteInstance::IsSameWebSite(url_foo, url_foo_https)); |
| 243 EXPECT_FALSE(SiteInstance::IsSameWebSite(url_foo, url_foo_port)); | 248 |
| 249 // Different port -> same site. |
| 250 // (Changes to document.domain make renderer ignore the port.) |
| 251 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_foo, url_foo_port)); |
| 244 | 252 |
| 245 // JavaScript links should be considered same site for anything. | 253 // JavaScript links should be considered same site for anything. |
| 246 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo)); | 254 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo)); |
| 247 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo_https)); | 255 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo_https)); |
| 248 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo_port)); | 256 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_javascript, url_foo_port)); |
| 249 | 257 |
| 250 // The crash/hang URLs should also be treated as same site. (Bug 1143809.) | 258 // The crash/hang URLs should also be treated as same site. (Bug 1143809.) |
| 251 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_crash, url_foo)); | 259 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_crash, url_foo)); |
| 252 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_hang, url_foo)); | 260 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_hang, url_foo)); |
| 253 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_shorthang, url_foo)); | 261 EXPECT_TRUE(SiteInstance::IsSameWebSite(url_shorthang, url_foo)); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 384 |
| 377 // Should be able to see that we don't have SiteInstances. | 385 // Should be able to see that we don't have SiteInstances. |
| 378 EXPECT_FALSE(browsing_instance->HasSiteInstance( | 386 EXPECT_FALSE(browsing_instance->HasSiteInstance( |
| 379 GURL("https://www.google.com"))); // not visited before | 387 GURL("https://www.google.com"))); // not visited before |
| 380 EXPECT_FALSE(browsing_instance3->HasSiteInstance( | 388 EXPECT_FALSE(browsing_instance3->HasSiteInstance( |
| 381 GURL("http://www.yahoo.com"))); // different BI, different profile | 389 GURL("http://www.yahoo.com"))); // different BI, different profile |
| 382 | 390 |
| 383 // browsing_instances will be deleted when their SiteInstances are deleted | 391 // browsing_instances will be deleted when their SiteInstances are deleted |
| 384 } | 392 } |
| 385 | 393 |
| OLD | NEW |