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

Unified Diff: chrome/browser/sessions/session_restore_browsertest.cc

Issue 10827168: Fix user agent override restore pipeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebasing Created 8 years, 4 months 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/sessions/session_restore_browsertest.cc
diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc
index 9155f8237a6b875cdf2678f80e3ff7ed71aa1c4a..f17d9dbec015dd838d75de2e0da20652ae4110a7 100644
--- a/chrome/browser/sessions/session_restore_browsertest.cc
+++ b/chrome/browser/sessions/session_restore_browsertest.cc
@@ -392,6 +392,7 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignTab) {
tab.pinned = false;
tab.navigations.push_back(nav1);
tab.navigations.push_back(nav2);
+ tab.user_agent_override = "user_agent_override";
ASSERT_EQ(1, browser()->tab_count());
@@ -405,8 +406,9 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignTab) {
observer.Wait();
}
ASSERT_EQ(1, browser()->tab_count());
- VerifyNavigationEntries(
- chrome::GetWebContentsAt(browser(), 0)->GetController(), url1, url2);
+ content::WebContents* web_contents = chrome::GetWebContentsAt(browser(), 0);
+ VerifyNavigationEntries(web_contents->GetController(), url1, url2);
+ ASSERT_EQ(web_contents->GetUserAgentOverride(), tab.user_agent_override);
sky 2012/08/14 00:05:46 flip the arguments here, 426 and 437.
gone 2012/08/14 01:03:22 Done.
// Restore in a new tab.
{
@@ -419,8 +421,9 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignTab) {
}
ASSERT_EQ(2, browser()->tab_count());
ASSERT_EQ(0, browser()->active_index());
- VerifyNavigationEntries(
- chrome::GetWebContentsAt(browser(), 1)->GetController(), url1, url2);
+ web_contents = chrome::GetWebContentsAt(browser(), 1);
+ VerifyNavigationEntries(web_contents->GetController(), url1, url2);
+ ASSERT_EQ(web_contents->GetUserAgentOverride(), tab.user_agent_override);
// Restore in a new window.
ui_test_utils::BrowserAddedObserver browser_observer;
@@ -429,8 +432,9 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignTab) {
Browser* new_browser = browser_observer.WaitForSingleNewBrowser();
ASSERT_EQ(1, new_browser->tab_count());
- VerifyNavigationEntries(
- chrome::GetWebContentsAt(new_browser, 0)->GetController(), url1, url2);
+ web_contents = chrome::GetWebContentsAt(new_browser, 0);
+ VerifyNavigationEntries(web_contents->GetController(), url1, url2);
+ ASSERT_EQ(web_contents->GetUserAgentOverride(), tab.user_agent_override);
}
IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignSession) {
@@ -442,6 +446,8 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignSession) {
std::string(), content::PAGE_TRANSITION_TYPED);
TabNavigation nav2(0, url2, content::Referrer(), ASCIIToUTF16("two"),
std::string(), content::PAGE_TRANSITION_TYPED);
+ nav1.set_is_overriding_user_agent(false);
+ nav2.set_is_overriding_user_agent(true);
// Set up the restore data -- one window with two tabs.
std::vector<const SessionWindow*> session;
@@ -451,6 +457,7 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignSession) {
tab1.current_navigation_index = 0;
tab1.pinned = true;
tab1.navigations.push_back(nav1);
+ tab1.user_agent_override = "user_agent_override";
window.tabs.push_back(&tab1);
SessionTab tab2;
@@ -458,6 +465,7 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignSession) {
tab2.current_navigation_index = 0;
tab2.pinned = false;
tab2.navigations.push_back(nav2);
+ tab2.user_agent_override = "user_agent_override_2";
window.tabs.push_back(&tab2);
session.push_back(static_cast<const SessionWindow*>(&window));
@@ -469,8 +477,25 @@ IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoreForeignSession) {
ASSERT_EQ(2u, BrowserList::size());
ASSERT_EQ(2, new_browser->tab_count());
- ASSERT_EQ(url1, chrome::GetWebContentsAt(new_browser, 0)->GetURL());
- ASSERT_EQ(url2, chrome::GetWebContentsAt(new_browser, 1)->GetURL());
+ content::WebContents* web_contents_1 =
+ chrome::GetWebContentsAt(new_browser, 0);
+ content::WebContents* web_contents_2 =
+ chrome::GetWebContentsAt(new_browser, 1);
+ ASSERT_EQ(url1, web_contents_1->GetURL());
+ ASSERT_EQ(url2, web_contents_2->GetURL());
+
+ // Check user agent override state.
+ ASSERT_EQ(tab1.user_agent_override, web_contents_1->GetUserAgentOverride());
+ ASSERT_EQ(tab2.user_agent_override, web_contents_2->GetUserAgentOverride());
+
+ content::NavigationEntry* entry =
+ web_contents_1->GetController().GetActiveEntry();
+ ASSERT_TRUE(entry);
+ ASSERT_EQ(nav1.is_overriding_user_agent(), entry->GetIsOverridingUserAgent());
+
+ entry = web_contents_2->GetController().GetActiveEntry();
+ ASSERT_TRUE(entry);
+ ASSERT_EQ(nav2.is_overriding_user_agent(), entry->GetIsOverridingUserAgent());
// The SessionWindow destructor deletes the tabs, so we have to clear them
// here to avoid a crash.

Powered by Google App Engine
This is Rietveld 408576698