Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4500)

Unified Diff: chrome/browser/browser_browsertest.cc

Issue 1026005: Makes pinned tab restore on startup if you haven't enabled session (Closed)
Patch Set: check Created 10 years, 9 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
« no previous file with comments | « chrome/browser/browser.cc ('k') | chrome/browser/browser_init.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_browsertest.cc
diff --git a/chrome/browser/browser_browsertest.cc b/chrome/browser/browser_browsertest.cc
index f789b7de7cacca4b6824a61c4bbe99b51dee83ac..b18095fa33fcad5932fa2b4c18c30fd3efd98599 100644
--- a/chrome/browser/browser_browsertest.cc
+++ b/chrome/browser/browser_browsertest.cc
@@ -9,6 +9,8 @@
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/app_modal_dialog.h"
#include "chrome/browser/browser.h"
+#include "chrome/browser/browser_init.h"
+#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/extensions/extension_browsertest.h"
@@ -17,6 +19,7 @@
#include "chrome/browser/profile.h"
#include "chrome/browser/renderer_host/render_process_host.h"
#include "chrome/browser/renderer_host/render_view_host.h"
+#include "chrome/browser/tabs/pinned_tab_codec.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension.h"
@@ -117,7 +120,6 @@ class BrowserTest : public ExtensionBrowserTest {
EXPECT_TRUE(model->GetTabContentsAt(0) != app_contents);
}
-
protected:
virtual void SetUpCommandLine(CommandLine* command_line) {
ExtensionBrowserTest::SetUpCommandLine(command_line);
@@ -457,3 +459,67 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, PageLanguageDetection) {
EXPECT_EQ("fr", lang);
EXPECT_EQ("fr", current_tab->language_state().original_language());
}
+
+// Makes sure pinned tabs are restored correctly on start.
+IN_PROC_BROWSER_TEST_F(BrowserTest, RestorePinnedTabs) {
+ HTTPTestServer* server = StartHTTPServer();
+ ASSERT_TRUE(server);
+
+ // Add an pinned app tab.
+ host_resolver()->AddRule("www.example.com", "127.0.0.1");
+ GURL url(server->TestServerPage("empty.html"));
+ TabStripModel* model = browser()->tabstrip_model();
+ ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app/")));
+ Extension* app_extension = GetExtension();
+ ui_test_utils::NavigateToURL(browser(), url);
+ TabContents* app_contents = new TabContents(browser()->profile(), NULL,
+ MSG_ROUTING_NONE, NULL);
+ app_contents->SetAppExtension(app_extension);
+ model->AddTabContents(app_contents, 0, false, 0, false);
+ model->SetTabPinned(0, true);
+ ui_test_utils::NavigateToURL(browser(), url);
+
+ // Add a non pinned tab.
+ browser()->NewTab();
+
+ // Add a pinned non-app tab.
+ browser()->NewTab();
+ ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
+ model->SetTabPinned(2, true);
+
+ // Write out the pinned tabs.
+ PinnedTabCodec::WritePinnedTabs(browser()->profile());
+
+ // Simulate launching again.
+ CommandLine dummy(CommandLine::ARGUMENTS_ONLY);
+ BrowserInit::LaunchWithProfile launch(std::wstring(), dummy);
+ launch.profile_ = browser()->profile();
+ launch.OpenStartupURLs(std::vector<GURL>());
+
+ // The launch should have created a new browser.
+ ASSERT_EQ(2u, BrowserList::GetBrowserCount(browser()->profile()));
+
+ // Find the new browser.
+ Browser* new_browser = NULL;
+ for (BrowserList::const_iterator i = BrowserList::begin();
+ i != BrowserList::end() && !new_browser; ++i) {
+ if (*i != browser())
+ new_browser = *i;
+ }
+ ASSERT_TRUE(new_browser);
+ ASSERT_TRUE(new_browser != browser());
+
+ // We should get back an additional tab for the app.
+ ASSERT_EQ(2, new_browser->tab_count());
+
+ // Make sure the state matches.
+ TabStripModel* new_model = new_browser->tabstrip_model();
+ EXPECT_TRUE(new_model->IsAppTab(0));
+ EXPECT_FALSE(new_model->IsAppTab(1));
+
+ EXPECT_TRUE(new_model->IsTabPinned(0));
+ EXPECT_TRUE(new_model->IsTabPinned(1));
+
+ EXPECT_TRUE(new_model->GetTabContentsAt(0)->app_extension() ==
+ app_extension);
+}
« no previous file with comments | « chrome/browser/browser.cc ('k') | chrome/browser/browser_init.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698