| 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.
|
|
|