Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1469)

Unified Diff: chrome/browser/ui/browser_navigator_browsertest.cc

Issue 8588013: Fix crash in SyncSetupWizard::IsVisible() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add browser test Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 d85f2a6bdc4d5403980470f2c8e05828b216c6b5..ff87b012b2e62e9cce45193e67efcd0d48575979 100644
--- a/chrome/browser/ui/browser_navigator_browsertest.cc
+++ b/chrome/browser/ui/browser_navigator_browsertest.cc
@@ -102,6 +102,53 @@ void BrowserNavigatorTest::RunSuppressTest(WindowOpenDisposition disposition) {
EXPECT_EQ(old_url, browser()->GetSelectedTabContents()->GetURL());
}
+void BrowserNavigatorTest::RunUseNonIncognitoWindowTest(const GURL& url) {
+ Browser* incognito_browser = CreateIncognitoBrowser();
+
+ EXPECT_EQ(2u, BrowserList::size());
+ EXPECT_EQ(1, browser()->tab_count());
+ EXPECT_EQ(1, incognito_browser->tab_count());
+
+ // Navigate to the page.
+ browser::NavigateParams p(MakeNavigateParams(incognito_browser));
+ p.disposition = SINGLETON_TAB;
+ p.url = url;
+ p.window_action = browser::NavigateParams::SHOW_WINDOW;
+ browser::Navigate(&p);
+
+ // This page should be opened in browser() window.
+ EXPECT_NE(incognito_browser, p.browser);
+ EXPECT_EQ(browser(), p.browser);
+ EXPECT_EQ(2, browser()->tab_count());
+ EXPECT_EQ(url, browser()->GetSelectedTabContents()->GetURL());
+}
+
+void BrowserNavigatorTest::RunDoNothingIfIncognitoIsForcedTest(
+ const GURL& url) {
+ Browser* browser = CreateIncognitoBrowser();
+
+ // Set kIncognitoModeAvailability to FORCED.
+ PrefService* prefs1 = browser->profile()->GetPrefs();
+ prefs1->SetInteger(prefs::kIncognitoModeAvailability,
+ IncognitoModePrefs::FORCED);
+ PrefService* prefs2 = browser->profile()->GetOriginalProfile()->GetPrefs();
+ prefs2->SetInteger(prefs::kIncognitoModeAvailability,
+ IncognitoModePrefs::FORCED);
+
+ // Navigate to the page.
+ browser::NavigateParams p(MakeNavigateParams(browser));
+ p.disposition = OFF_THE_RECORD;
+ p.url = url;
+ p.window_action = browser::NavigateParams::SHOW_WINDOW;
+ browser::Navigate(&p);
+
+ // The page should not be opened.
+ EXPECT_EQ(browser, p.browser);
+ EXPECT_EQ(1, browser->tab_count());
+ EXPECT_EQ(GURL(chrome::kAboutBlankURL),
+ browser->GetSelectedTabContents()->GetURL());
+}
+
void BrowserNavigatorTest::Observe(
int type,
const content::NotificationSource& source,
@@ -896,25 +943,7 @@ IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
// window.
IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
Disposition_Settings_UseNonIncognitoWindow) {
- Browser* incognito_browser = CreateIncognitoBrowser();
-
- EXPECT_EQ(2u, BrowserList::size());
- EXPECT_EQ(1, browser()->tab_count());
- EXPECT_EQ(1, incognito_browser->tab_count());
-
- // Navigate to the settings page.
- browser::NavigateParams p(MakeNavigateParams(incognito_browser));
- p.disposition = SINGLETON_TAB;
- p.url = GetSettingsURL();
- p.window_action = browser::NavigateParams::SHOW_WINDOW;
- browser::Navigate(&p);
-
- // The settings page should be opened in browser() window.
- EXPECT_NE(incognito_browser, p.browser);
- EXPECT_EQ(browser(), p.browser);
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(GetSettingsURL(),
- browser()->GetSelectedTabContents()->GetURL());
+ RunUseNonIncognitoWindowTest(GetSettingsURL());
binji 2011/11/17 21:02:09 Is there a better way to group all of these simila
}
// This test verifies that the settings page isn't opened in the incognito
@@ -943,53 +972,14 @@ IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
// page doesn't open at all.
IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
Disposition_Settings_DoNothingIfIncognitoIsForced) {
- Browser* browser = CreateIncognitoBrowser();
-
- // Set kIncognitoModeAvailability to FORCED.
- PrefService* prefs1 = browser->profile()->GetPrefs();
- prefs1->SetInteger(prefs::kIncognitoModeAvailability,
- IncognitoModePrefs::FORCED);
- PrefService* prefs2 = browser->profile()->GetOriginalProfile()->GetPrefs();
- prefs2->SetInteger(prefs::kIncognitoModeAvailability,
- IncognitoModePrefs::FORCED);
-
- // Navigate to the settings page.
- browser::NavigateParams p(MakeNavigateParams(browser));
- p.disposition = OFF_THE_RECORD;
- p.url = GURL(chrome::kChromeUISettingsURL);
- p.window_action = browser::NavigateParams::SHOW_WINDOW;
- browser::Navigate(&p);
-
- // The bookmarks page should be opened in browser() window.
- EXPECT_EQ(browser, p.browser);
- EXPECT_EQ(1, browser->tab_count());
- EXPECT_EQ(GURL(chrome::kAboutBlankURL),
- browser->GetSelectedTabContents()->GetURL());
+ RunDoNothingIfIncognitoIsForcedTest(GetSettingsURL());
}
// This test verifies that the bookmarks page isn't opened in the incognito
// window.
IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
Disposition_Bookmarks_UseNonIncognitoWindow) {
- Browser* incognito_browser = CreateIncognitoBrowser();
-
- EXPECT_EQ(2u, BrowserList::size());
- EXPECT_EQ(1, browser()->tab_count());
- EXPECT_EQ(1, incognito_browser->tab_count());
-
- // Navigate to the settings page.
- browser::NavigateParams p(MakeNavigateParams(incognito_browser));
- p.disposition = SINGLETON_TAB;
- p.url = GURL(chrome::kChromeUIBookmarksURL);
- p.window_action = browser::NavigateParams::SHOW_WINDOW;
- browser::Navigate(&p);
-
- // The bookmarks page should be opened in browser() window.
- EXPECT_NE(incognito_browser, p.browser);
- EXPECT_EQ(browser(), p.browser);
- EXPECT_EQ(2, browser()->tab_count());
- EXPECT_EQ(GURL(chrome::kChromeUIBookmarksURL),
- browser()->GetSelectedTabContents()->GetURL());
+ RunUseNonIncognitoWindowTest(GURL(chrome::kChromeUIBookmarksURL));
}
// Bookmark manager is expected to always open in normal mode regardless
@@ -998,28 +988,23 @@ IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
// manager doesn't open at all.
IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
Disposition_Bookmarks_DoNothingIfIncognitoIsForced) {
- Browser* browser = CreateIncognitoBrowser();
-
- // Set kIncognitoModeAvailability to FORCED.
- PrefService* prefs1 = browser->profile()->GetPrefs();
- prefs1->SetInteger(prefs::kIncognitoModeAvailability,
- IncognitoModePrefs::FORCED);
- PrefService* prefs2 = browser->profile()->GetOriginalProfile()->GetPrefs();
- prefs2->SetInteger(prefs::kIncognitoModeAvailability,
- IncognitoModePrefs::FORCED);
+ RunDoNothingIfIncognitoIsForcedTest(GURL(chrome::kChromeUIBookmarksURL));
+}
- // Navigate to the settings page.
- browser::NavigateParams p(MakeNavigateParams(browser));
- p.disposition = SINGLETON_TAB;
- p.url = GURL(chrome::kChromeUISettingsURL);
- p.window_action = browser::NavigateParams::SHOW_WINDOW;
- browser::Navigate(&p);
+// This test verifies that the sync promo page isn't opened in the incognito
+// window.
+IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
+ Disposition_SyncPromo_UseNonIncognitoWindow) {
+ RunUseNonIncognitoWindowTest(GURL(chrome::kChromeUISyncPromoURL));
+}
- // The bookmarks page should be opened in browser() window.
- EXPECT_EQ(browser, p.browser);
- EXPECT_EQ(1, browser->tab_count());
- EXPECT_EQ(GURL(chrome::kAboutBlankURL),
- browser->GetSelectedTabContents()->GetURL());
+// The Sync promo page is expected to always open in normal mode regardless of
+// whether the user is trying to open it in incognito mode or not. This test
+// verifies that if incognito mode is forced (by policy), the sync promo page
+// doesn't open at all.
+IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest,
+ Disposition_SyncPromo_DoNothingIfIncognitoIsForced) {
+ RunDoNothingIfIncognitoIsForcedTest(GURL(chrome::kChromeUISyncPromoURL));
}
// This test makes sure a crashed singleton tab reloads from a new navigation.

Powered by Google App Engine
This is Rietveld 408576698