OLD | NEW |
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/utf_string_conversions.h" | 5 #include "base/utf_string_conversions.h" |
6 #include "chrome/browser/automation/automation_util.h" | 6 #include "chrome/browser/automation/automation_util.h" |
7 #include "chrome/browser/extensions/platform_app_browsertest_util.h" | 7 #include "chrome/browser/extensions/platform_app_browsertest_util.h" |
8 #include "chrome/browser/ui/browser_tabstrip.h" | 8 #include "chrome/browser/ui/browser_tabstrip.h" |
9 #include "chrome/test/base/ui_test_utils.h" | 9 #include "chrome/test/base/ui_test_utils.h" |
10 #include "chrome/test/base/test_launcher_utils.h" | 10 #include "chrome/test/base/test_launcher_utils.h" |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 automation_util::GetCookies(GURL("http://localhost"), | 275 automation_util::GetCookies(GURL("http://localhost"), |
276 cookie_contents2, | 276 cookie_contents2, |
277 &cookie_size, &cookie_value); | 277 &cookie_size, &cookie_value); |
278 EXPECT_EQ("guest1=true; guest2=true", cookie_value); | 278 EXPECT_EQ("guest1=true; guest2=true", cookie_value); |
279 | 279 |
280 // The third tag should not have any cookies as it is in a separate partition. | 280 // The third tag should not have any cookies as it is in a separate partition. |
281 automation_util::GetCookies(GURL("http://localhost"), | 281 automation_util::GetCookies(GURL("http://localhost"), |
282 named_partition_contents1, | 282 named_partition_contents1, |
283 &cookie_size, &cookie_value); | 283 &cookie_size, &cookie_value); |
284 EXPECT_EQ("", cookie_value); | 284 EXPECT_EQ("", cookie_value); |
285 | |
286 CloseShellWindowsAndWaitForAppToExit(); | |
287 } | 285 } |
288 | 286 |
289 // This tests that in-memory storage partitions are reset on browser restart, | 287 // This tests that in-memory storage partitions are reset on browser restart, |
290 // but persistent ones maintain state for cookies and HTML5 storage. | 288 // but persistent ones maintain state for cookies and HTML5 storage. |
291 IN_PROC_BROWSER_TEST_F(WebViewTest, PRE_StoragePersistence) { | 289 IN_PROC_BROWSER_TEST_F(WebViewTest, PRE_StoragePersistence) { |
292 ASSERT_TRUE(StartTestServer()); | 290 ASSERT_TRUE(StartTestServer()); |
293 const std::wstring kExpire = | 291 const std::wstring kExpire = |
294 L"var expire = new Date(Date.now() + 24 * 60 * 60 * 1000);"; | 292 L"var expire = new Date(Date.now() + 24 * 60 * 60 * 1000);"; |
295 std::wstring cookie_script1(kExpire); | 293 std::wstring cookie_script1(kExpire); |
296 cookie_script1.append( | 294 cookie_script1.append( |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 &cookie_size, &cookie_value); | 365 &cookie_size, &cookie_value); |
368 EXPECT_EQ("persist1=true", cookie_value); | 366 EXPECT_EQ("persist1=true", cookie_value); |
369 automation_util::GetCookies(GURL("http://localhost"), | 367 automation_util::GetCookies(GURL("http://localhost"), |
370 persistent_partition_contents2, | 368 persistent_partition_contents2, |
371 &cookie_size, &cookie_value); | 369 &cookie_size, &cookie_value); |
372 EXPECT_EQ("persist1=true", cookie_value); | 370 EXPECT_EQ("persist1=true", cookie_value); |
373 automation_util::GetCookies(GURL("http://localhost"), | 371 automation_util::GetCookies(GURL("http://localhost"), |
374 persistent_partition_contents3, | 372 persistent_partition_contents3, |
375 &cookie_size, &cookie_value); | 373 &cookie_size, &cookie_value); |
376 EXPECT_EQ("persist2=true", cookie_value); | 374 EXPECT_EQ("persist2=true", cookie_value); |
377 | |
378 CloseShellWindowsAndWaitForAppToExit(); | |
379 } | 375 } |
380 | 376 |
381 // This is the post-reset portion of the StoragePersistence test. See | 377 // This is the post-reset portion of the StoragePersistence test. See |
382 // PRE_StoragePersistence for main comment. | 378 // PRE_StoragePersistence for main comment. |
383 IN_PROC_BROWSER_TEST_F(WebViewTest, StoragePersistence) { | 379 IN_PROC_BROWSER_TEST_F(WebViewTest, StoragePersistence) { |
384 ASSERT_TRUE(StartTestServer()); | 380 ASSERT_TRUE(StartTestServer()); |
385 | 381 |
386 // We don't care where the main browser is on this test. | 382 // We don't care where the main browser is on this test. |
387 GURL blank_url("about:blank"); | 383 GURL blank_url("about:blank"); |
388 | 384 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 &cookie_size, &cookie_value); | 426 &cookie_size, &cookie_value); |
431 EXPECT_EQ("persist1=true", cookie_value); | 427 EXPECT_EQ("persist1=true", cookie_value); |
432 automation_util::GetCookies(GURL("http://localhost"), | 428 automation_util::GetCookies(GURL("http://localhost"), |
433 persistent_partition_contents2, | 429 persistent_partition_contents2, |
434 &cookie_size, &cookie_value); | 430 &cookie_size, &cookie_value); |
435 EXPECT_EQ("persist1=true", cookie_value); | 431 EXPECT_EQ("persist1=true", cookie_value); |
436 automation_util::GetCookies(GURL("http://localhost"), | 432 automation_util::GetCookies(GURL("http://localhost"), |
437 persistent_partition_contents3, | 433 persistent_partition_contents3, |
438 &cookie_size, &cookie_value); | 434 &cookie_size, &cookie_value); |
439 EXPECT_EQ("persist2=true", cookie_value); | 435 EXPECT_EQ("persist2=true", cookie_value); |
440 | |
441 CloseShellWindowsAndWaitForAppToExit(); | |
442 } | 436 } |
443 | 437 |
444 // This tests DOM storage isolation for packaged apps with webview tags. It | 438 // This tests DOM storage isolation for packaged apps with webview tags. It |
445 // loads an app with multiple webview tags and each tag sets DOM storage | 439 // loads an app with multiple webview tags and each tag sets DOM storage |
446 // entries, which the test checks to ensure proper storage isolation is | 440 // entries, which the test checks to ensure proper storage isolation is |
447 // enforced. | 441 // enforced. |
448 IN_PROC_BROWSER_TEST_F(WebViewTest, DOMStorageIsolation) { | 442 IN_PROC_BROWSER_TEST_F(WebViewTest, DOMStorageIsolation) { |
449 ASSERT_TRUE(StartTestServer()); | 443 ASSERT_TRUE(StartTestServer()); |
450 GURL regular_url = test_server()->GetURL("files/title1.html"); | 444 GURL regular_url = test_server()->GetURL("files/title1.html"); |
451 | 445 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
520 std::wstring(), get_session_storage.c_str(), &output)); | 514 std::wstring(), get_session_storage.c_str(), &output)); |
521 EXPECT_STREQ("badval", output.c_str()); | 515 EXPECT_STREQ("badval", output.c_str()); |
522 EXPECT_TRUE(ExecuteJavaScriptAndExtractString( | 516 EXPECT_TRUE(ExecuteJavaScriptAndExtractString( |
523 default_tag_contents1->GetRenderViewHost(), std::wstring(), | 517 default_tag_contents1->GetRenderViewHost(), std::wstring(), |
524 get_local_storage.c_str(), &output)); | 518 get_local_storage.c_str(), &output)); |
525 EXPECT_STREQ("badval", output.c_str()); | 519 EXPECT_STREQ("badval", output.c_str()); |
526 EXPECT_TRUE(ExecuteJavaScriptAndExtractString( | 520 EXPECT_TRUE(ExecuteJavaScriptAndExtractString( |
527 default_tag_contents1->GetRenderViewHost(), std::wstring(), | 521 default_tag_contents1->GetRenderViewHost(), std::wstring(), |
528 get_session_storage.c_str(), &output)); | 522 get_session_storage.c_str(), &output)); |
529 EXPECT_STREQ("badval", output.c_str()); | 523 EXPECT_STREQ("badval", output.c_str()); |
530 | |
531 CloseShellWindowsAndWaitForAppToExit(); | |
532 } | 524 } |
533 | 525 |
534 // This tests IndexedDB isolation for packaged apps with webview tags. It loads | 526 // This tests IndexedDB isolation for packaged apps with webview tags. It loads |
535 // an app with multiple webview tags and each tag creates an IndexedDB record, | 527 // an app with multiple webview tags and each tag creates an IndexedDB record, |
536 // which the test checks to ensure proper storage isolation is enforced. | 528 // which the test checks to ensure proper storage isolation is enforced. |
537 IN_PROC_BROWSER_TEST_F(WebViewTest, IndexedDBIsolation) { | 529 IN_PROC_BROWSER_TEST_F(WebViewTest, IndexedDBIsolation) { |
538 ASSERT_TRUE(StartTestServer()); | 530 ASSERT_TRUE(StartTestServer()); |
539 GURL regular_url = test_server()->GetURL("files/title1.html"); | 531 GURL regular_url = test_server()->GetURL("files/title1.html"); |
540 | 532 |
541 content::WebContents* default_tag_contents1; | 533 content::WebContents* default_tag_contents1; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 const char* script = | 600 const char* script = |
609 "indexedDB.open('isolation').onsuccess = function(e) {" | 601 "indexedDB.open('isolation').onsuccess = function(e) {" |
610 " if (e.target.result.version == 1)" | 602 " if (e.target.result.version == 1)" |
611 " document.title = 'db not found';" | 603 " document.title = 'db not found';" |
612 " else " | 604 " else " |
613 " document.title = 'error';" | 605 " document.title = 'error';" |
614 "}"; | 606 "}"; |
615 ExecuteScriptWaitForTitle(chrome::GetWebContentsAt(browser(), 0), | 607 ExecuteScriptWaitForTitle(chrome::GetWebContentsAt(browser(), 0), |
616 script, "db not found"); | 608 script, "db not found"); |
617 ExecuteScriptWaitForTitle(default_tag_contents1, script, "db not found"); | 609 ExecuteScriptWaitForTitle(default_tag_contents1, script, "db not found"); |
618 | |
619 CloseShellWindowsAndWaitForAppToExit(); | |
620 } | 610 } |
OLD | NEW |