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

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

Issue 866713002: Reland: Reenable oobe spoken feedback test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually focus the language select element. Created 5 years, 11 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 | « chrome/browser/chromeos/accessibility/speech_monitor.cc ('k') | 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 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
« no previous file with comments | « chrome/browser/chromeos/accessibility/speech_monitor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698