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

Side by Side Diff: chrome/browser/sessions/session_restore_browsertest.cc

Issue 10536074: TabContentsWrapper -> TabContents, part 26. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 6 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
« no previous file with comments | « chrome/browser/sessions/session_restore.cc ('k') | chrome/browser/sessions/session_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/file_path.h" 6 #include "base/file_path.h"
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/defaults.h" 9 #include "chrome/browser/defaults.h"
10 #include "chrome/browser/first_run/first_run.h" 10 #include "chrome/browser/first_run/first_run.h"
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 // here to avoid a crash. 468 // here to avoid a crash.
469 window.tabs.clear(); 469 window.tabs.clear();
470 } 470 }
471 471
472 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, Basic) { 472 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, Basic) {
473 ui_test_utils::NavigateToURL(browser(), url1_); 473 ui_test_utils::NavigateToURL(browser(), url1_);
474 ui_test_utils::NavigateToURL(browser(), url2_); 474 ui_test_utils::NavigateToURL(browser(), url2_);
475 475
476 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 476 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
477 ASSERT_EQ(1u, BrowserList::size()); 477 ASSERT_EQ(1u, BrowserList::size());
478 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); 478 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL());
479 GoBack(new_browser); 479 GoBack(new_browser);
480 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 480 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
481 } 481 }
482 482
483 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoresForwardAndBackwardNavs) { 483 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, RestoresForwardAndBackwardNavs) {
484 ui_test_utils::NavigateToURL(browser(), url1_); 484 ui_test_utils::NavigateToURL(browser(), url1_);
485 ui_test_utils::NavigateToURL(browser(), url2_); 485 ui_test_utils::NavigateToURL(browser(), url2_);
486 ui_test_utils::NavigateToURL(browser(), url3_); 486 ui_test_utils::NavigateToURL(browser(), url3_);
487 487
488 GoBack(browser()); 488 GoBack(browser());
489 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 489 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
490 ASSERT_EQ(1u, BrowserList::size()); 490 ASSERT_EQ(1u, BrowserList::size());
491 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); 491 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL());
492 GoForward(new_browser); 492 GoForward(new_browser);
493 ASSERT_EQ(url3_, new_browser->GetSelectedWebContents()->GetURL()); 493 ASSERT_EQ(url3_, new_browser->GetActiveWebContents()->GetURL());
494 GoBack(new_browser); 494 GoBack(new_browser);
495 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); 495 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL());
496 496
497 // Test renderer-initiated back/forward as well. 497 // Test renderer-initiated back/forward as well.
498 GURL go_back_url("javascript:history.back();"); 498 GURL go_back_url("javascript:history.back();");
499 ui_test_utils::NavigateToURL(new_browser, go_back_url); 499 ui_test_utils::NavigateToURL(new_browser, go_back_url);
500 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 500 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
501 } 501 }
502 502
503 // Tests that the SiteInstances used for entries in a restored tab's history 503 // Tests that the SiteInstances used for entries in a restored tab's history
504 // are given appropriate max page IDs, so that going back to a restored 504 // are given appropriate max page IDs, so that going back to a restored
505 // cross-site page and then forward again works. (Bug 1204135) 505 // cross-site page and then forward again works. (Bug 1204135)
506 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, 506 IN_PROC_BROWSER_TEST_F(SessionRestoreTest,
507 RestoresCrossSiteForwardAndBackwardNavs) { 507 RestoresCrossSiteForwardAndBackwardNavs) {
508 ASSERT_TRUE(test_server()->Start()); 508 ASSERT_TRUE(test_server()->Start());
509 509
510 GURL cross_site_url(test_server()->GetURL("files/title2.html")); 510 GURL cross_site_url(test_server()->GetURL("files/title2.html"));
511 511
512 // Visit URLs on different sites. 512 // Visit URLs on different sites.
513 ui_test_utils::NavigateToURL(browser(), url1_); 513 ui_test_utils::NavigateToURL(browser(), url1_);
514 ui_test_utils::NavigateToURL(browser(), cross_site_url); 514 ui_test_utils::NavigateToURL(browser(), cross_site_url);
515 ui_test_utils::NavigateToURL(browser(), url2_); 515 ui_test_utils::NavigateToURL(browser(), url2_);
516 516
517 GoBack(browser()); 517 GoBack(browser());
518 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 518 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
519 ASSERT_EQ(1u, BrowserList::size()); 519 ASSERT_EQ(1u, BrowserList::size());
520 ASSERT_EQ(1, new_browser->tab_count()); 520 ASSERT_EQ(1, new_browser->tab_count());
521 521
522 // Check that back and forward work as expected. 522 // Check that back and forward work as expected.
523 ASSERT_EQ(cross_site_url, new_browser->GetSelectedWebContents()->GetURL()); 523 ASSERT_EQ(cross_site_url, new_browser->GetActiveWebContents()->GetURL());
524 524
525 GoBack(new_browser); 525 GoBack(new_browser);
526 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 526 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
527 527
528 GoForward(new_browser); 528 GoForward(new_browser);
529 ASSERT_EQ(cross_site_url, new_browser->GetSelectedWebContents()->GetURL()); 529 ASSERT_EQ(cross_site_url, new_browser->GetActiveWebContents()->GetURL());
530 530
531 // Test renderer-initiated back/forward as well. 531 // Test renderer-initiated back/forward as well.
532 GURL go_forward_url("javascript:history.forward();"); 532 GURL go_forward_url("javascript:history.forward();");
533 ui_test_utils::NavigateToURL(new_browser, go_forward_url); 533 ui_test_utils::NavigateToURL(new_browser, go_forward_url);
534 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); 534 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL());
535 } 535 }
536 536
537 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoTabsSecondSelected) { 537 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoTabsSecondSelected) {
538 ui_test_utils::NavigateToURL(browser(), url1_); 538 ui_test_utils::NavigateToURL(browser(), url1_);
539 539
540 ui_test_utils::NavigateToURLWithDisposition( 540 ui_test_utils::NavigateToURLWithDisposition(
541 browser(), url2_, NEW_FOREGROUND_TAB, 541 browser(), url2_, NEW_FOREGROUND_TAB,
542 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 542 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
543 543
544 Browser* new_browser = QuitBrowserAndRestore(browser(), 2); 544 Browser* new_browser = QuitBrowserAndRestore(browser(), 2);
545 545
546 ASSERT_EQ(1u, BrowserList::size()); 546 ASSERT_EQ(1u, BrowserList::size());
547 ASSERT_EQ(2, new_browser->tab_count()); 547 ASSERT_EQ(2, new_browser->tab_count());
548 ASSERT_EQ(1, new_browser->active_index()); 548 ASSERT_EQ(1, new_browser->active_index());
549 ASSERT_EQ(url2_, new_browser->GetSelectedWebContents()->GetURL()); 549 ASSERT_EQ(url2_, new_browser->GetActiveWebContents()->GetURL());
550 550
551 ASSERT_EQ(url1_, new_browser->GetWebContentsAt(0)->GetURL()); 551 ASSERT_EQ(url1_, new_browser->GetWebContentsAt(0)->GetURL());
552 } 552 }
553 553
554 // Creates two tabs, closes one, quits and makes sure only one tab is restored. 554 // Creates two tabs, closes one, quits and makes sure only one tab is restored.
555 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, ClosedTabStaysClosed) { 555 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, ClosedTabStaysClosed) {
556 ui_test_utils::NavigateToURL(browser(), url1_); 556 ui_test_utils::NavigateToURL(browser(), url1_);
557 557
558 ui_test_utils::NavigateToURLWithDisposition( 558 ui_test_utils::NavigateToURLWithDisposition(
559 browser(), url2_, NEW_FOREGROUND_TAB, 559 browser(), url2_, NEW_FOREGROUND_TAB,
560 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 560 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
561 browser()->CloseTab(); 561 browser()->CloseTab();
562 562
563 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 563 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
564 564
565 AssertOneWindowWithOneTab(new_browser); 565 AssertOneWindowWithOneTab(new_browser);
566 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 566 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
567 } 567 }
568 568
569 // Test to verify that the print preview tab is not restored. 569 // Test to verify that the print preview tab is not restored.
570 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, DontRestorePrintPreviewTabTest) { 570 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, DontRestorePrintPreviewTabTest) {
571 ui_test_utils::NavigateToURL(browser(), url1_); 571 ui_test_utils::NavigateToURL(browser(), url1_);
572 572
573 // Append the print preview tab. 573 // Append the print preview tab.
574 ui_test_utils::NavigateToURLWithDisposition( 574 ui_test_utils::NavigateToURLWithDisposition(
575 browser(), GURL(chrome::kChromeUIPrintURL), NEW_FOREGROUND_TAB, 575 browser(), GURL(chrome::kChromeUIPrintURL), NEW_FOREGROUND_TAB,
576 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 576 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
577 577
578 // Restart and make sure we have only one window with one tab and the url 578 // Restart and make sure we have only one window with one tab and the url
579 // is url1_. 579 // is url1_.
580 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 580 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
581 581
582 AssertOneWindowWithOneTab(new_browser); 582 AssertOneWindowWithOneTab(new_browser);
583 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 583 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
584 } 584 }
585 585
586 // Creates a tabbed browser and popup and makes sure we restore both. 586 // Creates a tabbed browser and popup and makes sure we restore both.
587 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) { 587 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, NormalAndPopup) {
588 if (!browser_defaults::kRestorePopups) 588 if (!browser_defaults::kRestorePopups)
589 return; // Test only applicable if restoring popups. 589 return; // Test only applicable if restoring popups.
590 590
591 ui_test_utils::NavigateToURL(browser(), url1_); 591 ui_test_utils::NavigateToURL(browser(), url1_);
592 592
593 // Make sure we have one window. 593 // Make sure we have one window.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 ASSERT_EQ(2u, BrowserList::size()); 651 ASSERT_EQ(2u, BrowserList::size());
652 652
653 // Close the first window. The only window left is the App window. 653 // Close the first window. The only window left is the App window.
654 CloseBrowserSynchronously(browser()); 654 CloseBrowserSynchronously(browser());
655 655
656 // Restore the session, which should bring back the first window with url1_. 656 // Restore the session, which should bring back the first window with url1_.
657 Browser* new_browser = QuitBrowserAndRestore(app_window, 1); 657 Browser* new_browser = QuitBrowserAndRestore(app_window, 1);
658 658
659 AssertOneWindowWithOneTab(new_browser); 659 AssertOneWindowWithOneTab(new_browser);
660 660
661 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 661 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
662 } 662 }
663 663
664 #endif // !defined(OS_CHROMEOS) && !defined(OS_MACOSX) 664 #endif // !defined(OS_CHROMEOS) && !defined(OS_MACOSX)
665 665
666 // Creates two windows, closes one, restores, make sure only one window open. 666 // Creates two windows, closes one, restores, make sure only one window open.
667 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoWindowsCloseOneRestoreOnlyOne) { 667 IN_PROC_BROWSER_TEST_F(SessionRestoreTest, TwoWindowsCloseOneRestoreOnlyOne) {
668 ui_test_utils::NavigateToURL(browser(), url1_); 668 ui_test_utils::NavigateToURL(browser(), url1_);
669 669
670 // Open a second window. 670 // Open a second window.
671 ui_test_utils::NavigateToURLWithDisposition( 671 ui_test_utils::NavigateToURLWithDisposition(
672 browser(), GURL(chrome::kAboutBlankURL), NEW_WINDOW, 672 browser(), GURL(chrome::kAboutBlankURL), NEW_WINDOW,
673 ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER); 673 ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER);
674 674
675 ASSERT_EQ(2u, BrowserList::size()); 675 ASSERT_EQ(2u, BrowserList::size());
676 676
677 // Close it. 677 // Close it.
678 Browser* new_window = *(++BrowserList::begin()); 678 Browser* new_window = *(++BrowserList::begin());
679 CloseBrowserSynchronously(new_window); 679 CloseBrowserSynchronously(new_window);
680 680
681 // Restart and make sure we have only one window with one tab and the url 681 // Restart and make sure we have only one window with one tab and the url
682 // is url1_. 682 // is url1_.
683 Browser* new_browser = QuitBrowserAndRestore(browser(), 1); 683 Browser* new_browser = QuitBrowserAndRestore(browser(), 1);
684 684
685 AssertOneWindowWithOneTab(new_browser); 685 AssertOneWindowWithOneTab(new_browser);
686 686
687 ASSERT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 687 ASSERT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
688 } 688 }
689 689
690 // Make sure after a restore the number of processes matches that of the number 690 // Make sure after a restore the number of processes matches that of the number
691 // of processes running before the restore. This creates a new tab so that 691 // of processes running before the restore. This creates a new tab so that
692 // we should have two new tabs running. (This test will pass in both 692 // we should have two new tabs running. (This test will pass in both
693 // process-per-site and process-per-site-instance, because we treat the new tab 693 // process-per-site and process-per-site-instance, because we treat the new tab
694 // as a special case in process-per-site-instance so that it only ever uses one 694 // as a special case in process-per-site-instance so that it only ever uses one
695 // process.) 695 // process.)
696 // 696 //
697 // Flaky: http://code.google.com/p/chromium/issues/detail?id=52022 697 // Flaky: http://code.google.com/p/chromium/issues/detail?id=52022
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 751
752 // Restore the session again, globbering the existing tab. 752 // Restore the session again, globbering the existing tab.
753 SessionRestore::RestoreSession( 753 SessionRestore::RestoreSession(
754 profile, new_browser, 754 profile, new_browser,
755 SessionRestore::CLOBBER_CURRENT_TAB | SessionRestore::SYNCHRONOUS, 755 SessionRestore::CLOBBER_CURRENT_TAB | SessionRestore::SYNCHRONOUS,
756 std::vector<GURL>()); 756 std::vector<GURL>());
757 757
758 // The pinned tab is the selected tab. 758 // The pinned tab is the selected tab.
759 ASSERT_EQ(2, new_browser->tab_count()); 759 ASSERT_EQ(2, new_browser->tab_count());
760 EXPECT_EQ(0, new_browser->active_index()); 760 EXPECT_EQ(0, new_browser->active_index());
761 EXPECT_EQ(url1_, new_browser->GetSelectedWebContents()->GetURL()); 761 EXPECT_EQ(url1_, new_browser->GetActiveWebContents()->GetURL());
762 EXPECT_EQ(url2_, new_browser->GetWebContentsAt(1)->GetURL()); 762 EXPECT_EQ(url2_, new_browser->GetWebContentsAt(1)->GetURL());
763 } 763 }
OLDNEW
« no previous file with comments | « chrome/browser/sessions/session_restore.cc ('k') | chrome/browser/sessions/session_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698