Index: chrome/browser/find_bar_host_browsertest.cc |
=================================================================== |
--- chrome/browser/find_bar_host_browsertest.cc (revision 41081) |
+++ chrome/browser/find_bar_host_browsertest.cc (working copy) |
@@ -15,8 +15,19 @@ |
#include "chrome/common/notification_service.h" |
#include "chrome/test/in_process_browser_test.h" |
#include "chrome/test/ui_test_utils.h" |
+ |
+#if defined(TOOLKIT_VIEWS) |
#include "views/focus/focus_manager.h" |
+#endif |
+// http://crbug.com/37809 |
+#if defined(OS_LINUX) && defined(TOOLKIT_GTK) |
+#define FindDisappearOnNavigate DISABLED_FindDisappearOnNavigate |
+#define FindDisappearOnNewTabAndHistory \ |
+ DISABLED_FindDisappearOnNewTabAndHistory |
+#define FindMovesWhenObscuring DISABLED_FindMovesWhenObscuring |
+#endif |
+ |
const std::wstring kSimplePage = L"404_is_enough_for_us.html"; |
const std::wstring kFramePage = L"files/find_in_page/frames.html"; |
const std::wstring kFrameData = L"files/find_in_page/framedata_general.html"; |
@@ -30,6 +41,7 @@ |
const std::wstring kSelectChangesOrdinal = |
L"files/find_in_page/select_changes_ordinal.html"; |
const std::wstring kSimple = L"files/find_in_page/simple.html"; |
+const std::wstring kLinkPage = L"files/find_in_page/link.html"; |
const bool kBack = false; |
const bool kFwd = true; |
@@ -53,7 +65,7 @@ |
} |
}; |
-// Platform independent FindInPage that takes |const wchat_t*| |
+// Platform independent FindInPage that takes |const wchar_t*| |
// as an input. |
int FindInPageWchar(TabContents* tab, |
const wchar_t* search_str, |
@@ -178,7 +190,7 @@ |
EXPECT_EQ(1, ordinal); |
// End the find session, which should set focus to the link. |
- tab_contents->StopFinding(false); |
+ tab_contents->StopFinding(FindBarController::kKeepSelection); |
// Verify that the link is focused. |
EXPECT_STREQ("link1", FocusedOnPage(tab_contents).c_str()); |
@@ -197,7 +209,7 @@ |
&result); |
// End the find session. |
- tab_contents->StopFinding(false); |
+ tab_contents->StopFinding(FindBarController::kKeepSelection); |
// Verify that link2 is not focused. |
EXPECT_STREQ("", FocusedOnPage(tab_contents).c_str()); |
@@ -278,7 +290,7 @@ |
EXPECT_EQ(3, ordinal); |
// End the find session. |
- tab_contents->StopFinding(false); |
+ tab_contents->StopFinding(FindBarController::kKeepSelection); |
} |
// This test loads a page with frames and makes sure the ordinal returned makes |
@@ -486,8 +498,10 @@ |
GURL url2 = server->TestServerPageW(kFramePage); |
ui_test_utils::NavigateToURL(browser(), url); |
+#if defined(TOOLKIT_VIEWS) |
// Open the Find window with animations disabled. |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
browser()->ShowFindBar(); |
gfx::Point position; |
@@ -520,8 +534,10 @@ |
GURL url = server->TestServerPageW(kSimplePage); |
ui_test_utils::NavigateToURL(browser(), url); |
+#if defined(TOOLKIT_VIEWS) |
// Open the Find window with animations disabled. |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
browser()->ShowFindBar(); |
gfx::Point position; |
@@ -560,8 +576,10 @@ |
GURL url = server->TestServerPageW(kMoveIfOver); |
ui_test_utils::NavigateToURL(browser(), url); |
+#if defined(TOOLKIT_VIEWS) |
// Open the Find window with animations disabled. |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
browser()->ShowFindBar(); |
gfx::Point start_position; |
@@ -640,6 +658,7 @@ |
EXPECT_EQ(0, ordinal); |
} |
+#if defined(TOOLKIT_VIEWS) |
// Make sure Find box grabs the Esc accelerator and restores it again. |
#if defined(OS_LINUX) |
// TODO(oshima): On Gtk/Linux, a focus out event is asynchronous and |
@@ -681,8 +700,10 @@ |
focus_manager->GetCurrentTargetForAccelerator(escape); |
EXPECT_TRUE(old_target != NULL); |
+#if defined(TOOLKIT_VIEWS) |
// Open the Find window with animations disabled. |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
browser()->ShowFindBar(); |
// Our Find bar should be the new target. |
@@ -693,12 +714,14 @@ |
EXPECT_NE(new_target, old_target); |
// Close the Find box. |
- browser()->GetFindBarController()->EndFindSession(); |
+ browser()->GetFindBarController()->EndFindSession( |
+ FindBarController::kKeepSelection); |
// The accelerator for Escape should be back to what it was before. |
EXPECT_EQ(old_target, |
focus_manager->GetCurrentTargetForAccelerator(escape)); |
} |
+#endif // TOOLKIT_VIEWS |
// Make sure Find box does not become UI-inactive when no text is in the box as |
// we switch to a tab contents with an empty find string. See issue 13570. |
@@ -709,8 +732,10 @@ |
GURL url = server->TestServerPageW(kSimplePage); |
ui_test_utils::NavigateToURL(browser(), url); |
+#if defined(TOOLKIT_VIEWS) |
// Open the Find window with animations disabled. |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
browser()->ShowFindBar(); |
// Simulate a user clearing the search string. Ideally, we should be |
@@ -720,7 +745,7 @@ |
TabContents* tab_contents = browser()->GetSelectedTabContents(); |
// Stop the (non-existing) find operation, and clear the selection (which |
// signals the UI is still active). |
- tab_contents->StopFinding(true); |
+ tab_contents->StopFinding(FindBarController::kClearSelection); |
// Make sure the Find UI flag hasn't been cleared, it must be so that the UI |
// still responds to browser window resizing. |
ASSERT_TRUE(tab_contents->find_ui_active()); |
@@ -748,7 +773,8 @@ |
EXPECT_EQ(1, ordinal); |
// End the Find session, thereby making the next F3 start afresh. |
- browser()->GetFindBarController()->EndFindSession(); |
+ browser()->GetFindBarController()->EndFindSession( |
+ FindBarController::kKeepSelection); |
// Simulate F3 while Find box is closed. Should have 1 match. |
EXPECT_EQ(1, FindInPageWchar(tab, L"", kFwd, kIgnoreCase, &ordinal)); |
@@ -764,7 +790,9 @@ |
IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PreferPreviousSearch) { |
HTTPTestServer* server = StartHTTPServer(); |
+#if defined(TOOLKIT_VIEWS) |
DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
// First we navigate to any page. |
GURL url = server->TestServerPageW(kSimplePage); |
@@ -787,8 +815,31 @@ |
// Switch back to first tab. |
browser()->SelectTabContentsAt(0, false); |
- browser()->GetFindBarController()->EndFindSession(); |
+ browser()->GetFindBarController()->EndFindSession( |
+ FindBarController::kKeepSelection); |
// Simulate F3. |
ui_test_utils::FindInPage(tab1, string16(), kFwd, kIgnoreCase, &ordinal); |
EXPECT_EQ(tab1->find_text(), WideToUTF16(L"Default")); |
} |
+ |
+// This makes sure that dismissing the find bar with kActivateSelection works. |
+IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) { |
+ HTTPTestServer* server = StartHTTPServer(); |
+ |
+#if defined(TOOLKIT_VIEWS) |
+ DropdownBarHost::disable_animations_during_testing_ = true; |
+#endif |
+ |
+ // First we navigate to our test content. |
+ GURL url = server->TestServerPageW(kLinkPage); |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ TabContents* tab = browser()->GetSelectedTabContents(); |
+ int ordinal = 0; |
+ FindInPageWchar(tab, L"link", kFwd, kIgnoreCase, &ordinal); |
+ EXPECT_EQ(ordinal, 1); |
+ |
+ // End the find session, click on the link. |
+ tab->StopFinding(FindBarController::kActivateSelection); |
+ EXPECT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); |
+} |
Property changes on: chrome/browser/find_bar_host_browsertest.cc |
___________________________________________________________________ |
Added: svn:mergeinfo |