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 "app/keyboard_codes.h" | 5 #include "app/keyboard_codes.h" |
6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
9 #include "chrome/browser/browser.h" | 9 #include "chrome/browser/browser.h" |
| 10 #include "chrome/browser/browser_navigator.h" |
10 #include "chrome/browser/browser_window.h" | 11 #include "chrome/browser/browser_window.h" |
11 #include "chrome/browser/find_bar.h" | 12 #include "chrome/browser/find_bar.h" |
12 #include "chrome/browser/find_bar_controller.h" | 13 #include "chrome/browser/find_bar_controller.h" |
13 #include "chrome/browser/find_notification_details.h" | 14 #include "chrome/browser/find_notification_details.h" |
14 #include "chrome/browser/profile.h" | 15 #include "chrome/browser/profile.h" |
15 #include "chrome/browser/renderer_host/render_view_host.h" | 16 #include "chrome/browser/renderer_host/render_view_host.h" |
16 #include "chrome/browser/tab_contents/tab_contents.h" | 17 #include "chrome/browser/tab_contents/tab_contents.h" |
17 #include "chrome/browser/tab_contents/tab_contents_view.h" | 18 #include "chrome/browser/tab_contents/tab_contents_view.h" |
18 #include "chrome/browser/tabs/tab_strip_model.h" | 19 #include "chrome/browser/tabs/tab_strip_model.h" |
19 #include "chrome/common/notification_service.h" | 20 #include "chrome/common/notification_service.h" |
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
816 // First we navigate to any page. | 817 // First we navigate to any page. |
817 GURL url = test_server()->GetURL(kSimplePage); | 818 GURL url = test_server()->GetURL(kSimplePage); |
818 ui_test_utils::NavigateToURL(browser(), url); | 819 ui_test_utils::NavigateToURL(browser(), url); |
819 | 820 |
820 // Find "Default". | 821 // Find "Default". |
821 int ordinal = 0; | 822 int ordinal = 0; |
822 TabContents* tab1 = browser()->GetSelectedTabContents(); | 823 TabContents* tab1 = browser()->GetSelectedTabContents(); |
823 EXPECT_EQ(1, FindInPageWchar(tab1, L"Default", kFwd, kIgnoreCase, &ordinal)); | 824 EXPECT_EQ(1, FindInPageWchar(tab1, L"Default", kFwd, kIgnoreCase, &ordinal)); |
824 | 825 |
825 // Create a second tab. | 826 // Create a second tab. |
826 Browser::AddTabWithURLParams params(url, PageTransition::TYPED); | 827 // For some reason we can't use AddSelectedTabWithURL here on ChromeOS. It |
827 browser()->AddTabWithURL(¶ms); | 828 // could be some delicate assumption about the tab starting off unselected or |
828 EXPECT_EQ(browser(), params.target); | 829 // something relating to user gesture. |
| 830 browser::NavigateParams params(browser(), url, PageTransition::TYPED); |
| 831 params.disposition = NEW_BACKGROUND_TAB; |
| 832 params.tabstrip_add_types = TabStripModel::ADD_NONE; |
| 833 browser::Navigate(¶ms); |
829 browser()->SelectTabContentsAt(1, false); | 834 browser()->SelectTabContentsAt(1, false); |
830 TabContents* tab2 = browser()->GetSelectedTabContents(); | 835 TabContents* tab2 = browser()->GetSelectedTabContents(); |
831 EXPECT_NE(tab1, tab2); | 836 EXPECT_NE(tab1, tab2); |
832 | 837 |
833 // Find "given". | 838 // Find "given". |
834 FindInPageWchar(tab2, L"given", kFwd, kIgnoreCase, &ordinal); | 839 FindInPageWchar(tab2, L"given", kFwd, kIgnoreCase, &ordinal); |
835 | 840 |
836 // Switch back to first tab. | 841 // Switch back to first tab. |
837 browser()->SelectTabContentsAt(0, false); | 842 browser()->SelectTabContentsAt(0, false); |
838 browser()->GetFindBarController()->EndFindSession( | 843 browser()->GetFindBarController()->EndFindSession( |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
892 // First we navigate to any page. | 897 // First we navigate to any page. |
893 GURL url = test_server()->GetURL(kSimple); | 898 GURL url = test_server()->GetURL(kSimple); |
894 ui_test_utils::NavigateToURL(browser(), url); | 899 ui_test_utils::NavigateToURL(browser(), url); |
895 | 900 |
896 // Search for the word "page". | 901 // Search for the word "page". |
897 int ordinal = 0; | 902 int ordinal = 0; |
898 TabContents* tab1 = browser()->GetSelectedTabContents(); | 903 TabContents* tab1 = browser()->GetSelectedTabContents(); |
899 EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal)); | 904 EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal)); |
900 | 905 |
901 // Now create a second tab and load the same page. | 906 // Now create a second tab and load the same page. |
902 Browser::AddTabWithURLParams params(url, PageTransition::TYPED); | 907 browser()->AddSelectedTabWithURL(url, PageTransition::TYPED); |
903 browser()->AddTabWithURL(¶ms); | |
904 EXPECT_EQ(browser(), params.target); | |
905 browser()->SelectTabContentsAt(1, false); | |
906 TabContents* tab2 = browser()->GetSelectedTabContents(); | 908 TabContents* tab2 = browser()->GetSelectedTabContents(); |
907 EXPECT_NE(tab1, tab2); | 909 EXPECT_NE(tab1, tab2); |
908 | 910 |
909 // Open the Find box. | 911 // Open the Find box. |
910 EnsureFindBoxOpen(); | 912 EnsureFindBoxOpen(); |
911 | 913 |
912 // The new tab should have "page" prepopulated, since that was the last search | 914 // The new tab should have "page" prepopulated, since that was the last search |
913 // in the first tab. | 915 // in the first tab. |
914 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarText()); | 916 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarText()); |
915 } | 917 } |
(...skipping 21 matching lines...) Expand all Loading... |
937 // Open the Find box. | 939 // Open the Find box. |
938 EnsureFindBoxOpen(); | 940 EnsureFindBoxOpen(); |
939 | 941 |
940 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarText()); | 942 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarText()); |
941 | 943 |
942 // Close the Find box. | 944 // Close the Find box. |
943 browser()->GetFindBarController()->EndFindSession( | 945 browser()->GetFindBarController()->EndFindSession( |
944 FindBarController::kKeepSelection); | 946 FindBarController::kKeepSelection); |
945 | 947 |
946 // Now create a second tab and load the same page. | 948 // Now create a second tab and load the same page. |
947 Browser::AddTabWithURLParams params(url, PageTransition::TYPED); | 949 browser::NavigateParams params(browser(), url, PageTransition::TYPED); |
948 browser()->AddTabWithURL(¶ms); | 950 params.disposition = NEW_BACKGROUND_TAB; |
949 EXPECT_EQ(browser(), params.target); | 951 params.tabstrip_add_types = TabStripModel::ADD_NONE; |
| 952 browser::Navigate(¶ms); |
950 browser()->SelectTabContentsAt(1, false); | 953 browser()->SelectTabContentsAt(1, false); |
951 TabContents* tab2 = browser()->GetSelectedTabContents(); | 954 TabContents* tab2 = browser()->GetSelectedTabContents(); |
952 EXPECT_NE(tab1, tab2); | 955 EXPECT_NE(tab1, tab2); |
953 | 956 |
954 // Search for the word "text". | 957 // Search for the word "text". |
955 FindInPageWchar(tab2, L"text", kFwd, kIgnoreCase, &ordinal); | 958 FindInPageWchar(tab2, L"text", kFwd, kIgnoreCase, &ordinal); |
956 | 959 |
957 // Go back to the first tab and make sure we have NOT switched the prepopulate | 960 // Go back to the first tab and make sure we have NOT switched the prepopulate |
958 // text to "text". | 961 // text to "text". |
959 browser()->SelectTabContentsAt(0, false); | 962 browser()->SelectTabContentsAt(0, false); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1011 EnsureFindBoxOpenForBrowser(browser()); | 1014 EnsureFindBoxOpenForBrowser(browser()); |
1012 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(browser())); | 1015 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(browser())); |
1013 | 1016 |
1014 // Close the Find box. | 1017 // Close the Find box. |
1015 browser()->GetFindBarController()->EndFindSession( | 1018 browser()->GetFindBarController()->EndFindSession( |
1016 FindBarController::kKeepSelection); | 1019 FindBarController::kKeepSelection); |
1017 | 1020 |
1018 // Open a new incognito window and navigate to the same page. | 1021 // Open a new incognito window and navigate to the same page. |
1019 Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); | 1022 Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); |
1020 Browser* incognito_browser = Browser::Create(incognito_profile); | 1023 Browser* incognito_browser = Browser::Create(incognito_profile); |
1021 Browser::AddTabWithURLParams params1(url, PageTransition::START_PAGE); | 1024 incognito_browser->AddSelectedTabWithURL(url, PageTransition::START_PAGE); |
1022 incognito_browser->AddTabWithURL(¶ms1); | |
1023 EXPECT_EQ(incognito_browser, params1.target); | |
1024 ui_test_utils::WaitForNavigation( | 1025 ui_test_utils::WaitForNavigation( |
1025 &incognito_browser->GetSelectedTabContents()->controller()); | 1026 &incognito_browser->GetSelectedTabContents()->controller()); |
1026 incognito_browser->window()->Show(); | 1027 incognito_browser->window()->Show(); |
1027 | 1028 |
1028 // Open the find box and make sure that it is prepopulated with "page". | 1029 // Open the find box and make sure that it is prepopulated with "page". |
1029 EnsureFindBoxOpenForBrowser(incognito_browser); | 1030 EnsureFindBoxOpenForBrowser(incognito_browser); |
1030 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(incognito_browser)); | 1031 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(incognito_browser)); |
1031 | 1032 |
1032 // Search for the word "text" in the incognito tab. | 1033 // Search for the word "text" in the incognito tab. |
1033 TabContents* incognito_tab = incognito_browser->GetSelectedTabContents(); | 1034 TabContents* incognito_tab = incognito_browser->GetSelectedTabContents(); |
1034 EXPECT_EQ(1, FindInPageWchar(incognito_tab, L"text", | 1035 EXPECT_EQ(1, FindInPageWchar(incognito_tab, L"text", |
1035 kFwd, kIgnoreCase, &ordinal)); | 1036 kFwd, kIgnoreCase, &ordinal)); |
1036 EXPECT_EQ(ASCIIToUTF16("text"), GetFindBarTextForBrowser(incognito_browser)); | 1037 EXPECT_EQ(ASCIIToUTF16("text"), GetFindBarTextForBrowser(incognito_browser)); |
1037 | 1038 |
1038 // Close the Find box. | 1039 // Close the Find box. |
1039 incognito_browser->GetFindBarController()->EndFindSession( | 1040 incognito_browser->GetFindBarController()->EndFindSession( |
1040 FindBarController::kKeepSelection); | 1041 FindBarController::kKeepSelection); |
1041 | 1042 |
1042 // Now open a new tab in the original (non-incognito) browser. | 1043 // Now open a new tab in the original (non-incognito) browser. |
1043 Browser::AddTabWithURLParams params2(url, PageTransition::TYPED); | 1044 browser()->AddSelectedTabWithURL(url, PageTransition::TYPED); |
1044 browser()->AddTabWithURL(¶ms2); | |
1045 EXPECT_EQ(browser(), params2.target); | |
1046 browser()->SelectTabContentsAt(1, false); | |
1047 TabContents* tab2 = browser()->GetSelectedTabContents(); | 1045 TabContents* tab2 = browser()->GetSelectedTabContents(); |
1048 EXPECT_NE(tab1, tab2); | 1046 EXPECT_NE(tab1, tab2); |
1049 | 1047 |
1050 // Open the Find box and make sure it is prepopulated with the search term | 1048 // Open the Find box and make sure it is prepopulated with the search term |
1051 // from the original browser, not the search term from the incognito window. | 1049 // from the original browser, not the search term from the incognito window. |
1052 EnsureFindBoxOpenForBrowser(browser()); | 1050 EnsureFindBoxOpenForBrowser(browser()); |
1053 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(browser())); | 1051 EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(browser())); |
1054 } | 1052 } |
1055 | 1053 |
1056 // This makes sure that dismissing the find bar with kActivateSelection works. | 1054 // This makes sure that dismissing the find bar with kActivateSelection works. |
1057 IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) { | 1055 IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) { |
1058 ASSERT_TRUE(test_server()->Start()); | 1056 ASSERT_TRUE(test_server()->Start()); |
1059 | 1057 |
1060 // First we navigate to our test content. | 1058 // First we navigate to our test content. |
1061 GURL url = test_server()->GetURL(kLinkPage); | 1059 GURL url = test_server()->GetURL(kLinkPage); |
1062 ui_test_utils::NavigateToURL(browser(), url); | 1060 ui_test_utils::NavigateToURL(browser(), url); |
1063 | 1061 |
1064 TabContents* tab = browser()->GetSelectedTabContents(); | 1062 TabContents* tab = browser()->GetSelectedTabContents(); |
1065 int ordinal = 0; | 1063 int ordinal = 0; |
1066 FindInPageWchar(tab, L"link", kFwd, kIgnoreCase, &ordinal); | 1064 FindInPageWchar(tab, L"link", kFwd, kIgnoreCase, &ordinal); |
1067 EXPECT_EQ(ordinal, 1); | 1065 EXPECT_EQ(ordinal, 1); |
1068 | 1066 |
1069 // End the find session, click on the link. | 1067 // End the find session, click on the link. |
1070 tab->StopFinding(FindBarController::kActivateSelection); | 1068 tab->StopFinding(FindBarController::kActivateSelection); |
1071 EXPECT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); | 1069 EXPECT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); |
1072 } | 1070 } |
OLD | NEW |