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 |