| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 #endif | 700 #endif |
| 701 | 701 |
| 702 // Test that launching an app refocuses a tab already hosting the app. | 702 // Test that launching an app refocuses a tab already hosting the app. |
| 703 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenTab) { | 703 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenTab) { |
| 704 SetUpExtensionApp(); | 704 SetUpExtensionApp(); |
| 705 | 705 |
| 706 ASSERT_EQ(1, browser()->tab_count()); | 706 ASSERT_EQ(1, browser()->tab_count()); |
| 707 ASSERT_EQ(NULL, Browser::FindAppTab(browser(), extension_app_)); | 707 ASSERT_EQ(NULL, Browser::FindAppTab(browser(), extension_app_)); |
| 708 | 708 |
| 709 // Open a tab with the app. | 709 // Open a tab with the app. |
| 710 TabContents* tab = Browser::OpenApplicationTab(profile_, extension_app_); | 710 TabContents* tab = Browser::OpenApplicationTab(profile_, extension_app_, |
| 711 NULL); |
| 711 ASSERT_TRUE(WaitForTab(tab)); | 712 ASSERT_TRUE(WaitForTab(tab)); |
| 712 ASSERT_EQ(2, browser()->tab_count()); | 713 ASSERT_EQ(2, browser()->tab_count()); |
| 713 | 714 |
| 714 int app_tab_index = browser()->selected_index(); | 715 int app_tab_index = browser()->selected_index(); |
| 715 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; | 716 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; |
| 716 ASSERT_EQ(browser()->GetTabContentsAt(0), | 717 ASSERT_EQ(browser()->GetTabContentsAt(0), |
| 717 Browser::FindAppTab(browser(), extension_app_)); | 718 Browser::FindAppTab(browser(), extension_app_)); |
| 718 | 719 |
| 719 // Open the same app. The existing tab should stay focused. | 720 // Open the same app. The existing tab should stay focused. |
| 720 tab = Browser::OpenApplication(profile_, extension_app_->id()); | 721 tab = Browser::OpenApplication(profile_, extension_app_->id()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 | 758 |
| 758 // Test that launching an app refocuses a panel running the app. | 759 // Test that launching an app refocuses a panel running the app. |
| 759 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenPanel) { | 760 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenPanel) { |
| 760 SetUpExtensionApp(); | 761 SetUpExtensionApp(); |
| 761 | 762 |
| 762 ASSERT_EQ(1, browser()->tab_count()); | 763 ASSERT_EQ(1, browser()->tab_count()); |
| 763 ASSERT_EQ(NULL, Browser::FindAppWindowOrPanel(profile_, extension_app_)); | 764 ASSERT_EQ(NULL, Browser::FindAppWindowOrPanel(profile_, extension_app_)); |
| 764 | 765 |
| 765 // Open the app in a panel. | 766 // Open the app in a panel. |
| 766 Browser::OpenApplicationWindow(profile_, extension_app_, | 767 Browser::OpenApplicationWindow(profile_, extension_app_, |
| 767 Extension::LAUNCH_PANEL, GURL()); | 768 Extension::LAUNCH_PANEL, GURL(), NULL); |
| 768 Browser* app_panel = BrowserList::GetLastActive(); | 769 Browser* app_panel = BrowserList::GetLastActive(); |
| 769 ASSERT_TRUE(app_panel); | 770 ASSERT_TRUE(app_panel); |
| 770 ASSERT_NE(app_panel, browser()) << "New browser should have opened."; | 771 ASSERT_NE(app_panel, browser()) << "New browser should have opened."; |
| 771 ASSERT_EQ(app_panel, BrowserList::GetLastActive()); | 772 ASSERT_EQ(app_panel, BrowserList::GetLastActive()); |
| 772 ASSERT_EQ(app_panel, | 773 ASSERT_EQ(app_panel, |
| 773 Browser::FindAppWindowOrPanel(profile_, extension_app_)); | 774 Browser::FindAppWindowOrPanel(profile_, extension_app_)); |
| 774 | 775 |
| 775 // Focus the initial browser. | 776 // Focus the initial browser. |
| 776 browser()->window()->Show(); | 777 browser()->window()->Show(); |
| 777 ASSERT_EQ(browser(), BrowserList::GetLastActive()); | 778 ASSERT_EQ(browser(), BrowserList::GetLastActive()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 790 | 791 |
| 791 // Test that launching an app refocuses a window running the app. | 792 // Test that launching an app refocuses a window running the app. |
| 792 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenWindow) { | 793 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_OpenWindow) { |
| 793 SetUpExtensionApp(); | 794 SetUpExtensionApp(); |
| 794 | 795 |
| 795 ASSERT_EQ(1, browser()->tab_count()); | 796 ASSERT_EQ(1, browser()->tab_count()); |
| 796 ASSERT_EQ(NULL, Browser::FindAppWindowOrPanel(profile_, extension_app_)); | 797 ASSERT_EQ(NULL, Browser::FindAppWindowOrPanel(profile_, extension_app_)); |
| 797 | 798 |
| 798 // Open a window with the app. | 799 // Open a window with the app. |
| 799 Browser::OpenApplicationWindow(profile_, extension_app_, | 800 Browser::OpenApplicationWindow(profile_, extension_app_, |
| 800 Extension::LAUNCH_WINDOW, GURL()); | 801 Extension::LAUNCH_WINDOW, GURL(), NULL); |
| 801 Browser* app_window = BrowserList::GetLastActive(); | 802 Browser* app_window = BrowserList::GetLastActive(); |
| 802 ASSERT_TRUE(app_window); | 803 ASSERT_TRUE(app_window); |
| 803 ASSERT_NE(app_window, browser()) << "New browser should have opened."; | 804 ASSERT_NE(app_window, browser()) << "New browser should have opened."; |
| 804 | 805 |
| 805 // Focus the initial browser. | 806 // Focus the initial browser. |
| 806 browser()->window()->Show(); | 807 browser()->window()->Show(); |
| 807 ASSERT_EQ(browser(), BrowserList::GetLastActive()); | 808 ASSERT_EQ(browser(), BrowserList::GetLastActive()); |
| 808 | 809 |
| 809 // Open the app. | 810 // Open the app. |
| 810 Browser::OpenApplication(profile_, extension_app_->id()); | 811 Browser::OpenApplication(profile_, extension_app_->id()); |
| 811 | 812 |
| 812 // Focus should move to the window. | 813 // Focus should move to the window. |
| 813 ASSERT_EQ(app_window, BrowserList::GetLastActive()); | 814 ASSERT_EQ(app_window, BrowserList::GetLastActive()); |
| 814 ASSERT_EQ(app_window, | 815 ASSERT_EQ(app_window, |
| 815 Browser::FindAppWindowOrPanel(profile_, extension_app_)); | 816 Browser::FindAppWindowOrPanel(profile_, extension_app_)); |
| 816 // No new tab should have been created in the initial browser. | 817 // No new tab should have been created in the initial browser. |
| 817 ASSERT_EQ(1, browser()->tab_count()); | 818 ASSERT_EQ(1, browser()->tab_count()); |
| 818 } | 819 } |
| 819 | 820 |
| 820 // Test that if an app is opened while running in a window and a tab, | 821 // Test that if an app is opened while running in a window and a tab, |
| 821 // the window is focused. | 822 // the window is focused. |
| 822 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_WindowBeforeTab) { | 823 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_WindowBeforeTab) { |
| 823 SetUpExtensionApp(); | 824 SetUpExtensionApp(); |
| 824 | 825 |
| 825 ASSERT_EQ(1, browser()->tab_count()); | 826 ASSERT_EQ(1, browser()->tab_count()); |
| 826 | 827 |
| 827 // Open a tab with the app. | 828 // Open a tab with the app. |
| 828 Browser::OpenApplicationTab(profile_, extension_app_); | 829 Browser::OpenApplicationTab(profile_, extension_app_, NULL); |
| 829 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); | 830 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); |
| 830 ASSERT_EQ(2, browser()->tab_count()); | 831 ASSERT_EQ(2, browser()->tab_count()); |
| 831 int app_tab_index = browser()->selected_index(); | 832 int app_tab_index = browser()->selected_index(); |
| 832 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; | 833 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; |
| 833 | 834 |
| 834 // Open a window with the app. | 835 // Open a window with the app. |
| 835 Browser::OpenApplicationWindow(profile_, extension_app_, | 836 Browser::OpenApplicationWindow(profile_, extension_app_, |
| 836 Extension::LAUNCH_WINDOW, GURL()); | 837 Extension::LAUNCH_WINDOW, GURL(), NULL); |
| 837 Browser* app_window = BrowserList::GetLastActive(); | 838 Browser* app_window = BrowserList::GetLastActive(); |
| 838 ASSERT_TRUE(app_window); | 839 ASSERT_TRUE(app_window); |
| 839 ASSERT_NE(app_window, browser()) << "New browser should have opened."; | 840 ASSERT_NE(app_window, browser()) << "New browser should have opened."; |
| 840 | 841 |
| 841 // Focus the initial browser. | 842 // Focus the initial browser. |
| 842 browser()->window()->Show(); | 843 browser()->window()->Show(); |
| 843 | 844 |
| 844 // Open the app. Focus should move to the window. | 845 // Open the app. Focus should move to the window. |
| 845 Browser::OpenApplication(profile_, extension_app_->id()); | 846 Browser::OpenApplication(profile_, extension_app_->id()); |
| 846 ASSERT_EQ(app_window, BrowserList::GetLastActive()); | 847 ASSERT_EQ(app_window, BrowserList::GetLastActive()); |
| 847 } | 848 } |
| 848 | 849 |
| 849 // Test that if an app is opened while running in a panel and a tab, | 850 // Test that if an app is opened while running in a panel and a tab, |
| 850 // the panel is focused. | 851 // the panel is focused. |
| 851 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_PanelBeforeTab) { | 852 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_PanelBeforeTab) { |
| 852 SetUpExtensionApp(); | 853 SetUpExtensionApp(); |
| 853 | 854 |
| 854 ASSERT_EQ(1, browser()->tab_count()); | 855 ASSERT_EQ(1, browser()->tab_count()); |
| 855 | 856 |
| 856 // Open a tab with the app. | 857 // Open a tab with the app. |
| 857 TabContents* tab = Browser::OpenApplicationTab(profile_, extension_app_); | 858 TabContents* tab = Browser::OpenApplicationTab(profile_, extension_app_, |
| 859 NULL); |
| 858 ASSERT_TRUE(WaitForTab(tab)); | 860 ASSERT_TRUE(WaitForTab(tab)); |
| 859 ASSERT_EQ(2, browser()->tab_count()); | 861 ASSERT_EQ(2, browser()->tab_count()); |
| 860 int app_tab_index = browser()->selected_index(); | 862 int app_tab_index = browser()->selected_index(); |
| 861 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; | 863 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; |
| 862 | 864 |
| 863 // Open a panel with the app. | 865 // Open a panel with the app. |
| 864 Browser::OpenApplicationWindow(profile_, extension_app_, | 866 Browser::OpenApplicationWindow(profile_, extension_app_, |
| 865 Extension::LAUNCH_PANEL, GURL()); | 867 Extension::LAUNCH_PANEL, GURL(), NULL); |
| 866 Browser* app_panel = BrowserList::GetLastActive(); | 868 Browser* app_panel = BrowserList::GetLastActive(); |
| 867 ASSERT_TRUE(app_panel); | 869 ASSERT_TRUE(app_panel); |
| 868 ASSERT_NE(app_panel, browser()) << "New browser should have opened."; | 870 ASSERT_NE(app_panel, browser()) << "New browser should have opened."; |
| 869 | 871 |
| 870 // Focus the initial browser. | 872 // Focus the initial browser. |
| 871 browser()->window()->Show(); | 873 browser()->window()->Show(); |
| 872 | 874 |
| 873 // Open the app. Focus should move to the panel. | 875 // Open the app. Focus should move to the panel. |
| 874 Browser::OpenApplication(profile_, extension_app_->id()); | 876 Browser::OpenApplication(profile_, extension_app_->id()); |
| 875 ASSERT_EQ(app_panel, BrowserList::GetLastActive()); | 877 ASSERT_EQ(app_panel, BrowserList::GetLastActive()); |
| 876 } | 878 } |
| 877 | 879 |
| 878 // Test that if multiple tabs host an app, and that app is opened, | 880 // Test that if multiple tabs host an app, and that app is opened, |
| 879 // the tab in the current window gets focus. | 881 // the tab in the current window gets focus. |
| 880 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_TabInFocusedWindow) { | 882 IN_PROC_BROWSER_TEST_F(BrowserAppRefocusTest, MAYBE_TabInFocusedWindow) { |
| 881 SetUpExtensionApp(); | 883 SetUpExtensionApp(); |
| 882 | 884 |
| 883 ASSERT_EQ(1, browser()->tab_count()); | 885 ASSERT_EQ(1, browser()->tab_count()); |
| 884 | 886 |
| 885 Browser::OpenApplicationTab(profile_, extension_app_); | 887 Browser::OpenApplicationTab(profile_, extension_app_, NULL); |
| 886 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); | 888 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); |
| 887 ASSERT_EQ(2, browser()->tab_count()); | 889 ASSERT_EQ(2, browser()->tab_count()); |
| 888 int app_tab_index = browser()->selected_index(); | 890 int app_tab_index = browser()->selected_index(); |
| 889 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; | 891 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab."; |
| 890 | 892 |
| 891 // Open a new browser window, add an app tab. | 893 // Open a new browser window, add an app tab. |
| 892 Browser* extra_browser = CreateBrowser(profile_); | 894 Browser* extra_browser = CreateBrowser(profile_); |
| 893 ASSERT_EQ(extra_browser, BrowserList::GetLastActive()); | 895 ASSERT_EQ(extra_browser, BrowserList::GetLastActive()); |
| 894 | 896 |
| 895 Browser::OpenApplicationTab(profile_, extension_app_); | 897 Browser::OpenApplicationTab(profile_, extension_app_, NULL); |
| 896 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(extra_browser)); | 898 ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(extra_browser)); |
| 897 ASSERT_EQ(2, extra_browser->tab_count()); | 899 ASSERT_EQ(2, extra_browser->tab_count()); |
| 898 app_tab_index = extra_browser->selected_index(); | 900 app_tab_index = extra_browser->selected_index(); |
| 899 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab"; | 901 ASSERT_EQ(0, app_tab_index) << "App tab should be the left most tab"; |
| 900 | 902 |
| 901 // Open the app. Focus should move to the panel. | 903 // Open the app. Focus should move to the panel. |
| 902 Browser::OpenApplication(profile_, extension_app_->id()); | 904 Browser::OpenApplication(profile_, extension_app_->id()); |
| 903 ASSERT_EQ(extra_browser, BrowserList::GetLastActive()); | 905 ASSERT_EQ(extra_browser, BrowserList::GetLastActive()); |
| 904 ASSERT_EQ(2, extra_browser->tab_count()); | 906 ASSERT_EQ(2, extra_browser->tab_count()); |
| 905 | 907 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 983 | 985 |
| 984 // The normal browser should now have four. | 986 // The normal browser should now have four. |
| 985 EXPECT_EQ(4, browser()->tab_count()); | 987 EXPECT_EQ(4, browser()->tab_count()); |
| 986 | 988 |
| 987 // Close the additional browsers. | 989 // Close the additional browsers. |
| 988 popup_browser->CloseAllTabs(); | 990 popup_browser->CloseAllTabs(); |
| 989 app_browser->CloseAllTabs(); | 991 app_browser->CloseAllTabs(); |
| 990 app_popup_browser->CloseAllTabs(); | 992 app_popup_browser->CloseAllTabs(); |
| 991 } | 993 } |
| 992 #endif | 994 #endif |
| OLD | NEW |