Index: chrome/browser/ui/views/find_bar_host_interactive_uitest.cc |
=================================================================== |
--- chrome/browser/ui/views/find_bar_host_interactive_uitest.cc (revision 68336) |
+++ chrome/browser/ui/views/find_bar_host_interactive_uitest.cc (working copy) |
@@ -174,6 +174,77 @@ |
EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
} |
+IN_PROC_BROWSER_TEST_F(FindInPageTest, FocusRestoreOnTabSwitch) { |
+ base::TimeTicks start_time = base::TimeTicks::Now(); |
+ Checkpoint("Starting test server", start_time); |
+ |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ // First we navigate to our test page (tab A). |
+ GURL url = test_server()->GetURL(kSimplePage); |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ Checkpoint("Calling Find", start_time); |
+ |
+ browser()->Find(); |
+ EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), |
+ VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); |
+ |
+ Checkpoint("GetFindBarTesting", start_time); |
+ |
+ FindBarTesting* find_bar = |
+ browser()->GetFindBarController()->find_bar()->GetFindBarTesting(); |
+ |
+ Checkpoint("Search for 'a'", start_time); |
+ |
+ // Search for 'a'. |
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(), |
+ ASCIIToUTF16("a"), true, false, NULL); |
+ EXPECT_TRUE(ASCIIToUTF16("a") == find_bar->GetFindSelectedText()); |
+ |
+ Checkpoint("Open tab B", start_time); |
+ |
+ // Open another tab (tab B). |
+ browser()->AddSelectedTabWithURL(url, PageTransition::TYPED); |
+ ASSERT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser())); |
+ |
+ Checkpoint("Open find", start_time); |
+ |
+ // Make sure Find box is open. |
+ browser()->Find(); |
+ EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), |
+ VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); |
+ |
+ Checkpoint("Search for 'b'", start_time); |
+ |
+ // Search for 'b'. |
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(), |
+ ASCIIToUTF16("b"), true, false, NULL); |
+ EXPECT_TRUE(ASCIIToUTF16("b") == find_bar->GetFindSelectedText()); |
+ |
+ Checkpoint("Focus location bar", start_time); |
+ |
+ // Set focus away from the Find bar (to the Location bar). |
+ browser()->FocusLocationBar(); |
+ EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
+ |
+ Checkpoint("Select tab A", start_time); |
+ |
+ // Select tab A. Find bar should get focus. |
+ browser()->SelectTabContentsAt(0, true); |
+ EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), |
+ VIEW_ID_FIND_IN_PAGE_TEXT_FIELD)); |
+ EXPECT_TRUE(ASCIIToUTF16("a") == find_bar->GetFindSelectedText()); |
+ |
+ Checkpoint("Select tab B", start_time); |
+ |
+ // Select tab B. Location bar should get focus. |
+ browser()->SelectTabContentsAt(1, true); |
+ EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_LOCATION_BAR)); |
+ |
+ Checkpoint("Test done", start_time); |
+} |
+ |
// This tests that whenever you clear values from the Find box and close it that |
// it respects that and doesn't show you the last search, as reported in bug: |
// http://crbug.com/40121. |