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