diff options
author | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-10 22:31:07 +0000 |
---|---|---|
committer | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-10 22:31:07 +0000 |
commit | 9bd491ee6e4c3695b2a96079c6607756bb0b13c0 (patch) | |
tree | 7caae901885c1a36639246cb310492add9fe1e99 /chrome/browser/browser_focus_uitest.cc | |
parent | e8749c99e678b18cf1b0b4051fab7d518e9ef0f9 (diff) | |
download | chromium_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.cc | 56 |
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); +} |