Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4450)

Unified Diff: chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc

Issue 541903002: Add test for ChromeVox sticky mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sticky_key
Patch Set: Cleaned up Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
diff --git a/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc b/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
index 76ee1fe067d7992e1c61c4c561cc15cceacadafa..45731c2f93e2b397181fdef97777eba1e2892cf6 100644
--- a/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
+++ b/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
@@ -338,6 +338,64 @@ IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, ChromeVoxNavigateAndSelect) {
EXPECT_EQ("Title", monitor.GetNextUtterance());
}
+IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, ChromeVoxStickyMode) {
+ EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
David Tseng 2014/09/25 20:36:57 ASSERT?
dmazzoni 2014/09/25 22:49:27 Done.
+
+ SpeechMonitor monitor;
+ AccessibilityManager::Get()->EnableSpokenFeedback(
+ true, ash::A11Y_NOTIFICATION_NONE);
+ EXPECT_TRUE(monitor.SkipChromeVoxEnabledMessage());
+
+ ui_test_utils::NavigateToURL(
+ browser(),
+ GURL("data:text/html;charset=utf-8,"
+ "<label>Enter your name <input autofocus></label>"
+ "<p>One</p>"
+ "<h2>Two</h2>"));
+ while (monitor.GetNextUtterance() != "Enter your name") {
+ }
+ EXPECT_EQ("Edit text", monitor.GetNextUtterance());
+
+ // Press the sticky-key sequence: Search Search.
+ SendKeyPress(ui::VKEY_LWIN);
+ SendKeyPress(ui::VKEY_LWIN);
+ EXPECT_EQ("Sticky mode enabled", monitor.GetNextUtterance());
+
+ // Even once we hear "sticky mode enabled" from the ChromeVox background
+ // page, there's a short window of time when the content script still
+ // hasn't switched to sticky mode. That's why we're focused on a text box.
+ // Keep pressing the '/' key. If sticky mode is off, it will echo the word
+ // "slash". If sticky mode is on, it will open "Find in page". Keep pressing
+ // '/' until we get "Find in page.".
+ while (true) {
David Tseng 2014/09/25 20:36:57 I've had to do something similar for ChromeVox Nex
dmazzoni 2014/09/25 22:49:27 Done.
+ SendKeyPress(ui::VKEY_OEM_2);
+ const std::string& utterance = monitor.GetNextUtterance();
+ if (utterance == "Find in page.") {
+ break;
+ } else {
+ ASSERT_EQ("slash", utterance);
+ }
+ }
+ EXPECT_EQ("Enter a search query.", monitor.GetNextUtterance());
+
+ // Press Esc to exit Find in Page mode.
+ SendKeyPress(ui::VKEY_ESCAPE);
+ EXPECT_EQ("Exited", monitor.GetNextUtterance());
+ EXPECT_EQ("Find in page.", monitor.GetNextUtterance());
+
+ // Press N H to jump to the next heading. Skip over speech in-between
+ // but make sure we end up at the heading.
+ SendKeyPress(ui::VKEY_N);
+ SendKeyPress(ui::VKEY_H);
+ while (monitor.GetNextUtterance() != "Two") {
+ }
+ EXPECT_EQ("Heading 2", monitor.GetNextUtterance());
+
+ // Press the up arrow to go to the previous element.
+ SendKeyPress(ui::VKEY_UP);
+ EXPECT_EQ("One", monitor.GetNextUtterance());
+}
+
IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, TouchExploreStatusTray) {
EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698