Index: chrome/browser/ui/browser_navigator_browsertest.cc |
diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc |
index dbd6c397782feab826880078fd452e49eb72df91..e48c9169b94ab5aff4405ecde07f4518adf38b9f 100644 |
--- a/chrome/browser/ui/browser_navigator_browsertest.cc |
+++ b/chrome/browser/ui/browser_navigator_browsertest.cc |
@@ -164,6 +164,55 @@ IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_SingletonTabExisting) { |
} |
IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, |
+ Disposition_SingletonTabRespectingRef) { |
+ GURL singleton_ref_url1("http://maps.google.com/#a"); |
+ GURL singleton_ref_url2("http://maps.google.com/#b"); |
+ GURL singleton_ref_url3("http://maps.google.com/"); |
+ |
+ browser()->AddSelectedTabWithURL(singleton_ref_url1, PageTransition::LINK); |
+ |
+ // We should have one browser with 2 tabs, 2nd selected. |
+ EXPECT_EQ(1u, BrowserList::size()); |
+ EXPECT_EQ(2, browser()->tab_count()); |
+ EXPECT_EQ(1, browser()->active_index()); |
+ |
+ // Navigate to singleton_url2. |
+ browser::NavigateParams p(MakeNavigateParams()); |
+ p.disposition = SINGLETON_TAB; |
+ p.url = singleton_ref_url2; |
+ browser::Navigate(&p); |
+ |
+ // We should now have 2 tabs, the 2nd one selected. |
+ EXPECT_EQ(browser(), p.browser); |
+ EXPECT_EQ(2, browser()->tab_count()); |
+ EXPECT_EQ(1, browser()->active_index()); |
+ |
+ // Navigate to singleton_url2, but with respect ref set. |
+ p = MakeNavigateParams(); |
+ p.disposition = SINGLETON_TAB; |
+ p.url = singleton_ref_url2; |
+ p.ref_behavior = browser::NavigateParams::RESPECT_REF; |
+ browser::Navigate(&p); |
+ |
+ // We should now have 3 tabs, the 3th one selected. |
+ EXPECT_EQ(browser(), p.browser); |
+ EXPECT_EQ(3, browser()->tab_count()); |
+ EXPECT_EQ(2, browser()->active_index()); |
+ |
+ // Navigate to singleton_url3. |
+ p = MakeNavigateParams(); |
+ p.disposition = SINGLETON_TAB; |
+ p.url = singleton_ref_url3; |
+ p.ref_behavior = browser::NavigateParams::RESPECT_REF; |
+ browser::Navigate(&p); |
+ |
+ // We should now have 4 tabs, the 4th one selected. |
+ EXPECT_EQ(browser(), p.browser); |
+ EXPECT_EQ(4, browser()->tab_count()); |
+ EXPECT_EQ(3, browser()->active_index()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, |
Disposition_SingletonTabNoneExisting) { |
GURL singleton_url1("http://maps.google.com/"); |