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

Unified Diff: chrome/browser/extensions/isolated_app_browsertest.cc

Issue 10850010: Make session restore understand that tabs have multiple SessionStorageNamespaces. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Unittest using jam's new PRE_ method 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/extensions/isolated_app_browsertest.cc
diff --git a/chrome/browser/extensions/isolated_app_browsertest.cc b/chrome/browser/extensions/isolated_app_browsertest.cc
index 1b4f3eb66949c4c5a235918a01465a7e4f5afb30..21aa10654e836ab521052b186ec6b96a9b2b906b 100644
--- a/chrome/browser/extensions/isolated_app_browsertest.cc
+++ b/chrome/browser/extensions/isolated_app_browsertest.cc
@@ -299,7 +299,7 @@ IN_PROC_BROWSER_TEST_F(IsolatedAppTest, IsolatedAppProcessModel) {
chrome::GetWebContentsAt(browser(), 1)->GetRenderProcessHost()->GetID());
}
-IN_PROC_BROWSER_TEST_F(IsolatedAppTest, SessionStorage) {
+IN_PROC_BROWSER_TEST_F(IsolatedAppTest, PRE_SessionStorage) {
host_resolver()->AddRule("*", "127.0.0.1");
ASSERT_TRUE(test_server()->Start());
@@ -371,3 +371,51 @@ IN_PROC_BROWSER_TEST_F(IsolatedAppTest, SessionStorage) {
L"", kRetrieveSessionStorage.c_str(), &result));
EXPECT_EQ("ss_normal", result);
}
+
+// Okay, let's whack the brwoser, restore it, and see if we keep our
+// sessionStorage.
+IN_PROC_BROWSER_TEST_F(IsolatedAppTest, SessionStorage) {
+ host_resolver()->AddRule("*", "127.0.0.1");
+ ASSERT_TRUE(test_server()->Start());
+
+ ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
+ ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2")));
+
+ // The app under test acts on URLs whose host is "localhost",
+ // so the URLs we navigate to must have host "localhost".
+ GURL base_url = test_server()->GetURL(
+ "files/extensions/isolated_apps/");
+ GURL::Replacements replace_host;
+ std::string host_str("localhost"); // Must stay in scope with replace_host.
+ replace_host.SetHostStr(host_str);
+ base_url = base_url.ReplaceComponents(replace_host);
+
+ const std::wstring& kRetrieveSessionStorage =
+ WrapForJavascriptAndExtract(
+ L"window.sessionStorage.getItem('testdata')");
+ std::string result;
+ Browser* new_browser = ui_test_utils::QuitBrowserAndRestore(browser(), 1);
+ ui_test_utils::NavigateToURLWithDisposition(
+ new_browser, base_url.Resolve("app1/main.html"),
+ CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ ASSERT_TRUE(ExecuteJavaScriptAndExtractString(
+ chrome::GetWebContentsAt(new_browser, 0)->GetRenderViewHost(),
+ L"", kRetrieveSessionStorage.c_str(), &result));
+ EXPECT_EQ("ss_app1", result);
+
+ ui_test_utils::NavigateToURLWithDisposition(
+ new_browser, base_url.Resolve("app2/main.html"),
+ CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ ASSERT_TRUE(ExecuteJavaScriptAndExtractString(
+ chrome::GetWebContentsAt(new_browser, 0)->GetRenderViewHost(),
+ L"", kRetrieveSessionStorage.c_str(), &result));
+ EXPECT_EQ("ss_app2", result);
+
+ ui_test_utils::NavigateToURLWithDisposition(
+ new_browser, base_url.Resolve("non_app/main.html"),
+ CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ ASSERT_TRUE(ExecuteJavaScriptAndExtractString(
+ chrome::GetWebContentsAt(new_browser, 0)->GetRenderViewHost(),
+ L"", kRetrieveSessionStorage.c_str(), &result));
+ EXPECT_EQ("ss_normal", result);
+}
« no previous file with comments | « no previous file | chrome/browser/prefs/pref_service_browsertest.cc » ('j') | chrome/browser/prefs/pref_service_browsertest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698