| 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 96ff6f2dfb730c08ca63a83c15c16f81be65620b..5c2e5839656f07f04b553c12ed572faa0aa656ea 100644
|
| --- a/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
|
| +++ b/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc
|
| @@ -11,8 +11,10 @@
|
| #include "base/command_line.h"
|
| #include "base/strings/string_util.h"
|
| #include "chrome/app/chrome_command_ids.h"
|
| +#include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
|
| #include "chrome/browser/chromeos/accessibility/speech_monitor.h"
|
| +#include "chrome/browser/chromeos/login/login_manager_test.h"
|
| #include "chrome/browser/chromeos/login/ui/login_display_host.h"
|
| #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
|
| #include "chrome/browser/chromeos/login/ui/webui_login_view.h"
|
| @@ -62,28 +64,22 @@ class LoggedInSpokenFeedbackTest : public InProcessBrowserTest {
|
| }
|
|
|
| void TearDownOnMainThread() override {
|
| - AccessibilityManager::SetBrailleControllerForTest(NULL);
|
| + AccessibilityManager::SetBrailleControllerForTest(nullptr);
|
| }
|
|
|
| void SendKeyPress(ui::KeyboardCode key) {
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ASSERT_TRUE(
|
| - ui_test_utils::SendKeyPressToWindowSync(
|
| - NULL, key, false, false, false, false)));
|
| + ASSERT_NO_FATAL_FAILURE(ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
|
| + nullptr, key, false, false, false, false)));
|
| }
|
|
|
| void SendKeyPressWithControl(ui::KeyboardCode key) {
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ASSERT_TRUE(
|
| - ui_test_utils::SendKeyPressToWindowSync(
|
| - NULL, key, true, false, false, false)));
|
| + ASSERT_NO_FATAL_FAILURE(ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
|
| + nullptr, key, true, false, false, false)));
|
| }
|
|
|
| void SendKeyPressWithSearchAndShift(ui::KeyboardCode key) {
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ASSERT_TRUE(
|
| - ui_test_utils::SendKeyPressToWindowSync(
|
| - NULL, key, false, true, false, true)));
|
| + ASSERT_NO_FATAL_FAILURE(ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
|
| + nullptr, key, false, true, false, true)));
|
| }
|
|
|
| void RunJavaScriptInChromeVoxBackgroundPage(const std::string& script) {
|
| @@ -102,7 +98,7 @@ class LoggedInSpokenFeedbackTest : public InProcessBrowserTest {
|
| "window.ontouchstart = function() {};");
|
| }
|
|
|
| - bool PerformAcceleratorAction(ash::AcceleratorAction action) {
|
| + bool PerformAcceleratorAction(ash::AcceleratorAction action) {
|
| ash::AcceleratorController* controller =
|
| ash::Shell::GetInstance()->accelerator_controller();
|
| return controller->PerformActionIfEnabled(action);
|
| @@ -561,20 +557,16 @@ IN_PROC_BROWSER_TEST_F(GuestSpokenFeedbackTest, FocusToolbar) {
|
| // Spoken feedback tests of the out-of-box experience.
|
| //
|
|
|
| -class OobeSpokenFeedbackTest : public InProcessBrowserTest {
|
| +class OobeSpokenFeedbackTest : public LoginManagerTest {
|
| protected:
|
| - OobeSpokenFeedbackTest() {}
|
| + OobeSpokenFeedbackTest() : LoginManagerTest(false) {}
|
| ~OobeSpokenFeedbackTest() override {}
|
|
|
| void SetUpCommandLine(base::CommandLine* command_line) override {
|
| - command_line->AppendSwitch(chromeos::switches::kLoginManager);
|
| - command_line->AppendSwitch(chromeos::switches::kForceLoginManagerInTests);
|
| - command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile, "user");
|
| - }
|
| -
|
| - void SetUpOnMainThread() override {
|
| - AccessibilityManager::Get()->
|
| - SetProfileForTest(ProfileHelper::GetSigninProfile());
|
| + LoginManagerTest::SetUpCommandLine(command_line);
|
| + // Many bots don't have keyboard/mice which triggers the HID detection
|
| + // dialog in the OOBE. Avoid confusing the tests with that.
|
| + command_line->AppendSwitch(chromeos::switches::kDisableHIDDetectionOnOOBE);
|
| }
|
|
|
| SpeechMonitor speech_monitor_;
|
| @@ -583,8 +575,7 @@ class OobeSpokenFeedbackTest : public InProcessBrowserTest {
|
| DISALLOW_COPY_AND_ASSIGN(OobeSpokenFeedbackTest);
|
| };
|
|
|
| -// Test is flaky: http://crbug.com/346797
|
| -IN_PROC_BROWSER_TEST_F(OobeSpokenFeedbackTest, DISABLED_SpokenFeedbackInOobe) {
|
| +IN_PROC_BROWSER_TEST_F(OobeSpokenFeedbackTest, SpokenFeedbackInOobe) {
|
| ui_controls::EnableUIControls();
|
| ASSERT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
|
|
|
| @@ -593,18 +584,31 @@ IN_PROC_BROWSER_TEST_F(OobeSpokenFeedbackTest, DISABLED_SpokenFeedbackInOobe) {
|
| views::Widget* widget = web_ui_login_view->GetWidget();
|
| gfx::NativeWindow window = widget->GetNativeWindow();
|
|
|
| + // We expect to be in the language select dropdown for this test to work,
|
| + // so make sure that's the case.
|
| + js_checker().Execute("$('language-select').focus()");
|
| AccessibilityManager::Get()->EnableSpokenFeedback(
|
| true, ui::A11Y_NOTIFICATION_NONE);
|
| - EXPECT_TRUE(speech_monitor_.SkipChromeVoxEnabledMessage());
|
| -
|
| - EXPECT_EQ("Select your language:", speech_monitor_.GetNextUtterance());
|
| - EXPECT_EQ("English ( United States)", speech_monitor_.GetNextUtterance());
|
| + ASSERT_TRUE(speech_monitor_.SkipChromeVoxEnabledMessage());
|
| + // There's no guarantee that ChromeVox speaks anything when injected after
|
| + // the page loads, which is by design. Tab forward and then backward
|
| + // to make sure we get the right feedback from the language and keyboard
|
| + // selection fields.
|
| + ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
|
| + window, ui::VKEY_TAB, false, false, false, false));
|
| +
|
| + while (speech_monitor_.GetNextUtterance() != "Select your keyboard:") {
|
| + }
|
| + EXPECT_EQ("U S", speech_monitor_.GetNextUtterance());
|
| EXPECT_TRUE(MatchPattern(speech_monitor_.GetNextUtterance(),
|
| "Combo box * of *"));
|
| - ASSERT_TRUE(
|
| - ui_test_utils::SendKeyPressToWindowSync(
|
| - window, ui::VKEY_TAB, false, false, false, false));
|
| - EXPECT_EQ("Select your keyboard:", speech_monitor_.GetNextUtterance());
|
| + ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync(
|
| + window, ui::VKEY_TAB, false, true /*shift*/, false, false));
|
| + while (speech_monitor_.GetNextUtterance() != "Select your language:") {
|
| + }
|
| + EXPECT_EQ("English ( United States)", speech_monitor_.GetNextUtterance());
|
| + EXPECT_TRUE(
|
| + MatchPattern(speech_monitor_.GetNextUtterance(), "Combo box * of *"));
|
| }
|
|
|
| } // namespace chromeos
|
|
|