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 |