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

Side by Side Diff: chrome/browser/extensions/isolated_app_browsertest.cc

Issue 16268017: GTTF: convert some tests in chrome to use EmbeddedTestServer patch nr 1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/stringprintf.h" 5 #include "base/strings/stringprintf.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/browser/automation/automation_util.h" 7 #include "chrome/browser/automation/automation_util.h"
8 #include "chrome/browser/extensions/extension_apitest.h" 8 #include "chrome/browser/extensions/extension_apitest.h"
9 #include "chrome/browser/extensions/extension_host.h" 9 #include "chrome/browser/extensions/extension_host.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/browser_commands.h" 13 #include "chrome/browser/ui/browser_commands.h"
14 #include "chrome/browser/ui/tabs/tab_strip_model.h" 14 #include "chrome/browser/ui/tabs/tab_strip_model.h"
15 #include "chrome/common/chrome_switches.h" 15 #include "chrome/common/chrome_switches.h"
16 #include "chrome/common/url_constants.h" 16 #include "chrome/common/url_constants.h"
17 #include "chrome/test/base/ui_test_utils.h" 17 #include "chrome/test/base/ui_test_utils.h"
18 #include "content/public/browser/render_process_host.h" 18 #include "content/public/browser/render_process_host.h"
19 #include "content/public/browser/render_view_host.h" 19 #include "content/public/browser/render_view_host.h"
20 #include "content/public/browser/site_instance.h" 20 #include "content/public/browser/site_instance.h"
21 #include "content/public/browser/web_contents.h" 21 #include "content/public/browser/web_contents.h"
22 #include "content/public/test/browser_test_utils.h" 22 #include "content/public/test/browser_test_utils.h"
23 #include "net/dns/mock_host_resolver.h" 23 #include "net/dns/mock_host_resolver.h"
24 #include "net/test/embedded_test_server/embedded_test_server.h"
25 #include "net/test/embedded_test_server/http_response.h"
26 #include "net/test/embedded_test_server/http_request.h"
24 27
25 using content::ExecuteScript; 28 using content::ExecuteScript;
26 using content::ExecuteScriptAndExtractString; 29 using content::ExecuteScriptAndExtractString;
27 using content::NavigationController; 30 using content::NavigationController;
28 using content::WebContents; 31 using content::WebContents;
29 using content::RenderViewHost; 32 using content::RenderViewHost;
30 33
31 namespace { 34 namespace {
32 35
33 std::string WrapForJavascriptAndExtract(const char* javascript_expression) { 36 std::string WrapForJavascriptAndExtract(const char* javascript_expression) {
34 return std::string("window.domAutomationController.send(") + 37 return std::string("window.domAutomationController.send(") +
35 javascript_expression + ")"; 38 javascript_expression + ")";
36 } 39 }
37 40
41 scoped_ptr<net::test_server::HttpResponse> HandleExpectAndSetCookieRequest(
42 const net::test_server::EmbeddedTestServer* test_server,
43 const net::test_server::HttpRequest& request) {
44 if (!StartsWithASCII(request.relative_url, "/expect-and-set-cookie?", true))
45 return scoped_ptr<net::test_server::HttpResponse>(NULL);
46
47 scoped_ptr<net::test_server::BasicHttpResponse> http_response(
48 new net::test_server::BasicHttpResponse);
49 http_response->set_code(net::HTTP_OK);
50
51 std::string request_cookies;
52 std::map<std::string, std::string>::const_iterator it =
53 request.headers.find("Cookie");
54 if (it != request.headers.end())
55 request_cookies = it->second;
56
57 size_t query_string_pos = request.relative_url.find('?');
58 std::string query_string =
59 request.relative_url.substr(query_string_pos + 1);
60 url_parse::Component query(0, query_string.length()), key_pos, value_pos;
61 bool expectations_satisfied = true;
62 std::vector<std::string> cookies_to_set;
63 while (url_parse::ExtractQueryKeyValue(
64 query_string.c_str(), &query, &key_pos, &value_pos)) {
65 std::string escaped_key(query_string.substr(key_pos.begin, key_pos.len));
66 std::string escaped_value(
67 query_string.substr(value_pos.begin, value_pos.len));
68
69 std::string key =
70 net::UnescapeURLComponent(escaped_key,
71 net::UnescapeRule::NORMAL |
72 net::UnescapeRule::SPACES |
73 net::UnescapeRule::URL_SPECIAL_CHARS);
74
75 std::string value =
76 net::UnescapeURLComponent(escaped_value,
77 net::UnescapeRule::NORMAL |
78 net::UnescapeRule::SPACES |
79 net::UnescapeRule::URL_SPECIAL_CHARS);
80
81 if (key == "expect") {
82 if (request_cookies.find(value) == std::string::npos)
83 expectations_satisfied = false;
84 } else if (key == "set") {
85 cookies_to_set.push_back(value);
86 } else {
87 return scoped_ptr<net::test_server::HttpResponse>(NULL);
88 }
89 }
90
91 if (expectations_satisfied) {
92 for (size_t i = 0; i < cookies_to_set.size(); i++)
93 http_response->AddCustomHeader("Set-Cookie", cookies_to_set[i]);
94 }
95
96 return http_response.PassAs<net::test_server::HttpResponse>();
97 }
98
38 class IsolatedAppTest : public ExtensionBrowserTest { 99 class IsolatedAppTest : public ExtensionBrowserTest {
39 public: 100 public:
40 // Returns whether the given tab's current URL has the given cookie. 101 // Returns whether the given tab's current URL has the given cookie.
41 bool WARN_UNUSED_RESULT HasCookie(WebContents* contents, std::string cookie) { 102 bool WARN_UNUSED_RESULT HasCookie(WebContents* contents, std::string cookie) {
42 int value_size; 103 int value_size;
43 std::string actual_cookie; 104 std::string actual_cookie;
44 automation_util::GetCookies(contents->GetURL(), contents, &value_size, 105 automation_util::GetCookies(contents->GetURL(), contents, &value_size,
45 &actual_cookie); 106 &actual_cookie);
46 return actual_cookie.find(cookie) != std::string::npos; 107 return actual_cookie.find(cookie) != std::string::npos;
47 } 108 }
(...skipping 21 matching lines...) Expand all
69 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 130 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
70 ExtensionBrowserTest::SetUpCommandLine(command_line); 131 ExtensionBrowserTest::SetUpCommandLine(command_line);
71 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); 132 command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis);
72 } 133 }
73 }; 134 };
74 135
75 } // namespace 136 } // namespace
76 137
77 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossProcessClientRedirect) { 138 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossProcessClientRedirect) {
78 host_resolver()->AddRule("*", "127.0.0.1"); 139 host_resolver()->AddRule("*", "127.0.0.1");
79 ASSERT_TRUE(test_server()->Start()); 140 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
80 141
81 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); 142 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
82 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); 143 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2")));
83 144
84 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 145 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
85 GURL::Replacements replace_host; 146 GURL::Replacements replace_host;
86 std::string host_str("localhost"); // Must stay in scope with replace_host. 147 std::string host_str("localhost"); // Must stay in scope with replace_host.
87 replace_host.SetHostStr(host_str); 148 replace_host.SetHostStr(host_str);
88 base_url = base_url.ReplaceComponents(replace_host); 149 base_url = base_url.ReplaceComponents(replace_host);
89 ui_test_utils::NavigateToURLWithDisposition( 150 ui_test_utils::NavigateToURLWithDisposition(
90 browser(), base_url.Resolve("app1/main.html"), 151 browser(), base_url.Resolve("app1/main.html"),
91 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 152 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
92 153
93 // Redirect to app2. 154 // Redirect to app2.
94 GURL redirect_url(test_server()->GetURL( 155 GURL redirect_url(embedded_test_server()->GetURL(
95 "client-redirect?files/extensions/isolated_apps/app2/main.html")); 156 "/extensions/isolated_apps/app2/redirect.html"));
96 ui_test_utils::NavigateToURLWithDisposition( 157 ui_test_utils::NavigateToURLWithDisposition(
97 browser(), redirect_url, 158 browser(), redirect_url,
98 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 159 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
99 160
100 // Go back twice. 161 // Go back twice.
101 // If bug fixed, we cannot go back anymore. 162 // If bug fixed, we cannot go back anymore.
102 // If not fixed, we will redirect back to app2 and can go back again. 163 // If not fixed, we will redirect back to app2 and can go back again.
103 EXPECT_TRUE(chrome::CanGoBack(browser())); 164 EXPECT_TRUE(chrome::CanGoBack(browser()));
104 chrome::GoBack(browser(), CURRENT_TAB); 165 chrome::GoBack(browser(), CURRENT_TAB);
105 EXPECT_TRUE(chrome::CanGoBack(browser())); 166 EXPECT_TRUE(chrome::CanGoBack(browser()));
(...skipping 30 matching lines...) Expand all
136 } 197 }
137 198
138 // Tests that cookies set within an isolated app are not visible to normal 199 // Tests that cookies set within an isolated app are not visible to normal
139 // pages or other apps. 200 // pages or other apps.
140 // 201 //
141 // TODO(ajwong): Also test what happens if an app spans multiple sites in its 202 // TODO(ajwong): Also test what happens if an app spans multiple sites in its
142 // extent. These origins should also be isolated, but still have origin-based 203 // extent. These origins should also be isolated, but still have origin-based
143 // separation as you would expect. 204 // separation as you would expect.
144 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CookieIsolation) { 205 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CookieIsolation) {
145 host_resolver()->AddRule("*", "127.0.0.1"); 206 host_resolver()->AddRule("*", "127.0.0.1");
146 ASSERT_TRUE(test_server()->Start()); 207 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
147 208
148 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); 209 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
149 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); 210 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2")));
150 211
151 // The app under test acts on URLs whose host is "localhost", 212 // The app under test acts on URLs whose host is "localhost",
152 // so the URLs we navigate to must have host "localhost". 213 // so the URLs we navigate to must have host "localhost".
153 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 214 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
154 GURL::Replacements replace_host; 215 GURL::Replacements replace_host;
155 std::string host_str("localhost"); // Must stay in scope with replace_host. 216 std::string host_str("localhost"); // Must stay in scope with replace_host.
156 replace_host.SetHostStr(host_str); 217 replace_host.SetHostStr(host_str);
157 base_url = base_url.ReplaceComponents(replace_host); 218 base_url = base_url.ReplaceComponents(replace_host);
158 219
159 ui_test_utils::NavigateToURLWithDisposition( 220 ui_test_utils::NavigateToURLWithDisposition(
160 browser(), base_url.Resolve("app1/main.html"), 221 browser(), base_url.Resolve("app1/main.html"),
161 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 222 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
162 ui_test_utils::NavigateToURLWithDisposition( 223 ui_test_utils::NavigateToURLWithDisposition(
163 browser(), base_url.Resolve("app2/main.html"), 224 browser(), base_url.Resolve("app2/main.html"),
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 EXPECT_TRUE(HasCookie(tab0, "app1=3")); 296 EXPECT_TRUE(HasCookie(tab0, "app1=3"));
236 EXPECT_FALSE(HasCookie(tab0, "app2")); 297 EXPECT_FALSE(HasCookie(tab0, "app2"));
237 EXPECT_FALSE(HasCookie(tab0, "normalPage")); 298 EXPECT_FALSE(HasCookie(tab0, "normalPage"));
238 299
239 } 300 }
240 301
241 // This test is disabled due to being flaky. http://crbug.com/145588 302 // This test is disabled due to being flaky. http://crbug.com/145588
242 // Ensure that cookies are not isolated if the isolated apps are not installed. 303 // Ensure that cookies are not isolated if the isolated apps are not installed.
243 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_NoCookieIsolationWithoutApp) { 304 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_NoCookieIsolationWithoutApp) {
244 host_resolver()->AddRule("*", "127.0.0.1"); 305 host_resolver()->AddRule("*", "127.0.0.1");
245 ASSERT_TRUE(test_server()->Start()); 306 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
246 307
247 // The app under test acts on URLs whose host is "localhost", 308 // The app under test acts on URLs whose host is "localhost",
248 // so the URLs we navigate to must have host "localhost". 309 // so the URLs we navigate to must have host "localhost".
249 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 310 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
250 GURL::Replacements replace_host; 311 GURL::Replacements replace_host;
251 std::string host_str("localhost"); // Must stay in scope with replace_host. 312 std::string host_str("localhost"); // Must stay in scope with replace_host.
252 replace_host.SetHostStr(host_str); 313 replace_host.SetHostStr(host_str);
253 base_url = base_url.ReplaceComponents(replace_host); 314 base_url = base_url.ReplaceComponents(replace_host);
254 315
255 ui_test_utils::NavigateToURLWithDisposition( 316 ui_test_utils::NavigateToURLWithDisposition(
256 browser(), base_url.Resolve("app1/main.html"), 317 browser(), base_url.Resolve("app1/main.html"),
257 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 318 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
258 ui_test_utils::NavigateToURLWithDisposition( 319 ui_test_utils::NavigateToURLWithDisposition(
259 browser(), base_url.Resolve("app2/main.html"), 320 browser(), base_url.Resolve("app2/main.html"),
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 // http://crbug.com/174926 375 // http://crbug.com/174926
315 #if defined(OS_WIN) && !defined(NDEBUG) 376 #if defined(OS_WIN) && !defined(NDEBUG)
316 #define MAYBE_SubresourceCookieIsolation DISABLED_SubresourceCookieIsolation 377 #define MAYBE_SubresourceCookieIsolation DISABLED_SubresourceCookieIsolation
317 #else 378 #else
318 #define MAYBE_SubresourceCookieIsolation SubresourceCookieIsolation 379 #define MAYBE_SubresourceCookieIsolation SubresourceCookieIsolation
319 #endif // defined(OS_WIN) && !defined(NDEBUG) 380 #endif // defined(OS_WIN) && !defined(NDEBUG)
320 381
321 // Tests that subresource and media requests use the app's cookie store. 382 // Tests that subresource and media requests use the app's cookie store.
322 // See http://crbug.com/141172. 383 // See http://crbug.com/141172.
323 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_SubresourceCookieIsolation) { 384 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_SubresourceCookieIsolation) {
385 embedded_test_server()->RegisterRequestHandler(
386 base::Bind(&HandleExpectAndSetCookieRequest, embedded_test_server()));
387
324 host_resolver()->AddRule("*", "127.0.0.1"); 388 host_resolver()->AddRule("*", "127.0.0.1");
325 ASSERT_TRUE(test_server()->Start()); 389 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
326 390
327 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); 391 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
328 392
329 // The app under test acts on URLs whose host is "localhost", 393 // The app under test acts on URLs whose host is "localhost",
330 // so the URLs we navigate to must have host "localhost". 394 // so the URLs we navigate to must have host "localhost".
331 GURL root_url = test_server()->GetURL(std::string()); 395 GURL root_url = embedded_test_server()->GetURL("/");
332 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 396 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
333 GURL::Replacements replace_host; 397 GURL::Replacements replace_host;
334 std::string host_str("localhost"); // Must stay in scope with replace_host. 398 std::string host_str("localhost"); // Must stay in scope with replace_host.
335 replace_host.SetHostStr(host_str); 399 replace_host.SetHostStr(host_str);
336 root_url = root_url.ReplaceComponents(replace_host); 400 root_url = root_url.ReplaceComponents(replace_host);
337 base_url = base_url.ReplaceComponents(replace_host); 401 base_url = base_url.ReplaceComponents(replace_host);
338 402
339 // First set cookies inside and outside the app. 403 // First set cookies inside and outside the app.
340 ui_test_utils::NavigateToURLWithDisposition( 404 ui_test_utils::NavigateToURLWithDisposition(
341 browser(), root_url.Resolve("set-cookie?nonApp=1"), 405 browser(), root_url.Resolve("expect-and-set-cookie?set=nonApp%3d1"),
342 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 406 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
343 WebContents* tab0 = browser()->tab_strip_model()->GetWebContentsAt(0); 407 WebContents* tab0 = browser()->tab_strip_model()->GetWebContentsAt(0);
344 ASSERT_FALSE(GetInstalledApp(tab0)); 408 ASSERT_FALSE(GetInstalledApp(tab0));
345 ui_test_utils::NavigateToURLWithDisposition( 409 ui_test_utils::NavigateToURLWithDisposition(
346 browser(), base_url.Resolve("app1/main.html"), 410 browser(), base_url.Resolve("app1/main.html"),
347 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 411 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
348 WebContents* tab1 = browser()->tab_strip_model()->GetWebContentsAt(1); 412 WebContents* tab1 = browser()->tab_strip_model()->GetWebContentsAt(1);
349 ASSERT_TRUE(GetInstalledApp(tab1)); 413 ASSERT_TRUE(GetInstalledApp(tab1));
350 414
351 // Check that each tab sees its own cookie. 415 // Check that each tab sees its own cookie.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 #define MAYBE_IsolatedAppProcessModel DISABLED_IsolatedAppProcessModel 454 #define MAYBE_IsolatedAppProcessModel DISABLED_IsolatedAppProcessModel
391 #else 455 #else
392 #define MAYBE_IsolatedAppProcessModel IsolatedAppProcessModel 456 #define MAYBE_IsolatedAppProcessModel IsolatedAppProcessModel
393 #endif // defined(OS_WIN) 457 #endif // defined(OS_WIN)
394 458
395 // Tests that isolated apps processes do not render top-level non-app pages. 459 // Tests that isolated apps processes do not render top-level non-app pages.
396 // This is true even in the case of the OAuth workaround for hosted apps, 460 // This is true even in the case of the OAuth workaround for hosted apps,
397 // where non-app popups may be kept in the hosted app process. 461 // where non-app popups may be kept in the hosted app process.
398 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_IsolatedAppProcessModel) { 462 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_IsolatedAppProcessModel) {
399 host_resolver()->AddRule("*", "127.0.0.1"); 463 host_resolver()->AddRule("*", "127.0.0.1");
400 ASSERT_TRUE(test_server()->Start()); 464 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
401 465
402 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); 466 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
403 467
404 // The app under test acts on URLs whose host is "localhost", 468 // The app under test acts on URLs whose host is "localhost",
405 // so the URLs we navigate to must have host "localhost". 469 // so the URLs we navigate to must have host "localhost".
406 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 470 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
407 GURL::Replacements replace_host; 471 GURL::Replacements replace_host;
408 std::string host_str("localhost"); // Must stay in scope with replace_host. 472 std::string host_str("localhost"); // Must stay in scope with replace_host.
409 replace_host.SetHostStr(host_str); 473 replace_host.SetHostStr(host_str);
410 base_url = base_url.ReplaceComponents(replace_host); 474 base_url = base_url.ReplaceComponents(replace_host);
411 475
412 // Create three tabs in the isolated app in different ways. 476 // Create three tabs in the isolated app in different ways.
413 ui_test_utils::NavigateToURLWithDisposition( 477 ui_test_utils::NavigateToURLWithDisposition(
414 browser(), base_url.Resolve("app1/main.html"), 478 browser(), base_url.Resolve("app1/main.html"),
415 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 479 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
416 ui_test_utils::NavigateToURLWithDisposition( 480 ui_test_utils::NavigateToURLWithDisposition(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 GetRenderProcessHost()->GetID()); 514 GetRenderProcessHost()->GetID());
451 } 515 }
452 516
453 // This test no longer passes, since we don't properly isolate sessionStorage 517 // This test no longer passes, since we don't properly isolate sessionStorage
454 // for isolated apps. This was broken as part of the changes for storage 518 // for isolated apps. This was broken as part of the changes for storage
455 // partition support for webview tags. 519 // partition support for webview tags.
456 // TODO(nasko): If isolated apps is no longer developed, this test should be 520 // TODO(nasko): If isolated apps is no longer developed, this test should be
457 // removed. http://crbug.com/159932 521 // removed. http://crbug.com/159932
458 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_SessionStorage) { 522 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_SessionStorage) {
459 host_resolver()->AddRule("*", "127.0.0.1"); 523 host_resolver()->AddRule("*", "127.0.0.1");
460 ASSERT_TRUE(test_server()->Start()); 524 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
461 525
462 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); 526 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1")));
463 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); 527 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2")));
464 528
465 // The app under test acts on URLs whose host is "localhost", 529 // The app under test acts on URLs whose host is "localhost",
466 // so the URLs we navigate to must have host "localhost". 530 // so the URLs we navigate to must have host "localhost".
467 GURL base_url = test_server()->GetURL("files/extensions/isolated_apps/"); 531 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/");
468 GURL::Replacements replace_host; 532 GURL::Replacements replace_host;
469 std::string host_str("localhost"); // Must stay in scope with replace_host. 533 std::string host_str("localhost"); // Must stay in scope with replace_host.
470 replace_host.SetHostStr(host_str); 534 replace_host.SetHostStr(host_str);
471 base_url = base_url.ReplaceComponents(replace_host); 535 base_url = base_url.ReplaceComponents(replace_host);
472 536
473 // Enter some state into sessionStorage three times on the same origin, but 537 // Enter some state into sessionStorage three times on the same origin, but
474 // for three URLs that correspond to app1, app2, and a non-isolated site. 538 // for three URLs that correspond to app1, app2, and a non-isolated site.
475 ui_test_utils::NavigateToURLWithDisposition( 539 ui_test_utils::NavigateToURLWithDisposition(
476 browser(), base_url.Resolve("app1/main.html"), 540 browser(), base_url.Resolve("app1/main.html"),
477 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 541 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 EXPECT_EQ("ss_app2", result); 580 EXPECT_EQ("ss_app2", result);
517 581
518 ui_test_utils::NavigateToURLWithDisposition( 582 ui_test_utils::NavigateToURLWithDisposition(
519 browser(), base_url.Resolve("non_app/main.html"), 583 browser(), base_url.Resolve("non_app/main.html"),
520 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 584 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
521 ASSERT_TRUE(ExecuteScriptAndExtractString( 585 ASSERT_TRUE(ExecuteScriptAndExtractString(
522 browser()->tab_strip_model()->GetWebContentsAt(0), 586 browser()->tab_strip_model()->GetWebContentsAt(0),
523 kRetrieveSessionStorage.c_str(), &result)); 587 kRetrieveSessionStorage.c_str(), &result));
524 EXPECT_EQ("ss_normal", result); 588 EXPECT_EQ("ss_normal", result);
525 } 589 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_tabs_apitest.cc ('k') | chrome/browser/extensions/lazy_background_page_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698