summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_focus_uitest.cc
diff options
context:
space:
mode:
authorfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-10 22:31:07 +0000
committerfinnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-10 22:31:07 +0000
commit9bd491ee6e4c3695b2a96079c6607756bb0b13c0 (patch)
tree7caae901885c1a36639246cb310492add9fe1e99 /chrome/browser/browser_focus_uitest.cc
parente8749c99e678b18cf1b0b4051fab7d518e9ef0f9 (diff)
downloadchromium_src-9bd491ee6e4c3695b2a96079c6607756bb0b13c0.zip
chromium_src-9bd491ee6e4c3695b2a96079c6607756bb0b13c0.tar.gz
chromium_src-9bd491ee6e4c3695b2a96079c6607756bb0b13c0.tar.bz2
Fix regression with Find in page focus on trunk.
Basically, if the Find box is open, pressing Ctrl+F should set focus to the text field. This regressed when the Find box moved into web_contents_view. I have added a UI test to catch this in the future. Review URL: http://codereview.chromium.org/13721 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6748 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_focus_uitest.cc')
-rw-r--r--chrome/browser/browser_focus_uitest.cc56
1 files changed, 55 insertions, 1 deletions
diff --git a/chrome/browser/browser_focus_uitest.cc b/chrome/browser/browser_focus_uitest.cc
index c93c58b..ca89162 100644
--- a/chrome/browser/browser_focus_uitest.cc
+++ b/chrome/browser/browser_focus_uitest.cc
@@ -245,7 +245,7 @@ TEST_F(BrowserFocusTest, LocationBarLockFocus) {
automation()->GetBrowserForWindow(window.get()));
ASSERT_TRUE(browser.get() != NULL);
- // Click on the location bar.
+ // Click on the location bar.
gfx::Rect bounds;
EXPECT_TRUE(window->GetViewBounds(VIEW_ID_LOCATION_BAR, &bounds, true));
POINT click(bounds.CenterPoint().ToPOINT());
@@ -335,4 +335,58 @@ TEST_F(BrowserFocusTest, FocusTraversal) {
}
}
+// Make sure Find box can request focus, even when it is already open.
+TEST_F(BrowserFocusTest, FindFocusTest) {
+ TestServer server(kDocRoot);
+
+ // Open some page (any page that doesn't steal focus).
+ GURL url = server.TestServerPageW(kTypicalPage);
+ scoped_ptr<TabProxy> tab(GetActiveTab());
+ tab->NavigateToURL(url);
+
+ scoped_ptr<WindowProxy> window(automation()->GetActiveWindow());
+ ASSERT_TRUE(window.get() != NULL);
+ scoped_ptr<BrowserProxy> browser(
+ automation()->GetBrowserForWindow(window.get()));
+ ASSERT_TRUE(browser.get() != NULL);
+
+ // Press Ctrl+F, which will make the Find box open and request focus.
+ static const int VK_F = 0x46;
+ EXPECT_TRUE(window->SimulateOSKeyPress(VK_F, views::Event::EF_CONTROL_DOWN));
+ ::Sleep(kActionDelayMs);
+ int focused_view_id;
+ EXPECT_TRUE(window->GetFocusedViewID(&focused_view_id));
+ EXPECT_EQ(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD, focused_view_id);
+
+ // Click on the location bar.
+ gfx::Rect bounds;
+ EXPECT_TRUE(window->GetViewBounds(VIEW_ID_LOCATION_BAR, &bounds, true));
+ POINT click(bounds.CenterPoint().ToPOINT());
+ EXPECT_TRUE(window->SimulateOSClick(click,
+ views::Event::EF_LEFT_BUTTON_DOWN));
+ ::Sleep(kActionDelayMs);
+ // Make sure the location bar is focused.
+ EXPECT_TRUE(window->GetFocusedViewID(&focused_view_id));
+ EXPECT_EQ(VIEW_ID_LOCATION_BAR, focused_view_id);
+
+ // Now press Ctrl+F again and focus should move to the Find box.
+ EXPECT_TRUE(window->SimulateOSKeyPress(VK_F, views::Event::EF_CONTROL_DOWN));
+ ::Sleep(kActionDelayMs);
+ EXPECT_TRUE(window->GetFocusedViewID(&focused_view_id));
+ EXPECT_EQ(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD, focused_view_id);
+
+ // Set focus to the page.
+ EXPECT_TRUE(window->GetViewBounds(VIEW_ID_TAB_CONTAINER, &bounds, true));
+ click = bounds.CenterPoint().ToPOINT();
+ EXPECT_TRUE(window->SimulateOSClick(click,
+ views::Event::EF_LEFT_BUTTON_DOWN));
+ ::Sleep(kActionDelayMs);
+ EXPECT_TRUE(window->GetFocusedViewID(&focused_view_id));
+ EXPECT_EQ(VIEW_ID_TAB_CONTAINER, focused_view_id);
+ // Now press Ctrl+F again and focus should move to the Find box.
+ EXPECT_TRUE(window->SimulateOSKeyPress(VK_F, views::Event::EF_CONTROL_DOWN));
+ ::Sleep(kActionDelayMs);
+ EXPECT_TRUE(window->GetFocusedViewID(&focused_view_id));
+ EXPECT_EQ(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD, focused_view_id);
+}