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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <queue> 5 #include <queue>
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/system/tray/system_tray.h" 8 #include "ash/system/tray/system_tray.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 EXPECT_EQ("Start selection", monitor.GetNextUtterance()); 331 EXPECT_EQ("Start selection", monitor.GetNextUtterance());
332 EXPECT_EQ("Title", monitor.GetNextUtterance()); 332 EXPECT_EQ("Title", monitor.GetNextUtterance());
333 EXPECT_EQ(", selected", monitor.GetNextUtterance()); 333 EXPECT_EQ(", selected", monitor.GetNextUtterance());
334 334
335 // Press again to end the selection. 335 // Press again to end the selection.
336 SendKeyPressWithSearchAndShift(ui::VKEY_S); 336 SendKeyPressWithSearchAndShift(ui::VKEY_S);
337 EXPECT_EQ("End selection", monitor.GetNextUtterance()); 337 EXPECT_EQ("End selection", monitor.GetNextUtterance());
338 EXPECT_EQ("Title", monitor.GetNextUtterance()); 338 EXPECT_EQ("Title", monitor.GetNextUtterance());
339 } 339 }
340 340
341 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, ChromeVoxStickyMode) {
342 EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
David Tseng 2014/09/25 20:36:57 ASSERT?
dmazzoni 2014/09/25 22:49:27 Done.
343
344 SpeechMonitor monitor;
345 AccessibilityManager::Get()->EnableSpokenFeedback(
346 true, ash::A11Y_NOTIFICATION_NONE);
347 EXPECT_TRUE(monitor.SkipChromeVoxEnabledMessage());
348
349 ui_test_utils::NavigateToURL(
350 browser(),
351 GURL("data:text/html;charset=utf-8,"
352 "<label>Enter your name <input autofocus></label>"
353 "<p>One</p>"
354 "<h2>Two</h2>"));
355 while (monitor.GetNextUtterance() != "Enter your name") {
356 }
357 EXPECT_EQ("Edit text", monitor.GetNextUtterance());
358
359 // Press the sticky-key sequence: Search Search.
360 SendKeyPress(ui::VKEY_LWIN);
361 SendKeyPress(ui::VKEY_LWIN);
362 EXPECT_EQ("Sticky mode enabled", monitor.GetNextUtterance());
363
364 // Even once we hear "sticky mode enabled" from the ChromeVox background
365 // page, there's a short window of time when the content script still
366 // hasn't switched to sticky mode. That's why we're focused on a text box.
367 // Keep pressing the '/' key. If sticky mode is off, it will echo the word
368 // "slash". If sticky mode is on, it will open "Find in page". Keep pressing
369 // '/' until we get "Find in page.".
370 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.
371 SendKeyPress(ui::VKEY_OEM_2);
372 const std::string& utterance = monitor.GetNextUtterance();
373 if (utterance == "Find in page.") {
374 break;
375 } else {
376 ASSERT_EQ("slash", utterance);
377 }
378 }
379 EXPECT_EQ("Enter a search query.", monitor.GetNextUtterance());
380
381 // Press Esc to exit Find in Page mode.
382 SendKeyPress(ui::VKEY_ESCAPE);
383 EXPECT_EQ("Exited", monitor.GetNextUtterance());
384 EXPECT_EQ("Find in page.", monitor.GetNextUtterance());
385
386 // Press N H to jump to the next heading. Skip over speech in-between
387 // but make sure we end up at the heading.
388 SendKeyPress(ui::VKEY_N);
389 SendKeyPress(ui::VKEY_H);
390 while (monitor.GetNextUtterance() != "Two") {
391 }
392 EXPECT_EQ("Heading 2", monitor.GetNextUtterance());
393
394 // Press the up arrow to go to the previous element.
395 SendKeyPress(ui::VKEY_UP);
396 EXPECT_EQ("One", monitor.GetNextUtterance());
397 }
398
341 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, TouchExploreStatusTray) { 399 IN_PROC_BROWSER_TEST_P(SpokenFeedbackTest, TouchExploreStatusTray) {
342 EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled()); 400 EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
343 401
344 SpeechMonitor monitor; 402 SpeechMonitor monitor;
345 AccessibilityManager::Get()->EnableSpokenFeedback( 403 AccessibilityManager::Get()->EnableSpokenFeedback(
346 true, ash::A11Y_NOTIFICATION_NONE); 404 true, ash::A11Y_NOTIFICATION_NONE);
347 EXPECT_TRUE(monitor.SkipChromeVoxEnabledMessage()); 405 EXPECT_TRUE(monitor.SkipChromeVoxEnabledMessage());
348 DisableEarcons(); 406 DisableEarcons();
349 407
350 SimulateTouchScreenInChromeVox(); 408 SimulateTouchScreenInChromeVox();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 EXPECT_EQ("Select your language:", monitor.GetNextUtterance()); 497 EXPECT_EQ("Select your language:", monitor.GetNextUtterance());
440 EXPECT_EQ("English ( United States)", monitor.GetNextUtterance()); 498 EXPECT_EQ("English ( United States)", monitor.GetNextUtterance());
441 EXPECT_TRUE(MatchPattern(monitor.GetNextUtterance(), "Combo box * of *")); 499 EXPECT_TRUE(MatchPattern(monitor.GetNextUtterance(), "Combo box * of *"));
442 ASSERT_TRUE( 500 ASSERT_TRUE(
443 ui_test_utils::SendKeyPressToWindowSync( 501 ui_test_utils::SendKeyPressToWindowSync(
444 window, ui::VKEY_TAB, false, false, false, false)); 502 window, ui::VKEY_TAB, false, false, false, false));
445 EXPECT_EQ("Select your keyboard:", monitor.GetNextUtterance()); 503 EXPECT_EQ("Select your keyboard:", monitor.GetNextUtterance());
446 } 504 }
447 505
448 } // namespace chromeos 506 } // namespace chromeos
OLDNEW
« 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