diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-27 23:01:50 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-27 23:01:50 +0000 |
commit | c058805b99cce98cbc352c499f3e69fd355a84c2 (patch) | |
tree | 93fb4ffdf5daf4d8ae0e3291919a074a8b9e58a7 /chrome/browser/navigation_controller_unittest.cc | |
parent | f07cc2ebf950cb22c5c386f95a1be0292de4db3b (diff) | |
download | chromium_src-c058805b99cce98cbc352c499f3e69fd355a84c2.zip chromium_src-c058805b99cce98cbc352c499f3e69fd355a84c2.tar.gz chromium_src-c058805b99cce98cbc352c499f3e69fd355a84c2.tar.bz2 |
Plumb the referrer throughout the OpenURL APIs.
http://code.google.com/p/chromium/issues/detail?id=3224
Caveats:
* Did not update TabNavigation yet. Hence session restore will continue to load the tabs with empty referrer.
* Did not plumb referrer into incognito url open. (Not sure what the right thing to do is here with respect to privacy vs compatibility.)
* Did not plumb referrer throughout the automation controller. No functional impact here, but it makes the code inconsistent with the non-automation version.
Review URL: http://codereview.chromium.org/8186
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4036 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/navigation_controller_unittest.cc')
-rw-r--r-- | chrome/browser/navigation_controller_unittest.cc | 80 |
1 files changed, 43 insertions, 37 deletions
diff --git a/chrome/browser/navigation_controller_unittest.cc b/chrome/browser/navigation_controller_unittest.cc index 5be123e..1c8002280 100644 --- a/chrome/browser/navigation_controller_unittest.cc +++ b/chrome/browser/navigation_controller_unittest.cc @@ -75,6 +75,7 @@ class NavigationControllerTest : public testing::Test, // TabContentsDelegate methods (only care about ReplaceContents): virtual void OpenURLFromTab(TabContents*, const GURL&, + const GURL&, WindowOpenDisposition, PageTransition::Type) {} virtual void NavigationStateChanged(const TabContents*, @@ -257,7 +258,7 @@ TEST_F(NavigationControllerTest, LoadURL) { const GURL url1(scheme1() + ":foo1"); const GURL url2(scheme1() + ":foo2"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); // Creating a pending notification should not have issued any of the // notifications we're listening for. EXPECT_EQ(0, notifications.size()); @@ -289,7 +290,7 @@ TEST_F(NavigationControllerTest, LoadURL) { EXPECT_EQ(contents->GetMaxPageID(), 0); // Load another... - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); // The load should now be pending. EXPECT_EQ(contents->controller()->GetEntryCount(), 1); @@ -326,12 +327,12 @@ TEST_F(NavigationControllerTest, LoadURL_SamePage) { const GURL url1(scheme1() + ":foo1"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -354,12 +355,12 @@ TEST_F(NavigationControllerTest, LoadURL_Discarded) { const GURL url1(scheme1() + ":foo1"); const GURL url2(scheme1() + ":foo2"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); contents->controller()->DiscardNonCommittedEntries(); EXPECT_EQ(0, notifications.size()); @@ -381,7 +382,8 @@ TEST_F(NavigationControllerTest, LoadURL_NoPending) { // First make an existing committed entry. const GURL kExistingURL1(scheme1() + ":eh"); - contents->controller()->LoadURL(kExistingURL1, PageTransition::TYPED); + contents->controller()->LoadURL(kExistingURL1, GURL(), + PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, kExistingURL1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -407,13 +409,15 @@ TEST_F(NavigationControllerTest, LoadURL_NewPending) { // First make an existing committed entry. const GURL kExistingURL1(scheme1() + ":eh"); - contents->controller()->LoadURL(kExistingURL1, PageTransition::TYPED); + contents->controller()->LoadURL(kExistingURL1, GURL(), + PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, kExistingURL1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); // Make a pending entry to somewhere new. const GURL kExistingURL2(scheme1() + ":bee"); - contents->controller()->LoadURL(kExistingURL2, PageTransition::TYPED); + contents->controller()->LoadURL(kExistingURL2, GURL(), + PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); // Before that commits, do a new navigation. @@ -437,12 +441,14 @@ TEST_F(NavigationControllerTest, LoadURL_ExistingPending) { // First make some history. const GURL kExistingURL1(scheme1() + ":eh"); - contents->controller()->LoadURL(kExistingURL1, PageTransition::TYPED); + contents->controller()->LoadURL(kExistingURL1, GURL(), + PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, kExistingURL1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); const GURL kExistingURL2(scheme1() + ":bee"); - contents->controller()->LoadURL(kExistingURL2, PageTransition::TYPED); + contents->controller()->LoadURL(kExistingURL2, GURL(), + PageTransition::TYPED); contents->CompleteNavigationAsRenderer(1, kExistingURL2); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -472,7 +478,7 @@ TEST_F(NavigationControllerTest, Reload) { const GURL url1(scheme1() + ":foo1"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -510,7 +516,7 @@ TEST_F(NavigationControllerTest, Reload_GeneratesNewPage) { const GURL url1(scheme1() + ":foo1"); const GURL url2(scheme1() + ":foo2"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -577,11 +583,11 @@ TEST_F(NavigationControllerTest, Back_GeneratesNewPage) { const GURL url2(scheme1() + ":foo2"); const GURL url3(scheme1() + ":foo3"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url1); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(1, url2); EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); @@ -629,7 +635,7 @@ TEST_F(NavigationControllerTest, Back_NewPending) { EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); // Now start a new pending navigation and go back before it commits. - contents->controller()->LoadURL(kUrl3, PageTransition::TYPED); + contents->controller()->LoadURL(kUrl3, GURL(), PageTransition::TYPED); EXPECT_EQ(-1, contents->controller()->GetPendingEntryIndex()); EXPECT_EQ(kUrl3, contents->controller()->GetPendingEntry()->url()); contents->controller()->GoBack(); @@ -1015,7 +1021,7 @@ TEST_F(NavigationControllerTest, SwitchTypes) { EXPECT_TRUE(notifications.Check1AndReset(NOTIFY_NAV_ENTRY_COMMITTED)); TestTabContents* initial_contents = contents; - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); // The tab contents should have been replaced ASSERT_TRUE(initial_contents != contents); @@ -1065,7 +1071,7 @@ TEST_F(NavigationControllerTest, SwitchTypes_Discard) { TestTabContents* initial_contents = contents; - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); EXPECT_EQ(0, notifications.size()); // The tab contents should have been replaced @@ -1099,11 +1105,11 @@ TEST_F(NavigationControllerTest, SwitchTypesCleanup) { // Note that we need the LoadURL calls so that pending entries and the // different tab contents types are created. "Renderer" navigations won't // actually cross tab contents boundaries without these. - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url1); - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(1, url2); - contents->controller()->LoadURL(url3, PageTransition::TYPED); + contents->controller()->LoadURL(url3, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(2, url3); // Navigate back to the start. @@ -1172,7 +1178,7 @@ TEST_F(NavigationControllerTest, EnforceMaxNavigationCount) { for (url_index = 0; url_index < kMaxEntryCount; url_index++) { SNPrintF(buffer, 128, (scheme1() + "://www.a.com/%d").c_str(), url_index); GURL url(buffer); - contents->controller()->LoadURL(url, PageTransition::TYPED); + contents->controller()->LoadURL(url, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(url_index, url); } @@ -1184,7 +1190,7 @@ TEST_F(NavigationControllerTest, EnforceMaxNavigationCount) { // Navigate some more. SNPrintF(buffer, 128, (scheme1() + "://www.a.com/%d").c_str(), url_index); GURL url(buffer); - contents->controller()->LoadURL(url, PageTransition::TYPED); + contents->controller()->LoadURL(url, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(url_index, url); url_index++; @@ -1202,7 +1208,7 @@ TEST_F(NavigationControllerTest, EnforceMaxNavigationCount) { for (int i = 0; i < 3; i++) { SNPrintF(buffer, 128, (scheme1() + "://www.a.com/%d").c_str(), url_index); url = GURL(buffer); - contents->controller()->LoadURL(url, PageTransition::TYPED); + contents->controller()->LoadURL(url, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(url_index, url); url_index++; } @@ -1266,12 +1272,12 @@ TEST_F(NavigationControllerTest, RestoreNavigate) { TEST_F(NavigationControllerTest, Interstitial) { // First navigate somewhere normal. const GURL url1(scheme1() + ":foo"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url1); // Now navigate somewhere with an interstitial. const GURL url2(scheme1() + ":bar"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->controller()->GetPendingEntry()->set_page_type( NavigationEntry::INTERSTITIAL_PAGE); @@ -1294,15 +1300,15 @@ TEST_F(NavigationControllerTest, RemoveEntry) { const GURL pending_url(scheme1() + ":pending"); const GURL default_url(scheme1() + ":default"); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url1); - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(1, url2); - contents->controller()->LoadURL(url3, PageTransition::TYPED); + contents->controller()->LoadURL(url3, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(2, url3); - contents->controller()->LoadURL(url4, PageTransition::TYPED); + contents->controller()->LoadURL(url4, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(3, url4); - contents->controller()->LoadURL(url5, PageTransition::TYPED); + contents->controller()->LoadURL(url5, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(4, url5); // Remove the last entry. @@ -1314,7 +1320,7 @@ TEST_F(NavigationControllerTest, RemoveEntry) { EXPECT_TRUE(pending_entry && pending_entry->url() == url4); // Add a pending entry. - contents->controller()->LoadURL(pending_url, PageTransition::TYPED); + contents->controller()->LoadURL(pending_url, GURL(), PageTransition::TYPED); // Now remove the last entry. contents->controller()->RemoveEntryAtIndex( contents->controller()->GetEntryCount() - 1, default_url); @@ -1356,9 +1362,9 @@ TEST_F(NavigationControllerTest, TransientEntry) { const GURL url4(scheme1() + ":foo4"); const GURL transient_url(scheme1() + ":transient"); - contents->controller()->LoadURL(url0, PageTransition::TYPED); + contents->controller()->LoadURL(url0, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(0, url0); - contents->controller()->LoadURL(url1, PageTransition::TYPED); + contents->controller()->LoadURL(url1, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(1, url1); notifications.Reset(); @@ -1383,7 +1389,7 @@ TEST_F(NavigationControllerTest, TransientEntry) { EXPECT_EQ(contents->GetMaxPageID(), 1); // Navigate. - contents->controller()->LoadURL(url2, PageTransition::TYPED); + contents->controller()->LoadURL(url2, GURL(), PageTransition::TYPED); contents->CompleteNavigationAsRenderer(2, url2); // We should have navigated, transient entry should be gone. @@ -1401,7 +1407,7 @@ TEST_F(NavigationControllerTest, TransientEntry) { EXPECT_EQ(contents->controller()->GetEntryCount(), 4); // Initiate a navigation, add a transient then commit navigation. - contents->controller()->LoadURL(url4, PageTransition::TYPED); + contents->controller()->LoadURL(url4, GURL(), PageTransition::TYPED); transient_entry = new NavigationEntry(TAB_CONTENTS_WEB); transient_entry->set_url(transient_url); contents->controller()->AddTransientEntry(transient_entry); @@ -1494,7 +1500,7 @@ TEST_F(NavigationControllerTest, IsInPageNavigation) { // A basic test case. Navigates to a single url, and make sure the history // db matches. TEST_F(NavigationControllerHistoryTest, Basic) { - contents->controller()->LoadURL(url0, PageTransition::LINK); + contents->controller()->LoadURL(url0, GURL(), PageTransition::LINK); contents->CompleteNavigationAsRenderer(0, url0); GetLastSession(); |