summaryrefslogtreecommitdiffstats
path: root/chrome/browser/navigation_controller_unittest.cc
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-27 23:01:50 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-27 23:01:50 +0000
commitc058805b99cce98cbc352c499f3e69fd355a84c2 (patch)
tree93fb4ffdf5daf4d8ae0e3291919a074a8b9e58a7 /chrome/browser/navigation_controller_unittest.cc
parentf07cc2ebf950cb22c5c386f95a1be0292de4db3b (diff)
downloadchromium_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.cc80
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();