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

Side by Side Diff: chrome/browser/ui/browser_browsertest.cc

Issue 2248873002: Convert WindowOpenDisposition to an enum class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 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
« no previous file with comments | « chrome/browser/ui/browser.cc ('k') | chrome/browser/ui/browser_command_controller.cc » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/ui/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 ui_test_utils::NavigateToURL(browser(), ntp_url); 513 ui_test_utils::NavigateToURL(browser(), ntp_url);
514 514
515 // Navigate to a 204 URL (aborts with no content) on the NTP and make sure it 515 // Navigate to a 204 URL (aborts with no content) on the NTP and make sure it
516 // sticks around so that the user can edit it. 516 // sticks around so that the user can edit it.
517 GURL abort_url(embedded_test_server()->GetURL("/nocontent")); 517 GURL abort_url(embedded_test_server()->GetURL("/nocontent"));
518 { 518 {
519 content::WindowedNotificationObserver stop_observer( 519 content::WindowedNotificationObserver stop_observer(
520 content::NOTIFICATION_LOAD_STOP, 520 content::NOTIFICATION_LOAD_STOP,
521 content::Source<NavigationController>( 521 content::Source<NavigationController>(
522 &web_contents->GetController())); 522 &web_contents->GetController()));
523 browser()->OpenURL(OpenURLParams(abort_url, Referrer(), CURRENT_TAB, 523 browser()->OpenURL(OpenURLParams(abort_url, Referrer(),
524 WindowOpenDisposition::CURRENT_TAB,
524 ui::PAGE_TRANSITION_TYPED, false)); 525 ui::PAGE_TRANSITION_TYPED, false));
525 stop_observer.Wait(); 526 stop_observer.Wait();
526 EXPECT_TRUE(web_contents->GetController().GetPendingEntry()); 527 EXPECT_TRUE(web_contents->GetController().GetPendingEntry());
527 EXPECT_EQ(abort_url, web_contents->GetVisibleURL()); 528 EXPECT_EQ(abort_url, web_contents->GetVisibleURL());
528 } 529 }
529 530
530 // Navigate to a real URL. 531 // Navigate to a real URL.
531 GURL real_url(embedded_test_server()->GetURL("/title1.html")); 532 GURL real_url(embedded_test_server()->GetURL("/title1.html"));
532 ui_test_utils::NavigateToURL(browser(), real_url); 533 ui_test_utils::NavigateToURL(browser(), real_url);
533 EXPECT_EQ(real_url, web_contents->GetVisibleURL()); 534 EXPECT_EQ(real_url, web_contents->GetVisibleURL());
534 535
535 // Now navigating to a 204 URL should clear the pending entry. 536 // Now navigating to a 204 URL should clear the pending entry.
536 { 537 {
537 content::WindowedNotificationObserver stop_observer( 538 content::WindowedNotificationObserver stop_observer(
538 content::NOTIFICATION_LOAD_STOP, 539 content::NOTIFICATION_LOAD_STOP,
539 content::Source<NavigationController>( 540 content::Source<NavigationController>(
540 &web_contents->GetController())); 541 &web_contents->GetController()));
541 browser()->OpenURL(OpenURLParams(abort_url, Referrer(), CURRENT_TAB, 542 browser()->OpenURL(OpenURLParams(abort_url, Referrer(),
543 WindowOpenDisposition::CURRENT_TAB,
542 ui::PAGE_TRANSITION_TYPED, false)); 544 ui::PAGE_TRANSITION_TYPED, false));
543 stop_observer.Wait(); 545 stop_observer.Wait();
544 EXPECT_FALSE(web_contents->GetController().GetPendingEntry()); 546 EXPECT_FALSE(web_contents->GetController().GetPendingEntry());
545 EXPECT_EQ(real_url, web_contents->GetVisibleURL()); 547 EXPECT_EQ(real_url, web_contents->GetVisibleURL());
546 } 548 }
547 } 549 }
548 550
549 // Test for crbug.com/297289. Ensure that modal dialogs are closed when a 551 // Test for crbug.com/297289. Ensure that modal dialogs are closed when a
550 // cross-process navigation is ready to commit. 552 // cross-process navigation is ready to commit.
551 // Flaky test, see https://crbug.com/445155. 553 // Flaky test, see https://crbug.com/445155.
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 } 662 }
661 663
662 // Test for crbug.com/22004. Reloading a page with a before unload handler and 664 // Test for crbug.com/22004. Reloading a page with a before unload handler and
663 // then canceling the dialog should not leave the throbber spinning. 665 // then canceling the dialog should not leave the throbber spinning.
664 IN_PROC_BROWSER_TEST_F(BrowserTest, ReloadThenCancelBeforeUnload) { 666 IN_PROC_BROWSER_TEST_F(BrowserTest, ReloadThenCancelBeforeUnload) {
665 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); 667 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML);
666 ui_test_utils::NavigateToURL(browser(), url); 668 ui_test_utils::NavigateToURL(browser(), url);
667 669
668 // Navigate to another page, but click cancel in the dialog. Make sure that 670 // Navigate to another page, but click cancel in the dialog. Make sure that
669 // the throbber stops spinning. 671 // the throbber stops spinning.
670 chrome::Reload(browser(), CURRENT_TAB); 672 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
671 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); 673 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
672 alert->CloseModalDialog(); 674 alert->CloseModalDialog();
673 EXPECT_FALSE( 675 EXPECT_FALSE(
674 browser()->tab_strip_model()->GetActiveWebContents()->IsLoading()); 676 browser()->tab_strip_model()->GetActiveWebContents()->IsLoading());
675 677
676 // Clear the beforeunload handler so the test can easily exit. 678 // Clear the beforeunload handler so the test can easily exit.
677 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame()-> 679 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame()->
678 ExecuteJavaScriptForTests(ASCIIToUTF16("onbeforeunload=null;")); 680 ExecuteJavaScriptForTests(ASCIIToUTF16("onbeforeunload=null;"));
679 } 681 }
680 682
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 ui_test_utils::NavigateToURL(browser(), url); 783 ui_test_utils::NavigateToURL(browser(), url);
782 784
783 // Navigate to a URL that redirects to another process and approve the 785 // Navigate to a URL that redirects to another process and approve the
784 // beforeunload dialog that pops up. 786 // beforeunload dialog that pops up.
785 content::WindowedNotificationObserver nav_observer( 787 content::WindowedNotificationObserver nav_observer(
786 content::NOTIFICATION_NAV_ENTRY_COMMITTED, 788 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
787 content::NotificationService::AllSources()); 789 content::NotificationService::AllSources());
788 GURL https_url(https_test_server.GetURL("/title1.html")); 790 GURL https_url(https_test_server.GetURL("/title1.html"));
789 GURL redirect_url( 791 GURL redirect_url(
790 embedded_test_server()->GetURL("/server-redirect?" + https_url.spec())); 792 embedded_test_server()->GetURL("/server-redirect?" + https_url.spec()));
791 browser()->OpenURL(OpenURLParams(redirect_url, Referrer(), CURRENT_TAB, 793 browser()->OpenURL(OpenURLParams(redirect_url, Referrer(),
794 WindowOpenDisposition::CURRENT_TAB,
792 ui::PAGE_TRANSITION_TYPED, false)); 795 ui::PAGE_TRANSITION_TYPED, false));
793 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); 796 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
794 EXPECT_TRUE( 797 EXPECT_TRUE(
795 static_cast<JavaScriptAppModalDialog*>(alert)->is_before_unload_dialog()); 798 static_cast<JavaScriptAppModalDialog*>(alert)->is_before_unload_dialog());
796 alert->native_dialog()->AcceptAppModalDialog(); 799 alert->native_dialog()->AcceptAppModalDialog();
797 nav_observer.Wait(); 800 nav_observer.Wait();
798 801
799 // Restore previous browser client. 802 // Restore previous browser client.
800 SetBrowserClientForTesting(old_client); 803 SetBrowserClientForTesting(old_client);
801 } 804 }
802 805
803 // Test for crbug.com/80401. Canceling a before unload dialog should reset 806 // Test for crbug.com/80401. Canceling a before unload dialog should reset
804 // the URL to the previous page's URL. 807 // the URL to the previous page's URL.
805 IN_PROC_BROWSER_TEST_F(BrowserTest, CancelBeforeUnloadResetsURL) { 808 IN_PROC_BROWSER_TEST_F(BrowserTest, CancelBeforeUnloadResetsURL) {
806 GURL url(ui_test_utils::GetTestUrl(base::FilePath( 809 GURL url(ui_test_utils::GetTestUrl(base::FilePath(
807 base::FilePath::kCurrentDirectory), base::FilePath(kBeforeUnloadFile))); 810 base::FilePath::kCurrentDirectory), base::FilePath(kBeforeUnloadFile)));
808 ui_test_utils::NavigateToURL(browser(), url); 811 ui_test_utils::NavigateToURL(browser(), url);
809 812
810 // Navigate to a page that triggers a cross-site transition. 813 // Navigate to a page that triggers a cross-site transition.
811 ASSERT_TRUE(embedded_test_server()->Start()); 814 ASSERT_TRUE(embedded_test_server()->Start());
812 GURL url2(embedded_test_server()->GetURL("/title1.html")); 815 GURL url2(embedded_test_server()->GetURL("/title1.html"));
813 browser()->OpenURL(OpenURLParams( 816 browser()->OpenURL(OpenURLParams(url2, Referrer(),
814 url2, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); 817 WindowOpenDisposition::CURRENT_TAB,
818 ui::PAGE_TRANSITION_TYPED, false));
815 819
816 content::WindowedNotificationObserver host_destroyed_observer( 820 content::WindowedNotificationObserver host_destroyed_observer(
817 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, 821 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
818 content::NotificationService::AllSources()); 822 content::NotificationService::AllSources());
819 823
820 // Cancel the dialog. 824 // Cancel the dialog.
821 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); 825 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
822 alert->CloseModalDialog(); 826 alert->CloseModalDialog();
823 EXPECT_FALSE( 827 EXPECT_FALSE(
824 browser()->tab_strip_model()->GetActiveWebContents()->IsLoading()); 828 browser()->tab_strip_model()->GetActiveWebContents()->IsLoading());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 #define MAYBE_BeforeUnloadVsBeforeReload BeforeUnloadVsBeforeReload 881 #define MAYBE_BeforeUnloadVsBeforeReload BeforeUnloadVsBeforeReload
878 #endif 882 #endif
879 883
880 // Test that when a page has an onunload handler, reloading a page shows a 884 // Test that when a page has an onunload handler, reloading a page shows a
881 // different dialog than navigating to a different page. 885 // different dialog than navigating to a different page.
882 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_BeforeUnloadVsBeforeReload) { 886 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_BeforeUnloadVsBeforeReload) {
883 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); 887 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML);
884 ui_test_utils::NavigateToURL(browser(), url); 888 ui_test_utils::NavigateToURL(browser(), url);
885 889
886 // Reload the page, and check that we get a "before reload" dialog. 890 // Reload the page, and check that we get a "before reload" dialog.
887 chrome::Reload(browser(), CURRENT_TAB); 891 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
888 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); 892 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
889 EXPECT_TRUE(static_cast<JavaScriptAppModalDialog*>(alert)->is_reload()); 893 EXPECT_TRUE(static_cast<JavaScriptAppModalDialog*>(alert)->is_reload());
890 894
891 // Cancel the reload. 895 // Cancel the reload.
892 alert->native_dialog()->CancelAppModalDialog(); 896 alert->native_dialog()->CancelAppModalDialog();
893 897
894 // Navigate to another url, and check that we get a "before unload" dialog. 898 // Navigate to another url, and check that we get a "before unload" dialog.
895 GURL url2(url::kAboutBlankURL); 899 GURL url2(url::kAboutBlankURL);
896 browser()->OpenURL(OpenURLParams( 900 browser()->OpenURL(OpenURLParams(url2, Referrer(),
897 url2, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); 901 WindowOpenDisposition::CURRENT_TAB,
902 ui::PAGE_TRANSITION_TYPED, false));
898 903
899 alert = ui_test_utils::WaitForAppModalDialog(); 904 alert = ui_test_utils::WaitForAppModalDialog();
900 EXPECT_FALSE(static_cast<JavaScriptAppModalDialog*>(alert)->is_reload()); 905 EXPECT_FALSE(static_cast<JavaScriptAppModalDialog*>(alert)->is_reload());
901 906
902 // Accept the navigation so we end up on a page without a beforeunload hook. 907 // Accept the navigation so we end up on a page without a beforeunload hook.
903 alert->native_dialog()->AcceptAppModalDialog(); 908 alert->native_dialog()->AcceptAppModalDialog();
904 } 909 }
905 910
906 // BeforeUnloadAtQuitWithTwoWindows is a regression test for 911 // BeforeUnloadAtQuitWithTwoWindows is a regression test for
907 // http://crbug.com/11842. It opens two windows, one of which has a 912 // http://crbug.com/11842. It opens two windows, one of which has a
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1419 ASSERT_TRUE(embedded_test_server()->Start()); 1424 ASSERT_TRUE(embedded_test_server()->Start());
1420 1425
1421 // Load an app. 1426 // Load an app.
1422 host_resolver()->AddRule("www.example.com", "127.0.0.1"); 1427 host_resolver()->AddRule("www.example.com", "127.0.0.1");
1423 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app/"))); 1428 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app/")));
1424 const Extension* extension_app = GetExtension(); 1429 const Extension* extension_app = GetExtension();
1425 1430
1426 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would. 1431 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would.
1427 WebContents* app_window = OpenApplication(AppLaunchParams( 1432 WebContents* app_window = OpenApplication(AppLaunchParams(
1428 browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW, 1433 browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW,
1429 NEW_WINDOW, extensions::SOURCE_TEST)); 1434 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_TEST));
1430 ASSERT_TRUE(app_window); 1435 ASSERT_TRUE(app_window);
1431 1436
1432 DevToolsWindow* devtools_window = 1437 DevToolsWindow* devtools_window =
1433 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false); 1438 DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false);
1434 1439
1435 // The launch should have created a new app browser and a dev tools browser. 1440 // The launch should have created a new app browser and a dev tools browser.
1436 ASSERT_EQ(3u, chrome::GetBrowserCount(browser()->profile())); 1441 ASSERT_EQ(3u, chrome::GetBrowserCount(browser()->profile()));
1437 1442
1438 // Find the new browsers. 1443 // Find the new browsers.
1439 Browser* app_browser = NULL; 1444 Browser* app_browser = NULL;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1539 ASSERT_TRUE(embedded_test_server()->Start()); 1544 ASSERT_TRUE(embedded_test_server()->Start());
1540 1545
1541 // Load an app 1546 // Load an app
1542 host_resolver()->AddRule("www.example.com", "127.0.0.1"); 1547 host_resolver()->AddRule("www.example.com", "127.0.0.1");
1543 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app/"))); 1548 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app/")));
1544 const Extension* extension_app = GetExtension(); 1549 const Extension* extension_app = GetExtension();
1545 1550
1546 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would. 1551 // Launch it in a window, as AppLauncherHandler::HandleLaunchApp() would.
1547 WebContents* app_window = OpenApplication(AppLaunchParams( 1552 WebContents* app_window = OpenApplication(AppLaunchParams(
1548 browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW, 1553 browser()->profile(), extension_app, extensions::LAUNCH_CONTAINER_WINDOW,
1549 NEW_WINDOW, extensions::SOURCE_TEST)); 1554 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_TEST));
1550 ASSERT_TRUE(app_window); 1555 ASSERT_TRUE(app_window);
1551 1556
1552 // Apps launched in a window from the NTP have an extensions tab helper but 1557 // Apps launched in a window from the NTP have an extensions tab helper but
1553 // do not have extension_app set in it. 1558 // do not have extension_app set in it.
1554 ASSERT_TRUE(extensions::TabHelper::FromWebContents(app_window)); 1559 ASSERT_TRUE(extensions::TabHelper::FromWebContents(app_window));
1555 EXPECT_FALSE( 1560 EXPECT_FALSE(
1556 extensions::TabHelper::FromWebContents(app_window)->extension_app()); 1561 extensions::TabHelper::FromWebContents(app_window)->extension_app());
1557 EXPECT_EQ(extensions::AppLaunchInfo::GetFullLaunchURL(extension_app), 1562 EXPECT_EQ(extensions::AppLaunchInfo::GetFullLaunchURL(extension_app),
1558 app_window->GetURL()); 1563 app_window->GetURL());
1559 1564
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1615 ui_test_utils::NavigateToURL( 1620 ui_test_utils::NavigateToURL(
1616 browser(), ui_test_utils::GetTestUrl( 1621 browser(), ui_test_utils::GetTestUrl(
1617 base::FilePath(base::FilePath::kCurrentDirectory), 1622 base::FilePath(base::FilePath::kCurrentDirectory),
1618 base::FilePath(kTitle1File))); 1623 base::FilePath(kTitle1File)));
1619 1624
1620 content::WindowedNotificationObserver back_nav_load_observer( 1625 content::WindowedNotificationObserver back_nav_load_observer(
1621 content::NOTIFICATION_LOAD_STOP, 1626 content::NOTIFICATION_LOAD_STOP,
1622 content::Source<NavigationController>( 1627 content::Source<NavigationController>(
1623 &browser()->tab_strip_model()->GetActiveWebContents()-> 1628 &browser()->tab_strip_model()->GetActiveWebContents()->
1624 GetController())); 1629 GetController()));
1625 chrome::GoBack(browser(), CURRENT_TAB); 1630 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
1626 back_nav_load_observer.Wait(); 1631 back_nav_load_observer.Wait();
1627 CommandUpdater* command_updater = 1632 CommandUpdater* command_updater =
1628 browser()->command_controller()->command_updater(); 1633 browser()->command_controller()->command_updater();
1629 EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_FORWARD)); 1634 EXPECT_TRUE(command_updater->IsCommandEnabled(IDC_FORWARD));
1630 1635
1631 content::WindowedNotificationObserver forward_nav_load_observer( 1636 content::WindowedNotificationObserver forward_nav_load_observer(
1632 content::NOTIFICATION_LOAD_STOP, 1637 content::NOTIFICATION_LOAD_STOP,
1633 content::Source<NavigationController>( 1638 content::Source<NavigationController>(
1634 &browser()->tab_strip_model()->GetActiveWebContents()-> 1639 &browser()->tab_strip_model()->GetActiveWebContents()->
1635 GetController())); 1640 GetController()));
1636 chrome::GoForward(browser(), CURRENT_TAB); 1641 chrome::GoForward(browser(), WindowOpenDisposition::CURRENT_TAB);
1637 // This check will happen before the navigation completes, since the browser 1642 // This check will happen before the navigation completes, since the browser
1638 // won't process the renderer's response until the Wait() call below. 1643 // won't process the renderer's response until the Wait() call below.
1639 EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_FORWARD)); 1644 EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_FORWARD));
1640 forward_nav_load_observer.Wait(); 1645 forward_nav_load_observer.Wait();
1641 } 1646 }
1642 1647
1643 // Makes sure certain commands are disabled when Incognito mode is forced. 1648 // Makes sure certain commands are disabled when Incognito mode is forced.
1644 IN_PROC_BROWSER_TEST_F(BrowserTest, DisableMenuItemsWhenIncognitoIsForced) { 1649 IN_PROC_BROWSER_TEST_F(BrowserTest, DisableMenuItemsWhenIncognitoIsForced) {
1645 CommandUpdater* command_updater = 1650 CommandUpdater* command_updater =
1646 browser()->command_controller()->command_updater(); 1651 browser()->command_controller()->command_updater();
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
1979 browser()->tab_strip_model()->GetActiveWebContents(); 1984 browser()->tab_strip_model()->GetActiveWebContents();
1980 MockWebContentsObserver mock_observer(web_contents); 1985 MockWebContentsObserver mock_observer(web_contents);
1981 1986
1982 ASSERT_TRUE(embedded_test_server()->Start()); 1987 ASSERT_TRUE(embedded_test_server()->Start());
1983 GURL url(embedded_test_server()->GetURL("/empty.html")); 1988 GURL url(embedded_test_server()->GetURL("/empty.html"));
1984 1989
1985 ui_test_utils::NavigateToURL(browser(), url); 1990 ui_test_utils::NavigateToURL(browser(), url);
1986 EXPECT_TRUE(mock_observer.got_user_gesture()); 1991 EXPECT_TRUE(mock_observer.got_user_gesture());
1987 1992
1988 mock_observer.set_got_user_gesture(false); 1993 mock_observer.set_got_user_gesture(false);
1989 chrome::Reload(browser(), CURRENT_TAB); 1994 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
1990 EXPECT_TRUE(mock_observer.got_user_gesture()); 1995 EXPECT_TRUE(mock_observer.got_user_gesture());
1991 } 1996 }
1992 1997
1993 // TODO(ben): this test was never enabled. It has bit-rotted since being added. 1998 // TODO(ben): this test was never enabled. It has bit-rotted since being added.
1994 // It originally lived in browser_unittest.cc, but has been moved here to make 1999 // It originally lived in browser_unittest.cc, but has been moved here to make
1995 // room for real browser unit tests. 2000 // room for real browser unit tests.
1996 #if 0 2001 #if 0
1997 class BrowserTest2 : public InProcessBrowserTest { 2002 class BrowserTest2 : public InProcessBrowserTest {
1998 public: 2003 public:
1999 BrowserTest2() { 2004 BrowserTest2() {
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
2364 int modifiers, 2369 int modifiers,
2365 blink::WebMouseEvent::Button button, 2370 blink::WebMouseEvent::Button button,
2366 WindowOpenDisposition disposition) { 2371 WindowOpenDisposition disposition) {
2367 ui_test_utils::NavigateToURL(browser, url); 2372 ui_test_utils::NavigateToURL(browser, url);
2368 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile())); 2373 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile()));
2369 EXPECT_EQ(1, browser->tab_strip_model()->count()); 2374 EXPECT_EQ(1, browser->tab_strip_model()->count());
2370 content::WebContents* web_contents = 2375 content::WebContents* web_contents =
2371 browser->tab_strip_model()->GetActiveWebContents(); 2376 browser->tab_strip_model()->GetActiveWebContents();
2372 EXPECT_EQ(url, web_contents->GetURL()); 2377 EXPECT_EQ(url, web_contents->GetURL());
2373 2378
2374 if (disposition == CURRENT_TAB) { 2379 if (disposition == WindowOpenDisposition::CURRENT_TAB) {
2375 content::WebContents* web_contents = 2380 content::WebContents* web_contents =
2376 browser->tab_strip_model()->GetActiveWebContents(); 2381 browser->tab_strip_model()->GetActiveWebContents();
2377 content::TestNavigationObserver same_tab_observer(web_contents); 2382 content::TestNavigationObserver same_tab_observer(web_contents);
2378 SimulateMouseClick(web_contents, modifiers, button); 2383 SimulateMouseClick(web_contents, modifiers, button);
2379 same_tab_observer.Wait(); 2384 same_tab_observer.Wait();
2380 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile())); 2385 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile()));
2381 EXPECT_EQ(1, browser->tab_strip_model()->count()); 2386 EXPECT_EQ(1, browser->tab_strip_model()->count());
2382 EXPECT_EQ(getSecondPageTitle(), web_contents->GetTitle()); 2387 EXPECT_EQ(getSecondPageTitle(), web_contents->GetTitle());
2383 return; 2388 return;
2384 } 2389 }
2385 2390
2386 content::WindowedNotificationObserver observer( 2391 content::WindowedNotificationObserver observer(
2387 chrome::NOTIFICATION_TAB_ADDED, 2392 chrome::NOTIFICATION_TAB_ADDED,
2388 content::NotificationService::AllSources()); 2393 content::NotificationService::AllSources());
2389 SimulateMouseClick(web_contents, modifiers, button); 2394 SimulateMouseClick(web_contents, modifiers, button);
2390 observer.Wait(); 2395 observer.Wait();
2391 2396
2392 if (disposition == NEW_WINDOW) { 2397 if (disposition == WindowOpenDisposition::NEW_WINDOW) {
2393 EXPECT_EQ(2u, chrome::GetBrowserCount(browser->profile())); 2398 EXPECT_EQ(2u, chrome::GetBrowserCount(browser->profile()));
2394 return; 2399 return;
2395 } 2400 }
2396 2401
2397 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile())); 2402 EXPECT_EQ(1u, chrome::GetBrowserCount(browser->profile()));
2398 EXPECT_EQ(2, browser->tab_strip_model()->count()); 2403 EXPECT_EQ(2, browser->tab_strip_model()->count());
2399 web_contents = browser->tab_strip_model()->GetActiveWebContents(); 2404 web_contents = browser->tab_strip_model()->GetActiveWebContents();
2400 WaitForLoadStop(web_contents); 2405 WaitForLoadStop(web_contents);
2401 if (disposition == NEW_FOREGROUND_TAB) { 2406 if (disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB) {
2402 EXPECT_EQ(getSecondPageTitle(), web_contents->GetTitle()); 2407 EXPECT_EQ(getSecondPageTitle(), web_contents->GetTitle());
2403 } else { 2408 } else {
2404 ASSERT_EQ(NEW_BACKGROUND_TAB, disposition); 2409 ASSERT_EQ(WindowOpenDisposition::NEW_BACKGROUND_TAB, disposition);
2405 EXPECT_EQ(getFirstPageTitle(), web_contents->GetTitle()); 2410 EXPECT_EQ(getFirstPageTitle(), web_contents->GetTitle());
2406 } 2411 }
2407 } 2412 }
2408 2413
2409 private: 2414 private:
2410 DISALLOW_COPY_AND_ASSIGN(ClickModifierTest); 2415 DISALLOW_COPY_AND_ASSIGN(ClickModifierTest);
2411 }; 2416 };
2412 2417
2413 // Tests for clicking on elements with handlers that run window.open. 2418 // Tests for clicking on elements with handlers that run window.open.
2414 2419
2415 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenBasicClickTest) { 2420 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenBasicClickTest) {
2416 int modifiers = 0; 2421 int modifiers = 0;
2417 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2422 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2418 WindowOpenDisposition disposition = NEW_FOREGROUND_TAB; 2423 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2419 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition); 2424 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition);
2420 } 2425 }
2421 2426
2422 // TODO(ericu): Alt-click behavior on window.open is platform-dependent and not 2427 // TODO(ericu): Alt-click behavior on window.open is platform-dependent and not
2423 // well defined. Should we add tests so we know if it changes? 2428 // well defined. Should we add tests so we know if it changes?
2424 2429
2425 // Shift-clicks open in a new window. 2430 // Shift-clicks open in a new window.
2426 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenShiftClickTest) { 2431 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenShiftClickTest) {
2427 int modifiers = blink::WebInputEvent::ShiftKey; 2432 int modifiers = blink::WebInputEvent::ShiftKey;
2428 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2433 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2429 WindowOpenDisposition disposition = NEW_WINDOW; 2434 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_WINDOW;
2430 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition); 2435 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition);
2431 } 2436 }
2432 2437
2433 // Control-clicks open in a background tab. 2438 // Control-clicks open in a background tab.
2434 // On OSX meta [the command key] takes the place of control. 2439 // On OSX meta [the command key] takes the place of control.
2435 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenControlClickTest) { 2440 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenControlClickTest) {
2436 #if defined(OS_MACOSX) 2441 #if defined(OS_MACOSX)
2437 int modifiers = blink::WebInputEvent::MetaKey; 2442 int modifiers = blink::WebInputEvent::MetaKey;
2438 #else 2443 #else
2439 int modifiers = blink::WebInputEvent::ControlKey; 2444 int modifiers = blink::WebInputEvent::ControlKey;
2440 #endif 2445 #endif
2441 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2446 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2442 WindowOpenDisposition disposition = NEW_BACKGROUND_TAB; 2447 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_BACKGROUND_TAB;
2443 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition); 2448 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition);
2444 } 2449 }
2445 2450
2446 // Control-shift-clicks open in a foreground tab. 2451 // Control-shift-clicks open in a foreground tab.
2447 // On OSX meta [the command key] takes the place of control. 2452 // On OSX meta [the command key] takes the place of control.
2448 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenControlShiftClickTest) { 2453 IN_PROC_BROWSER_TEST_F(ClickModifierTest, WindowOpenControlShiftClickTest) {
2449 #if defined(OS_MACOSX) 2454 #if defined(OS_MACOSX)
2450 int modifiers = blink::WebInputEvent::MetaKey; 2455 int modifiers = blink::WebInputEvent::MetaKey;
2451 #else 2456 #else
2452 int modifiers = blink::WebInputEvent::ControlKey; 2457 int modifiers = blink::WebInputEvent::ControlKey;
2453 #endif 2458 #endif
2454 modifiers |= blink::WebInputEvent::ShiftKey; 2459 modifiers |= blink::WebInputEvent::ShiftKey;
2455 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2460 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2456 WindowOpenDisposition disposition = NEW_FOREGROUND_TAB; 2461 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2457 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition); 2462 RunTest(browser(), GetWindowOpenURL(), modifiers, button, disposition);
2458 } 2463 }
2459 2464
2460 // Tests for clicking on normal links. 2465 // Tests for clicking on normal links.
2461 2466
2462 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefBasicClickTest) { 2467 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefBasicClickTest) {
2463 int modifiers = 0; 2468 int modifiers = 0;
2464 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2469 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2465 WindowOpenDisposition disposition = CURRENT_TAB; 2470 WindowOpenDisposition disposition = WindowOpenDisposition::CURRENT_TAB;
2466 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2471 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2467 } 2472 }
2468 2473
2469 // TODO(ericu): Alt-click behavior on links is platform-dependent and not well 2474 // TODO(ericu): Alt-click behavior on links is platform-dependent and not well
2470 // defined. Should we add tests so we know if it changes? 2475 // defined. Should we add tests so we know if it changes?
2471 2476
2472 // Shift-clicks open in a new window. 2477 // Shift-clicks open in a new window.
2473 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefShiftClickTest) { 2478 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefShiftClickTest) {
2474 int modifiers = blink::WebInputEvent::ShiftKey; 2479 int modifiers = blink::WebInputEvent::ShiftKey;
2475 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2480 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2476 WindowOpenDisposition disposition = NEW_WINDOW; 2481 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_WINDOW;
2477 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2482 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2478 } 2483 }
2479 2484
2480 // Control-clicks open in a background tab. 2485 // Control-clicks open in a background tab.
2481 // On OSX meta [the command key] takes the place of control. 2486 // On OSX meta [the command key] takes the place of control.
2482 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefControlClickTest) { 2487 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefControlClickTest) {
2483 #if defined(OS_MACOSX) 2488 #if defined(OS_MACOSX)
2484 int modifiers = blink::WebInputEvent::MetaKey; 2489 int modifiers = blink::WebInputEvent::MetaKey;
2485 #else 2490 #else
2486 int modifiers = blink::WebInputEvent::ControlKey; 2491 int modifiers = blink::WebInputEvent::ControlKey;
2487 #endif 2492 #endif
2488 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2493 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2489 WindowOpenDisposition disposition = NEW_BACKGROUND_TAB; 2494 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_BACKGROUND_TAB;
2490 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2495 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2491 } 2496 }
2492 2497
2493 // Control-shift-clicks open in a foreground tab. 2498 // Control-shift-clicks open in a foreground tab.
2494 // On OSX meta [the command key] takes the place of control. 2499 // On OSX meta [the command key] takes the place of control.
2495 // http://crbug.com/396347 2500 // http://crbug.com/396347
2496 IN_PROC_BROWSER_TEST_F(ClickModifierTest, DISABLED_HrefControlShiftClickTest) { 2501 IN_PROC_BROWSER_TEST_F(ClickModifierTest, DISABLED_HrefControlShiftClickTest) {
2497 #if defined(OS_MACOSX) 2502 #if defined(OS_MACOSX)
2498 int modifiers = blink::WebInputEvent::MetaKey; 2503 int modifiers = blink::WebInputEvent::MetaKey;
2499 #else 2504 #else
2500 int modifiers = blink::WebInputEvent::ControlKey; 2505 int modifiers = blink::WebInputEvent::ControlKey;
2501 #endif 2506 #endif
2502 modifiers |= blink::WebInputEvent::ShiftKey; 2507 modifiers |= blink::WebInputEvent::ShiftKey;
2503 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left; 2508 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Left;
2504 WindowOpenDisposition disposition = NEW_FOREGROUND_TAB; 2509 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2505 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2510 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2506 } 2511 }
2507 2512
2508 // Middle-clicks open in a background tab. 2513 // Middle-clicks open in a background tab.
2509 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefMiddleClickTest) { 2514 IN_PROC_BROWSER_TEST_F(ClickModifierTest, HrefMiddleClickTest) {
2510 int modifiers = 0; 2515 int modifiers = 0;
2511 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Middle; 2516 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Middle;
2512 WindowOpenDisposition disposition = NEW_BACKGROUND_TAB; 2517 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_BACKGROUND_TAB;
2513 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2518 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2514 } 2519 }
2515 2520
2516 // Shift-middle-clicks open in a foreground tab. 2521 // Shift-middle-clicks open in a foreground tab.
2517 // http://crbug.com/396347 2522 // http://crbug.com/396347
2518 IN_PROC_BROWSER_TEST_F(ClickModifierTest, DISABLED_HrefShiftMiddleClickTest) { 2523 IN_PROC_BROWSER_TEST_F(ClickModifierTest, DISABLED_HrefShiftMiddleClickTest) {
2519 int modifiers = blink::WebInputEvent::ShiftKey; 2524 int modifiers = blink::WebInputEvent::ShiftKey;
2520 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Middle; 2525 blink::WebMouseEvent::Button button = blink::WebMouseEvent::Button::Middle;
2521 WindowOpenDisposition disposition = NEW_FOREGROUND_TAB; 2526 WindowOpenDisposition disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2522 RunTest(browser(), GetHrefURL(), modifiers, button, disposition); 2527 RunTest(browser(), GetHrefURL(), modifiers, button, disposition);
2523 } 2528 }
2524 2529
2525 IN_PROC_BROWSER_TEST_F(BrowserTest, GetSizeForNewRenderView) { 2530 IN_PROC_BROWSER_TEST_F(BrowserTest, GetSizeForNewRenderView) {
2526 // The instant extended NTP has javascript that does not work with 2531 // The instant extended NTP has javascript that does not work with
2527 // ui_test_utils::NavigateToURL. The NTP rvh reloads when the browser tries 2532 // ui_test_utils::NavigateToURL. The NTP rvh reloads when the browser tries
2528 // to navigate away from the page, which causes the WebContents to end up in 2533 // to navigate away from the page, which causes the WebContents to end up in
2529 // an inconsistent state. (is_loaded = true, last_commited_url=ntp, 2534 // an inconsistent state. (is_loaded = true, last_commited_url=ntp,
2530 // visible_url=title1.html) 2535 // visible_url=title1.html)
2531 browser()->profile()->GetPrefs()->SetBoolean(prefs::kWebKitJavascriptEnabled, 2536 browser()->profile()->GetPrefs()->SetBoolean(prefs::kWebKitJavascriptEnabled,
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
2842 Browser* browser = new Browser(params); 2847 Browser* browser = new Browser(params);
2843 gfx::Rect bounds = browser->window()->GetBounds(); 2848 gfx::Rect bounds = browser->window()->GetBounds();
2844 2849
2845 // Should be EXPECT_EQ, but this width is inconsistent across platforms. 2850 // Should be EXPECT_EQ, but this width is inconsistent across platforms.
2846 // See https://crbug.com/567925. 2851 // See https://crbug.com/567925.
2847 EXPECT_GE(bounds.width(), 100); 2852 EXPECT_GE(bounds.width(), 100);
2848 EXPECT_EQ(122, bounds.height()); 2853 EXPECT_EQ(122, bounds.height());
2849 browser->window()->Close(); 2854 browser->window()->Close();
2850 } 2855 }
2851 } 2856 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser.cc ('k') | chrome/browser/ui/browser_command_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698