| Index: chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
|
| diff --git a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
|
| index d7294633cc0c105ac4582a6f7d043a70bb1b8212..419984cd4231eff0b44844003053bceea423d499 100644
|
| --- a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
|
| +++ b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
|
| @@ -128,6 +128,12 @@ class FindInPageControllerTest : public InProcessBrowserTest {
|
| return find_bar->GetWidth();
|
| }
|
|
|
| + size_t GetFindBarAudibleAlertsForBrowser(Browser* browser) {
|
| + FindBarTesting* find_bar =
|
| + browser->GetFindBarController()->find_bar()->GetFindBarTesting();
|
| + return find_bar->GetAudibleAlertCount();
|
| + }
|
| +
|
| void EnsureFindBoxOpenForBrowser(Browser* browser) {
|
| chrome::ShowFindBar(browser);
|
| gfx::Point position;
|
| @@ -214,6 +220,8 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageFrames) {
|
| int ordinal = 0;
|
| WebContents* web_contents =
|
| browser()->tab_strip_model()->GetActiveWebContents();
|
| + EXPECT_EQ(0u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| EXPECT_EQ(18, FindInPageASCII(web_contents, "g",
|
| kFwd, kIgnoreCase, &ordinal));
|
| EXPECT_EQ(1, ordinal);
|
| @@ -232,9 +240,24 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageFrames) {
|
| EXPECT_EQ(1, FindInPageASCII(web_contents, "google",
|
| kFwd, kIgnoreCase, &ordinal));
|
| EXPECT_EQ(1, ordinal);
|
| + EXPECT_EQ(0u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| + EXPECT_EQ(
|
| + 0, FindInPageASCII(web_contents, "google!", kFwd, kIgnoreCase, &ordinal));
|
| + EXPECT_EQ(0, ordinal);
|
| + EXPECT_EQ(1u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| + // Extend the search string one more.
|
| + EXPECT_EQ(0, FindInPageASCII(web_contents, "google!!", kFwd, kIgnoreCase,
|
| + &ordinal));
|
| + EXPECT_EQ(0, ordinal);
|
| + EXPECT_EQ(2u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| + // "Backspace" one, make sure there's no audible alert while backspacing.
|
| EXPECT_EQ(0, FindInPageASCII(web_contents, "google!",
|
| kFwd, kIgnoreCase, &ordinal));
|
| EXPECT_EQ(0, ordinal);
|
| + EXPECT_EQ(2u, GetFindBarAudibleAlertsForBrowser(browser()));
|
|
|
| // Negative test (no matches should be found).
|
| EXPECT_EQ(0, FindInPageASCII(web_contents, "Non-existing string",
|
| @@ -301,6 +324,35 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageFormsTextAreas) {
|
| }
|
| }
|
|
|
| +// This test removes a frame after a search comes up empty, then navigates to
|
| +// a different page and verifies this doesn't cause any extraneous dings.
|
| +IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, NoAudibleAlertOnFrameChange) {
|
| + // First we navigate to our frames page.
|
| + GURL url = GetURL(kFramePage);
|
| + ui_test_utils::NavigateToURL(browser(), url);
|
| +
|
| + int ordinal = 0;
|
| + WebContents* web_contents =
|
| + browser()->tab_strip_model()->GetActiveWebContents();
|
| + EXPECT_EQ(0u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| + // Search for a non-existant string.
|
| + EXPECT_EQ(
|
| + 0, FindInPageASCII(web_contents, "google!", kFwd, kIgnoreCase, &ordinal));
|
| + EXPECT_EQ(0, ordinal);
|
| + EXPECT_EQ(1u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +
|
| + // Remove the first frame of the page.
|
| + constexpr char kRemoveFrameScript[] =
|
| + "frame = document.getElementsByTagName(\"FRAME\")[0];\n"
|
| + "frame.parentElement.removeChild(frame);\n";
|
| + ASSERT_TRUE(content::ExecuteScript(web_contents, kRemoveFrameScript));
|
| +
|
| + ui_test_utils::NavigateToURL(browser(), GetURL("specialchar.html"));
|
| +
|
| + EXPECT_EQ(1u, GetFindBarAudibleAlertsForBrowser(browser()));
|
| +}
|
| +
|
| // Verify search for text within special URLs such as chrome:history,
|
| // chrome://downloads, data directory
|
| #if defined(OS_MACOSX) || defined(OS_WIN)
|
|
|