blob: ccaa215f64d932635f7a807b9f5ace5f3d185727 [file] [log] [blame]
[email protected]806d94e2012-12-16 20:31:261// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
James Cookb0bf8e82017-04-09 17:01:445#include "ash/login_status.h"
Tetsui Ohkubo8b83e5312018-06-07 01:26:236#include "ash/public/cpp/ash_features.h"
James Cookc63b9fd2017-08-18 18:48:327#include "ash/public/cpp/ash_pref_names.h"
[email protected]806d94e2012-12-16 20:31:268#include "ash/shell.h"
James Cook346c8c62017-07-18 19:38:379#include "ash/shell_test_api.h"
Tetsui Ohkuboa6ceebd2018-10-18 03:48:0510#include "ash/system/accessibility/tray_accessibility.h"
Sammie Quonb5f32e02017-10-10 19:16:1211#include "ash/system/tray/hover_highlight_view.h"
James Cookb0bf8e82017-04-09 17:01:4412#include "ash/system/tray/system_tray.h"
jamescooka1b2a092017-06-08 15:07:5513#include "ash/system/tray/system_tray_test_api.h"
[email protected]aecb6082013-07-09 14:29:4114#include "base/callback.h"
[email protected]806d94e2012-12-16 20:31:2615#include "base/command_line.h"
Gabriel Charette078e3662017-08-28 22:59:0416#include "base/run_loop.h"
[email protected]806d94e2012-12-16 20:31:2617#include "chrome/browser/browser_process.h"
[email protected]fdf40f3e2013-07-11 23:55:4618#include "chrome/browser/chrome_notification_types.h"
[email protected]1dfebfc2013-06-04 03:14:3219#include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
[email protected]806d94e2012-12-16 20:31:2620#include "chrome/browser/chromeos/accessibility/magnification_manager.h"
[email protected]806d94e2012-12-16 20:31:2621#include "chrome/browser/chromeos/login/helper.h"
[email protected]aa8328fb2013-04-19 15:09:0622#include "chrome/browser/chromeos/login/startup_utils.h"
[email protected]806d94e2012-12-16 20:31:2623#include "chrome/browser/profiles/profile.h"
24#include "chrome/browser/profiles/profile_manager.h"
xiyuan233f4e72017-04-06 06:59:5625#include "chrome/browser/ui/ash/session_controller_client.h"
[email protected]806d94e2012-12-16 20:31:2626#include "chrome/common/chrome_switches.h"
[email protected]0b294be2013-08-17 02:18:4127#include "chrome/test/base/in_process_browser_test.h"
[email protected]806d94e2012-12-16 20:31:2628#include "chrome/test/base/testing_profile.h"
[email protected]931d1042013-04-05 17:50:4429#include "chromeos/chromeos_switches.h"
[email protected]97275822014-01-21 19:30:3630#include "components/policy/core/browser/browser_policy_connector.h"
[email protected]c4a138a2013-11-21 19:54:5731#include "components/policy/core/common/external_data_fetcher.h"
[email protected]f20a3a22013-12-03 16:12:3732#include "components/policy/core/common/mock_configuration_policy_provider.h"
[email protected]c4a138a2013-11-21 19:54:5733#include "components/policy/core/common/policy_map.h"
34#include "components/policy/core/common/policy_types.h"
brettw39d6ba42016-08-24 16:56:3835#include "components/policy/policy_constants.h"
brettwb1fc1b82016-02-02 00:19:0836#include "components/prefs/pref_service.h"
xiyuan834f3bc2016-10-26 19:40:5337#include "components/session_manager/core/session_manager.h"
[email protected]806d94e2012-12-16 20:31:2638#include "content/public/test/test_utils.h"
39#include "testing/gtest/include/gtest/gtest.h"
James Cook928f23c2017-11-09 22:45:5040#include "ui/compositor/scoped_animation_duration_scale_mode.h"
tdanderson581149422016-10-25 21:37:5841#include "ui/views/controls/button/button.h"
[email protected]a81b2c32014-03-28 06:35:0142#include "ui/views/controls/label.h"
[email protected]806d94e2012-12-16 20:31:2643#include "ui/views/widget/widget.h"
44
[email protected]5ace0c232013-05-29 00:48:4145using testing::Return;
46using testing::_;
47using testing::WithParamInterface;
48
[email protected]806d94e2012-12-16 20:31:2649namespace chromeos {
50
[email protected]5ace0c232013-05-29 00:48:4151enum PrefSettingMechanism {
52 PREF_SERVICE,
53 POLICY,
54};
55
James Cook928f23c2017-11-09 22:45:5056////////////////////////////////////////////////////////////////////////////////
57// Changing accessibility settings may change preferences, so these helpers spin
58// the message loop to ensure ash sees the change.
59
[email protected]7585f4c2013-01-10 18:26:4160void SetMagnifierEnabled(bool enabled) {
61 MagnificationManager::Get()->SetMagnifierEnabled(enabled);
James Cook928f23c2017-11-09 22:45:5062 base::RunLoop().RunUntilIdle();
[email protected]806d94e2012-12-16 20:31:2663}
64
Qiang Xu60e79032018-03-29 08:18:3165void EnableSpokenFeedback(bool enabled) {
66 AccessibilityManager::Get()->EnableSpokenFeedback(enabled);
James Cook928f23c2017-11-09 22:45:5067 base::RunLoop().RunUntilIdle();
xiyuan8c6a4112017-06-19 21:03:4968}
69
Katie D6af68c5e2018-02-14 23:21:1670void EnableSelectToSpeak(bool enabled) {
71 AccessibilityManager::Get()->SetSelectToSpeakEnabled(enabled);
72 base::RunLoop().RunUntilIdle();
73}
74
James Cook928f23c2017-11-09 22:45:5075void EnableHighContrast(bool enabled) {
76 AccessibilityManager::Get()->EnableHighContrast(enabled);
77 base::RunLoop().RunUntilIdle();
78}
79
80void EnableAutoclick(bool enabled) {
81 AccessibilityManager::Get()->EnableAutoclick(enabled);
82 base::RunLoop().RunUntilIdle();
83}
84
85void EnableVirtualKeyboard(bool enabled) {
86 AccessibilityManager::Get()->EnableVirtualKeyboard(enabled);
87 base::RunLoop().RunUntilIdle();
88}
89
90void EnableLargeCursor(bool enabled) {
91 AccessibilityManager::Get()->EnableLargeCursor(enabled);
92 base::RunLoop().RunUntilIdle();
93}
94
95void EnableMonoAudio(bool enabled) {
96 AccessibilityManager::Get()->EnableMonoAudio(enabled);
97 base::RunLoop().RunUntilIdle();
98}
99
100void SetCaretHighlightEnabled(bool enabled) {
101 AccessibilityManager::Get()->SetCaretHighlightEnabled(enabled);
102 base::RunLoop().RunUntilIdle();
103}
104
105void SetCursorHighlightEnabled(bool enabled) {
106 AccessibilityManager::Get()->SetCursorHighlightEnabled(enabled);
107 base::RunLoop().RunUntilIdle();
108}
109
110void SetFocusHighlightEnabled(bool enabled) {
111 AccessibilityManager::Get()->SetFocusHighlightEnabled(enabled);
112 base::RunLoop().RunUntilIdle();
113}
114
115void EnableStickyKeys(bool enabled) {
116 AccessibilityManager::Get()->EnableStickyKeys(enabled);
117 base::RunLoop().RunUntilIdle();
118}
119
James Cook928f23c2017-11-09 22:45:50120// Uses InProcessBrowserTest instead of OobeBaseTest because most of the tests
121// don't need to test the login screen.
[email protected]5ace0c232013-05-29 00:48:41122class TrayAccessibilityTest
[email protected]0b294be2013-08-17 02:18:41123 : public InProcessBrowserTest,
[email protected]5ace0c232013-05-29 00:48:41124 public WithParamInterface<PrefSettingMechanism> {
James Cook928f23c2017-11-09 22:45:50125 public:
126 TrayAccessibilityTest()
127 : disable_animations_(
128 ui::ScopedAnimationDurationScaleMode::ZERO_DURATION) {}
129 ~TrayAccessibilityTest() override = default;
[email protected]25cf28e2013-03-25 19:26:25130
[email protected]a81b2c32014-03-28 06:35:01131 // The profile which should be used by these tests.
[email protected]613b3f52013-12-13 23:37:06132 Profile* GetProfile() { return ProfileManager::GetActiveUserProfile(); }
133
dchengc97a0282015-01-15 23:04:24134 void SetUpInProcessBrowserTestFixture() override {
James Cook928f23c2017-11-09 22:45:50135 InProcessBrowserTest::SetUpInProcessBrowserTestFixture();
[email protected]5ace0c232013-05-29 00:48:41136 EXPECT_CALL(provider_, IsInitializationComplete(_))
137 .WillRepeatedly(Return(true));
[email protected]5ace0c232013-05-29 00:48:41138 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
[email protected]a81b2c32014-03-28 06:35:01139 }
140
[email protected]5ace0c232013-05-29 00:48:41141 void SetShowAccessibilityOptionsInSystemTrayMenu(bool value) {
142 if (GetParam() == PREF_SERVICE) {
[email protected]613b3f52013-12-13 23:37:06143 PrefService* prefs = GetProfile()->GetPrefs();
James Cookc63b9fd2017-08-18 18:48:32144 prefs->SetBoolean(ash::prefs::kShouldAlwaysShowAccessibilityMenu, value);
James Cookb601dd5c2018-01-29 21:07:19145 // Prefs are sent to ash asynchronously.
146 base::RunLoop().RunUntilIdle();
[email protected]5ace0c232013-05-29 00:48:41147 } else if (GetParam() == POLICY) {
148 policy::PolicyMap policy_map;
149 policy_map.Set(policy::key::kShowAccessibilityOptionsInSystemTrayMenu,
dcheng3b344bc22016-05-10 02:26:09150 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
fhorschig64834b712015-09-21 14:20:23151 policy::POLICY_SOURCE_CLOUD,
Jinho Bang341ce5b02018-01-17 22:46:03152 std::make_unique<base::Value>(value), nullptr);
[email protected]5ace0c232013-05-29 00:48:41153 provider_.UpdateChromePolicy(policy_map);
154 base::RunLoop().RunUntilIdle();
155 } else {
156 FAIL() << "Unknown test parameterization";
157 }
158 }
159
James Cook928f23c2017-11-09 22:45:50160 static ash::TrayAccessibility* tray() {
jamescooka1b2a092017-06-08 15:07:55161 return ash::SystemTrayTestApi(ash::Shell::Get()->GetPrimarySystemTray())
162 .tray_accessibility();
[email protected]806d94e2012-12-16 20:31:26163 }
164
James Cook928f23c2017-11-09 22:45:50165 // The "tray view" is the icon.
166 bool IsTrayIconVisible() const { return tray()->tray_view()->visible(); }
[email protected]a81b2c32014-03-28 06:35:01167
[email protected]806d94e2012-12-16 20:31:26168 views::View* CreateMenuItem() {
169 return tray()->CreateDefaultView(GetLoginStatus());
170 }
171
Evan Stadee70b0a62017-06-05 20:42:30172 void DestroyMenuItem() { return tray()->OnDefaultViewDestroyed(); }
[email protected]806d94e2012-12-16 20:31:26173
174 bool CanCreateMenuItem() {
175 views::View* menu_item_view = CreateMenuItem();
176 DestroyMenuItem();
Qiang Xu800e3892017-10-03 17:36:26177 return menu_item_view != nullptr;
[email protected]806d94e2012-12-16 20:31:26178 }
179
skye79274a2016-06-08 05:39:02180 void SetLoginStatus(ash::LoginStatus status) {
[email protected]806d94e2012-12-16 20:31:26181 tray()->UpdateAfterLoginStatusChange(status);
182 }
183
skye79274a2016-06-08 05:39:02184 ash::LoginStatus GetLoginStatus() { return tray()->login_; }
[email protected]806d94e2012-12-16 20:31:26185
186 bool CreateDetailedMenu() {
Qiang Xu800e3892017-10-03 17:36:26187 tray()->ShowDetailedView(0);
188 return tray()->detailed_menu_ != nullptr;
[email protected]806d94e2012-12-16 20:31:26189 }
190
Sammie Quonb5f32e02017-10-10 19:16:12191 ash::tray::AccessibilityDetailedView* GetDetailedMenu() {
192 return tray()->detailed_menu_;
193 }
194
[email protected]806d94e2012-12-16 20:31:26195 void CloseDetailMenu() {
Evan Stadee70b0a62017-06-05 20:42:30196 ASSERT_TRUE(tray()->detailed_menu_);
197 tray()->OnDetailedViewDestroyed();
198 EXPECT_FALSE(tray()->detailed_menu_);
[email protected]806d94e2012-12-16 20:31:26199 }
200
James Cook928f23c2017-11-09 22:45:50201 // These helpers may change prefs in ash, so they must spin the message loop
202 // to wait for chrome to observe the change.
[email protected]806d94e2012-12-16 20:31:26203 void ClickSpokenFeedbackOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12204 ash::HoverHighlightView* view =
205 tray()->detailed_menu_->spoken_feedback_view_;
Sammie Quonb5f32e02017-10-10 19:16:12206 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50207 base::RunLoop().RunUntilIdle();
[email protected]806d94e2012-12-16 20:31:26208 }
209
210 void ClickHighContrastOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12211 ash::HoverHighlightView* view = tray()->detailed_menu_->high_contrast_view_;
Sammie Quonb5f32e02017-10-10 19:16:12212 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50213 base::RunLoop().RunUntilIdle();
[email protected]806d94e2012-12-16 20:31:26214 }
215
216 void ClickScreenMagnifierOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12217 ash::HoverHighlightView* view =
218 tray()->detailed_menu_->screen_magnifier_view_;
Sammie Quonb5f32e02017-10-10 19:16:12219 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50220 base::RunLoop().RunUntilIdle();
[email protected]806d94e2012-12-16 20:31:26221 }
222
[email protected]7cfa31a2013-10-23 20:08:13223 void ClickAutoclickOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12224 ash::HoverHighlightView* view = tray()->detailed_menu_->autoclick_view_;
Sammie Quonb5f32e02017-10-10 19:16:12225 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50226 base::RunLoop().RunUntilIdle();
[email protected]abdd0d72014-02-05 17:18:07227 }
228
229 void ClickVirtualKeyboardOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12230 ash::HoverHighlightView* view =
231 tray()->detailed_menu_->virtual_keyboard_view_;
Sammie Quonb5f32e02017-10-10 19:16:12232 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50233 base::RunLoop().RunUntilIdle();
[email protected]7cfa31a2013-10-23 20:08:13234 }
235
mincha0b24ab2017-03-31 22:16:01236 void ClickLargeMouseCursorOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12237 ash::HoverHighlightView* view = tray()->detailed_menu_->large_cursor_view_;
Sammie Quonb5f32e02017-10-10 19:16:12238 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50239 base::RunLoop().RunUntilIdle();
mincha0b24ab2017-03-31 22:16:01240 }
241
242 void ClickMonoAudioOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12243 ash::HoverHighlightView* view = tray()->detailed_menu_->mono_audio_view_;
Sammie Quonb5f32e02017-10-10 19:16:12244 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50245 base::RunLoop().RunUntilIdle();
mincha0b24ab2017-03-31 22:16:01246 }
247
248 void ClickCaretHighlightOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12249 ash::HoverHighlightView* view =
250 tray()->detailed_menu_->caret_highlight_view_;
Sammie Quonb5f32e02017-10-10 19:16:12251 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50252 base::RunLoop().RunUntilIdle();
mincha0b24ab2017-03-31 22:16:01253 }
254
255 void ClickHighlightMouseCursorOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12256 ash::HoverHighlightView* view =
257 tray()->detailed_menu_->highlight_mouse_cursor_view_;
Sammie Quonb5f32e02017-10-10 19:16:12258 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50259 base::RunLoop().RunUntilIdle();
mincha0b24ab2017-03-31 22:16:01260 }
261
Sammie Quonb5f32e02017-10-10 19:16:12262 void ClickHighlightKeyboardFocusOnDetailMenu() {
263 ash::HoverHighlightView* view =
mincha0b24ab2017-03-31 22:16:01264 tray()->detailed_menu_->highlight_keyboard_focus_view_;
Sammie Quonb5f32e02017-10-10 19:16:12265 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50266 base::RunLoop().RunUntilIdle();
mincha0b24ab2017-03-31 22:16:01267 }
268
minchd9d542482017-04-07 19:29:56269 void ClickStickyKeysOnDetailMenu() {
Sammie Quonb5f32e02017-10-10 19:16:12270 ash::HoverHighlightView* view = tray()->detailed_menu_->sticky_keys_view_;
Sammie Quonb5f32e02017-10-10 19:16:12271 tray()->detailed_menu_->OnViewClicked(view);
James Cook928f23c2017-11-09 22:45:50272 base::RunLoop().RunUntilIdle();
minchd9d542482017-04-07 19:29:56273 }
274
Katie D6af68c5e2018-02-14 23:21:16275 void ClickSelectToSpeakOnDetailMenu() {
276 ash::HoverHighlightView* view =
277 tray()->detailed_menu_->select_to_speak_view_;
278 tray()->detailed_menu_->OnViewClicked(view);
279 base::RunLoop().RunUntilIdle();
280 }
281
[email protected]a81b2c32014-03-28 06:35:01282 bool IsSpokenFeedbackEnabledOnDetailMenu() const {
[email protected]806d94e2012-12-16 20:31:26283 return tray()->detailed_menu_->spoken_feedback_enabled_;
284 }
285
Katie D6af68c5e2018-02-14 23:21:16286 bool IsSelectToSpeakEnabledOnDetailMenu() const {
287 return tray()->detailed_menu_->select_to_speak_enabled_;
288 }
289
[email protected]a81b2c32014-03-28 06:35:01290 bool IsHighContrastEnabledOnDetailMenu() const {
[email protected]806d94e2012-12-16 20:31:26291 return tray()->detailed_menu_->high_contrast_enabled_;
292 }
293
[email protected]a81b2c32014-03-28 06:35:01294 bool IsScreenMagnifierEnabledOnDetailMenu() const {
[email protected]806d94e2012-12-16 20:31:26295 return tray()->detailed_menu_->screen_magnifier_enabled_;
296 }
[email protected]5ace0c232013-05-29 00:48:41297
[email protected]a81b2c32014-03-28 06:35:01298 bool IsLargeCursorEnabledOnDetailMenu() const {
[email protected]57999022013-06-07 12:52:03299 return tray()->detailed_menu_->large_cursor_enabled_;
300 }
301
[email protected]a81b2c32014-03-28 06:35:01302 bool IsAutoclickEnabledOnDetailMenu() const {
[email protected]7cfa31a2013-10-23 20:08:13303 return tray()->detailed_menu_->autoclick_enabled_;
304 }
[email protected]abdd0d72014-02-05 17:18:07305
[email protected]a81b2c32014-03-28 06:35:01306 bool IsVirtualKeyboardEnabledOnDetailMenu() const {
[email protected]abdd0d72014-02-05 17:18:07307 return tray()->detailed_menu_->virtual_keyboard_enabled_;
308 }
309
mincha0b24ab2017-03-31 22:16:01310 bool IsMonoAudioEnabledOnDetailMenu() const {
311 return tray()->detailed_menu_->mono_audio_enabled_;
312 }
313
314 bool IsCaretHighlightEnabledOnDetailMenu() const {
315 return tray()->detailed_menu_->caret_highlight_enabled_;
316 }
317
318 bool IsHighlightMouseCursorEnabledOnDetailMenu() const {
319 return tray()->detailed_menu_->highlight_mouse_cursor_enabled_;
320 }
321
322 bool IsHighlightKeyboardFocusEnabledOnDetailMenu() const {
323 return tray()->detailed_menu_->highlight_keyboard_focus_enabled_;
324 }
325
minchd9d542482017-04-07 19:29:56326 bool IsStickyKeysEnabledOnDetailMenu() const {
327 return tray()->detailed_menu_->sticky_keys_enabled_;
328 }
329
James Cook928f23c2017-11-09 22:45:50330 // Disable animations so that tray icons hide immediately.
331 ui::ScopedAnimationDurationScaleMode disable_animations_;
332
[email protected]5ace0c232013-05-29 00:48:41333 policy::MockConfigurationPolicyProvider provider_;
[email protected]806d94e2012-12-16 20:31:26334};
335
yoshiki064fa9e2015-09-04 06:32:45336IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23337 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
338 // https://crbug.com/850014
339 if (ash::features::IsSystemTrayUnifiedEnabled())
340 return;
341
[email protected]806d94e2012-12-16 20:31:26342 // Confirms that the icon is invisible just after login.
343 EXPECT_FALSE(IsTrayIconVisible());
344
James Cookfc97f0a2017-08-16 20:05:35345 // Toggling spoken feedback changes the visibility of the icon.
Qiang Xu60e79032018-03-29 08:18:31346 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26347 EXPECT_TRUE(IsTrayIconVisible());
Qiang Xu60e79032018-03-29 08:18:31348 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26349 EXPECT_FALSE(IsTrayIconVisible());
350
James Cookfc97f0a2017-08-16 20:05:35351 // Toggling high contrast changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50352 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26353 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50354 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26355 EXPECT_FALSE(IsTrayIconVisible());
356
James Cookfc97f0a2017-08-16 20:05:35357 // Toggling magnifier changes the visibility of the icon.
[email protected]7585f4c2013-01-10 18:26:41358 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26359 EXPECT_TRUE(IsTrayIconVisible());
[email protected]7585f4c2013-01-10 18:26:41360 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26361 EXPECT_FALSE(IsTrayIconVisible());
362
James Cookfc97f0a2017-08-16 20:05:35363 // Toggling automatic clicks changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50364 EnableAutoclick(true);
mincha0b24ab2017-03-31 22:16:01365 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50366 EnableAutoclick(false);
mincha0b24ab2017-03-31 22:16:01367 EXPECT_FALSE(IsTrayIconVisible());
368
[email protected]abdd0d72014-02-05 17:18:07369 // Toggling the virtual keyboard setting changes the visibility of the a11y
370 // icon.
James Cook928f23c2017-11-09 22:45:50371 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07372 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50373 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07374 EXPECT_FALSE(IsTrayIconVisible());
375
James Cookfc97f0a2017-08-16 20:05:35376 // Toggling large cursor changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50377 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01378 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50379 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01380 EXPECT_FALSE(IsTrayIconVisible());
381
James Cookfc97f0a2017-08-16 20:05:35382 // Toggling mono audio changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50383 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01384 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50385 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01386 EXPECT_FALSE(IsTrayIconVisible());
387
James Cookfc97f0a2017-08-16 20:05:35388 // Toggling caret highlight changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50389 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01390 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50391 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01392 EXPECT_FALSE(IsTrayIconVisible());
393
James Cookfc97f0a2017-08-16 20:05:35394 // Toggling highlight mouse cursor changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50395 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01396 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50397 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01398 EXPECT_FALSE(IsTrayIconVisible());
399
James Cookfc97f0a2017-08-16 20:05:35400 // Toggling highlight keyboard focus changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50401 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01402 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50403 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01404 EXPECT_FALSE(IsTrayIconVisible());
405
James Cookfc97f0a2017-08-16 20:05:35406 // Toggling sticky keys changes the visibility of the icon.
James Cook928f23c2017-11-09 22:45:50407 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56408 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50409 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56410 EXPECT_FALSE(IsTrayIconVisible());
411
Katie D6af68c5e2018-02-14 23:21:16412 // Toggling select-to-speak changes the visibility of the icon.
413 EnableSelectToSpeak(true);
414 EXPECT_TRUE(IsTrayIconVisible());
415 EnableSelectToSpeak(false);
416 EXPECT_FALSE(IsTrayIconVisible());
417
[email protected]806d94e2012-12-16 20:31:26418 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41419 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26420 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50421 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26422 EXPECT_TRUE(IsTrayIconVisible());
Qiang Xu60e79032018-03-29 08:18:31423 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26424 EXPECT_TRUE(IsTrayIconVisible());
Katie D6af68c5e2018-02-14 23:21:16425 EnableSelectToSpeak(true);
426 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50427 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07428 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50429 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01430 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50431 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01432 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50433 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01434 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50435 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01436 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50437 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01438 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50439 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56440 EXPECT_TRUE(IsTrayIconVisible());
Qiang Xu60e79032018-03-29 08:18:31441 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26442 EXPECT_TRUE(IsTrayIconVisible());
Katie D6af68c5e2018-02-14 23:21:16443 EnableSelectToSpeak(false);
444 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50445 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26446 EXPECT_TRUE(IsTrayIconVisible());
[email protected]7585f4c2013-01-10 18:26:41447 SetMagnifierEnabled(false);
[email protected]abdd0d72014-02-05 17:18:07448 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50449 EnableVirtualKeyboard(false);
mincha0b24ab2017-03-31 22:16:01450 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50451 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01452 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50453 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01454 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50455 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01456 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50457 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01458 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50459 SetFocusHighlightEnabled(false);
minchd9d542482017-04-07 19:29:56460 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50461 EnableStickyKeys(false);
[email protected]806d94e2012-12-16 20:31:26462 EXPECT_FALSE(IsTrayIconVisible());
463
James Cookc63b9fd2017-08-18 18:48:32464 // Confirms that ash::prefs::kShouldAlwaysShowAccessibilityMenu doesn't affect
[email protected]806d94e2012-12-16 20:31:26465 // the icon on the tray.
[email protected]5ace0c232013-05-29 00:48:41466 SetShowAccessibilityOptionsInSystemTrayMenu(true);
James Cook928f23c2017-11-09 22:45:50467 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26468 EXPECT_TRUE(IsTrayIconVisible());
James Cook928f23c2017-11-09 22:45:50469 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26470 EXPECT_FALSE(IsTrayIconVisible());
471}
472
yoshiki064fa9e2015-09-04 06:32:45473IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23474 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
475 // https://crbug.com/850014
476 if (ash::features::IsSystemTrayUnifiedEnabled())
477 return;
478
[email protected]5ace0c232013-05-29 00:48:41479 SetShowAccessibilityOptionsInSystemTrayMenu(false);
[email protected]806d94e2012-12-16 20:31:26480
481 // Confirms that the menu is hidden.
482 EXPECT_FALSE(CanCreateMenuItem());
483
James Cookfc97f0a2017-08-16 20:05:35484 // Toggling spoken feedback changes the visibility of the menu.
Qiang Xu60e79032018-03-29 08:18:31485 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26486 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31487 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26488 EXPECT_FALSE(CanCreateMenuItem());
489
James Cookfc97f0a2017-08-16 20:05:35490 // Toggling high contrast changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50491 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26492 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50493 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26494 EXPECT_FALSE(CanCreateMenuItem());
495
[email protected]5ace0c232013-05-29 00:48:41496 // Toggling screen magnifier changes the visibility of the menu.
[email protected]7585f4c2013-01-10 18:26:41497 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26498 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41499 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26500 EXPECT_FALSE(CanCreateMenuItem());
501
[email protected]7cfa31a2013-10-23 20:08:13502 // Toggling autoclick changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50503 EnableAutoclick(true);
[email protected]7cfa31a2013-10-23 20:08:13504 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50505 EnableAutoclick(false);
[email protected]7cfa31a2013-10-23 20:08:13506 EXPECT_FALSE(CanCreateMenuItem());
507
[email protected]abdd0d72014-02-05 17:18:07508 // Toggling virtual keyboard changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50509 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07510 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50511 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07512 EXPECT_FALSE(CanCreateMenuItem());
513
mincha0b24ab2017-03-31 22:16:01514 // Toggling large mouse cursor changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50515 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01516 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50517 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01518 EXPECT_FALSE(CanCreateMenuItem());
519
520 // Toggling mono audio changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50521 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01522 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50523 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01524 EXPECT_FALSE(CanCreateMenuItem());
525
526 // Toggling caret highlight changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50527 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01528 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50529 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01530 EXPECT_FALSE(CanCreateMenuItem());
531
532 // Toggling highlight mouse cursor changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50533 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01534 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50535 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01536 EXPECT_FALSE(CanCreateMenuItem());
537
538 // Toggling highlight keyboard focus changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50539 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01540 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50541 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01542 EXPECT_FALSE(CanCreateMenuItem());
543
minchd9d542482017-04-07 19:29:56544 // Toggling sticky keys changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50545 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56546 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50547 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56548 EXPECT_FALSE(CanCreateMenuItem());
549
Katie D6af68c5e2018-02-14 23:21:16550 // Toggling select-to-speak dragging changes the visibility of the menu.
551 EnableSelectToSpeak(true);
552 EXPECT_TRUE(CanCreateMenuItem());
553 EnableSelectToSpeak(false);
554 EXPECT_FALSE(CanCreateMenuItem());
555
[email protected]806d94e2012-12-16 20:31:26556 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41557 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26558 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50559 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26560 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31561 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26562 EXPECT_TRUE(CanCreateMenuItem());
Katie D6af68c5e2018-02-14 23:21:16563 EnableSelectToSpeak(true);
564 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50565 EnableAutoclick(true);
[email protected]7cfa31a2013-10-23 20:08:13566 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50567 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07568 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50569 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01570 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50571 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01572 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50573 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01574 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50575 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01576 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50577 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01578 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50579 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56580 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50581 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07582 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50583 EnableAutoclick(false);
[email protected]7cfa31a2013-10-23 20:08:13584 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31585 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26586 EXPECT_TRUE(CanCreateMenuItem());
Katie D6af68c5e2018-02-14 23:21:16587 EnableSelectToSpeak(false);
588 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50589 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26590 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41591 SetMagnifierEnabled(false);
mincha0b24ab2017-03-31 22:16:01592 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50593 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01594 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50595 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01596 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50597 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01598 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50599 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01600 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50601 SetFocusHighlightEnabled(false);
minchd9d542482017-04-07 19:29:56602 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50603 EnableStickyKeys(false);
[email protected]806d94e2012-12-16 20:31:26604 EXPECT_FALSE(CanCreateMenuItem());
605}
606
yoshiki064fa9e2015-09-04 06:32:45607IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23608 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
609 // https://crbug.com/850014
610 if (ash::features::IsSystemTrayUnifiedEnabled())
611 return;
612
[email protected]5ace0c232013-05-29 00:48:41613 SetShowAccessibilityOptionsInSystemTrayMenu(true);
[email protected]806d94e2012-12-16 20:31:26614
615 // Confirms that the menu is visible.
616 EXPECT_TRUE(CanCreateMenuItem());
617
[email protected]abdd0d72014-02-05 17:18:07618 // The menu remains visible regardless of toggling spoken feedback.
Qiang Xu60e79032018-03-29 08:18:31619 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26620 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31621 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26622 EXPECT_TRUE(CanCreateMenuItem());
623
[email protected]abdd0d72014-02-05 17:18:07624 // The menu remains visible regardless of toggling high contrast.
James Cook928f23c2017-11-09 22:45:50625 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26626 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50627 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26628 EXPECT_TRUE(CanCreateMenuItem());
629
[email protected]abdd0d72014-02-05 17:18:07630 // The menu remains visible regardless of toggling screen magnifier.
[email protected]7585f4c2013-01-10 18:26:41631 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26632 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41633 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26634 EXPECT_TRUE(CanCreateMenuItem());
635
[email protected]abdd0d72014-02-05 17:18:07636 // The menu remains visible regardless of toggling autoclick.
James Cook928f23c2017-11-09 22:45:50637 EnableAutoclick(true);
[email protected]7cfa31a2013-10-23 20:08:13638 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50639 EnableAutoclick(false);
[email protected]7cfa31a2013-10-23 20:08:13640 EXPECT_TRUE(CanCreateMenuItem());
641
[email protected]abdd0d72014-02-05 17:18:07642 // The menu remains visible regardless of toggling on-screen keyboard.
James Cook928f23c2017-11-09 22:45:50643 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07644 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50645 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07646 EXPECT_TRUE(CanCreateMenuItem());
647
minchd9d542482017-04-07 19:29:56648 // The menu remains visible regardless of toggling large mouse cursor.
James Cook928f23c2017-11-09 22:45:50649 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01650 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50651 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01652 EXPECT_TRUE(CanCreateMenuItem());
653
minchd9d542482017-04-07 19:29:56654 // The menu remains visible regardless of toggling mono audio.
James Cook928f23c2017-11-09 22:45:50655 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01656 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50657 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01658 EXPECT_TRUE(CanCreateMenuItem());
659
minchd9d542482017-04-07 19:29:56660 // The menu remains visible regardless of toggling caret highlight.
James Cook928f23c2017-11-09 22:45:50661 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01662 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50663 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01664 EXPECT_TRUE(CanCreateMenuItem());
665
minchd9d542482017-04-07 19:29:56666 // The menu remains visible regardless of toggling highlight mouse cursor.
James Cook928f23c2017-11-09 22:45:50667 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01668 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50669 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01670 EXPECT_TRUE(CanCreateMenuItem());
671
minchd9d542482017-04-07 19:29:56672 // The menu remains visible regardless of toggling highlight keyboard focus.
James Cook928f23c2017-11-09 22:45:50673 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01674 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50675 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01676 EXPECT_TRUE(CanCreateMenuItem());
677
minchd9d542482017-04-07 19:29:56678 // The menu remains visible regardless of the toggling sticky keys.
James Cook928f23c2017-11-09 22:45:50679 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56680 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50681 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56682 EXPECT_TRUE(CanCreateMenuItem());
683
Katie D6af68c5e2018-02-14 23:21:16684 // The menu remains visible regardless of toggling select-to-speak.
685 EnableSelectToSpeak(true);
686 EXPECT_TRUE(CanCreateMenuItem());
687 EnableSelectToSpeak(false);
688 EXPECT_TRUE(CanCreateMenuItem());
689
[email protected]806d94e2012-12-16 20:31:26690 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41691 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26692 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50693 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26694 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31695 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26696 EXPECT_TRUE(CanCreateMenuItem());
Katie D6af68c5e2018-02-14 23:21:16697 EnableSelectToSpeak(true);
698 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50699 EnableAutoclick(true);
[email protected]7cfa31a2013-10-23 20:08:13700 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50701 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07702 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50703 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01704 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50705 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01706 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50707 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01708 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50709 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01710 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50711 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01712 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50713 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56714 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50715 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07716 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50717 EnableAutoclick(false);
[email protected]7cfa31a2013-10-23 20:08:13718 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31719 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26720 EXPECT_TRUE(CanCreateMenuItem());
Katie D6af68c5e2018-02-14 23:21:16721 EnableSelectToSpeak(false);
722 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50723 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26724 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41725 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26726 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50727 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01728 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50729 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01730 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50731 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01732 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50733 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01734 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50735 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01736 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50737 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56738 EXPECT_TRUE(CanCreateMenuItem());
[email protected]806d94e2012-12-16 20:31:26739
[email protected]5ace0c232013-05-29 00:48:41740 SetShowAccessibilityOptionsInSystemTrayMenu(false);
[email protected]806d94e2012-12-16 20:31:26741
742 // Confirms that the menu is invisible.
743 EXPECT_FALSE(CanCreateMenuItem());
744}
745
[email protected]5ace0c232013-05-29 00:48:41746IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23747 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
748 // https://crbug.com/850014
749 if (ash::features::IsSystemTrayUnifiedEnabled())
750 return;
751
skye79274a2016-06-08 05:39:02752 SetLoginStatus(ash::LoginStatus::NOT_LOGGED_IN);
[email protected]806d94e2012-12-16 20:31:26753
754 // Confirms that the menu is visible.
755 EXPECT_TRUE(CanCreateMenuItem());
756
[email protected]abdd0d72014-02-05 17:18:07757 // The menu remains visible regardless of toggling spoken feedback.
Qiang Xu60e79032018-03-29 08:18:31758 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26759 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31760 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26761 EXPECT_TRUE(CanCreateMenuItem());
762
[email protected]abdd0d72014-02-05 17:18:07763 // The menu remains visible regardless of toggling high contrast.
James Cook928f23c2017-11-09 22:45:50764 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26765 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50766 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26767 EXPECT_TRUE(CanCreateMenuItem());
768
[email protected]abdd0d72014-02-05 17:18:07769 // The menu remains visible regardless of toggling screen magnifier.
[email protected]7585f4c2013-01-10 18:26:41770 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26771 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41772 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26773 EXPECT_TRUE(CanCreateMenuItem());
774
[email protected]abdd0d72014-02-05 17:18:07775 // The menu remains visible regardless of toggling on-screen keyboard.
James Cook928f23c2017-11-09 22:45:50776 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07777 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50778 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07779 EXPECT_TRUE(CanCreateMenuItem());
780
minchd9d542482017-04-07 19:29:56781 // The menu remains visible regardless of toggling large mouse cursor.
James Cook928f23c2017-11-09 22:45:50782 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01783 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50784 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01785 EXPECT_TRUE(CanCreateMenuItem());
786
minchd9d542482017-04-07 19:29:56787 // The menu remains visible regardless of toggling mono audio.
James Cook928f23c2017-11-09 22:45:50788 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01789 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50790 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01791 EXPECT_TRUE(CanCreateMenuItem());
792
minchd9d542482017-04-07 19:29:56793 // The menu remains visible regardless of toggling caret highlight.
James Cook928f23c2017-11-09 22:45:50794 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01795 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50796 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01797 EXPECT_TRUE(CanCreateMenuItem());
798
minchd9d542482017-04-07 19:29:56799 // The menu remains visible regardless of toggling highlight mouse cursor.
James Cook928f23c2017-11-09 22:45:50800 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01801 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50802 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01803 EXPECT_TRUE(CanCreateMenuItem());
804
minchd9d542482017-04-07 19:29:56805 // The menu remains visible regardless of toggling highlight keyboard focus.
James Cook928f23c2017-11-09 22:45:50806 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01807 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50808 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01809 EXPECT_TRUE(CanCreateMenuItem());
810
minchd9d542482017-04-07 19:29:56811 // The menu remains visible regardless of toggling sticky keys.
James Cook928f23c2017-11-09 22:45:50812 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56813 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50814 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56815 EXPECT_TRUE(CanCreateMenuItem());
816
[email protected]806d94e2012-12-16 20:31:26817 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41818 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:26819 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50820 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:26821 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31822 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:26823 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50824 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:07825 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50826 EnableLargeCursor(true);
mincha0b24ab2017-03-31 22:16:01827 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50828 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:01829 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50830 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01831 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50832 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01833 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50834 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:01835 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50836 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:56837 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50838 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:07839 EXPECT_TRUE(CanCreateMenuItem());
Qiang Xu60e79032018-03-29 08:18:31840 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:26841 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50842 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:26843 EXPECT_TRUE(CanCreateMenuItem());
[email protected]7585f4c2013-01-10 18:26:41844 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:26845 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50846 EnableLargeCursor(false);
mincha0b24ab2017-03-31 22:16:01847 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50848 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:01849 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50850 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01851 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50852 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01853 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50854 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:01855 EXPECT_TRUE(CanCreateMenuItem());
James Cook928f23c2017-11-09 22:45:50856 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:56857 EXPECT_TRUE(CanCreateMenuItem());
[email protected]806d94e2012-12-16 20:31:26858
[email protected]5ace0c232013-05-29 00:48:41859 SetShowAccessibilityOptionsInSystemTrayMenu(true);
[email protected]806d94e2012-12-16 20:31:26860
[email protected]abdd0d72014-02-05 17:18:07861 // Confirms that the menu remains visible.
[email protected]806d94e2012-12-16 20:31:26862 EXPECT_TRUE(CanCreateMenuItem());
863
[email protected]5ace0c232013-05-29 00:48:41864 SetShowAccessibilityOptionsInSystemTrayMenu(false);
[email protected]806d94e2012-12-16 20:31:26865
[email protected]abdd0d72014-02-05 17:18:07866 // Confirms that the menu remains visible.
[email protected]806d94e2012-12-16 20:31:26867 EXPECT_TRUE(CanCreateMenuItem());
868}
869
James Cook78a058bc2018-03-09 21:09:44870// TODO: Move to ash_unittests.
[email protected]5ace0c232013-05-29 00:48:41871IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23872 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
873 // https://crbug.com/850014
874 if (ash::features::IsSystemTrayUnifiedEnabled())
875 return;
876
[email protected]14c95c82013-01-30 06:30:29877 // Enables high contrast mode.
James Cook928f23c2017-11-09 22:45:50878 EnableHighContrast(true);
[email protected]14c95c82013-01-30 06:30:29879 EXPECT_TRUE(CanCreateMenuItem());
880
881 // Locks the screen.
skye79274a2016-06-08 05:39:02882 SetLoginStatus(ash::LoginStatus::LOCKED);
[email protected]14c95c82013-01-30 06:30:29883 EXPECT_TRUE(CanCreateMenuItem());
884
885 // Disables high contrast mode.
James Cook928f23c2017-11-09 22:45:50886 EnableHighContrast(false);
[email protected]14c95c82013-01-30 06:30:29887
888 // Confirms that the menu is still visible.
889 EXPECT_TRUE(CanCreateMenuItem());
890}
891
yoshiki82c93e1c2015-09-02 19:33:17892IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ClickDetailMenu) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:23893 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
894 // https://crbug.com/850014
895 if (ash::features::IsSystemTrayUnifiedEnabled())
896 return;
897
skye79274a2016-06-08 05:39:02898 SetLoginStatus(ash::LoginStatus::USER);
[email protected]8bacb662013-02-27 03:15:24899
[email protected]806d94e2012-12-16 20:31:26900 // Confirms that the check item toggles the spoken feedback.
[email protected]1dfebfc2013-06-04 03:14:32901 EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
[email protected]806d94e2012-12-16 20:31:26902
903 EXPECT_TRUE(CreateDetailedMenu());
904 ClickSpokenFeedbackOnDetailMenu();
[email protected]1dfebfc2013-06-04 03:14:32905 EXPECT_TRUE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
[email protected]806d94e2012-12-16 20:31:26906
907 EXPECT_TRUE(CreateDetailedMenu());
908 ClickSpokenFeedbackOnDetailMenu();
[email protected]1dfebfc2013-06-04 03:14:32909 EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
[email protected]806d94e2012-12-16 20:31:26910
911 // Confirms that the check item toggles the high contrast.
[email protected]1dfebfc2013-06-04 03:14:32912 EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
[email protected]806d94e2012-12-16 20:31:26913
914 EXPECT_TRUE(CreateDetailedMenu());
915 ClickHighContrastOnDetailMenu();
[email protected]1dfebfc2013-06-04 03:14:32916 EXPECT_TRUE(AccessibilityManager::Get()->IsHighContrastEnabled());
[email protected]806d94e2012-12-16 20:31:26917
918 EXPECT_TRUE(CreateDetailedMenu());
919 ClickHighContrastOnDetailMenu();
[email protected]1dfebfc2013-06-04 03:14:32920 EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
[email protected]806d94e2012-12-16 20:31:26921
922 // Confirms that the check item toggles the magnifier.
[email protected]1dfebfc2013-06-04 03:14:32923 EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
[email protected]806d94e2012-12-16 20:31:26924
[email protected]7585f4c2013-01-10 18:26:41925 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
[email protected]806d94e2012-12-16 20:31:26926 EXPECT_TRUE(CreateDetailedMenu());
927 ClickScreenMagnifierOnDetailMenu();
[email protected]7585f4c2013-01-10 18:26:41928 EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled());
[email protected]806d94e2012-12-16 20:31:26929
930 EXPECT_TRUE(CreateDetailedMenu());
931 ClickScreenMagnifierOnDetailMenu();
[email protected]7585f4c2013-01-10 18:26:41932 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
[email protected]7cfa31a2013-10-23 20:08:13933
934 // Confirms that the check item toggles autoclick.
935 EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled());
936
937 EXPECT_TRUE(CreateDetailedMenu());
938 ClickAutoclickOnDetailMenu();
939 EXPECT_TRUE(AccessibilityManager::Get()->IsAutoclickEnabled());
940
941 EXPECT_TRUE(CreateDetailedMenu());
942 ClickAutoclickOnDetailMenu();
943 EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled());
[email protected]abdd0d72014-02-05 17:18:07944
945 // Confirms that the check item toggles on-screen keyboard.
946 EXPECT_FALSE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
947
948 EXPECT_TRUE(CreateDetailedMenu());
949 ClickVirtualKeyboardOnDetailMenu();
950 EXPECT_TRUE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
951
952 EXPECT_TRUE(CreateDetailedMenu());
953 ClickVirtualKeyboardOnDetailMenu();
954 EXPECT_FALSE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
mincha0b24ab2017-03-31 22:16:01955
956 // Confirms that the check item toggles large mouse cursor.
957 EXPECT_FALSE(AccessibilityManager::Get()->IsLargeCursorEnabled());
958
959 EXPECT_TRUE(CreateDetailedMenu());
960 ClickLargeMouseCursorOnDetailMenu();
961 EXPECT_TRUE(AccessibilityManager::Get()->IsLargeCursorEnabled());
962
963 EXPECT_TRUE(CreateDetailedMenu());
964 ClickLargeMouseCursorOnDetailMenu();
965 EXPECT_FALSE(AccessibilityManager::Get()->IsLargeCursorEnabled());
966
967 // Confirms that the check item toggles mono audio.
968 EXPECT_FALSE(AccessibilityManager::Get()->IsMonoAudioEnabled());
969
970 EXPECT_TRUE(CreateDetailedMenu());
971 ClickMonoAudioOnDetailMenu();
972 EXPECT_TRUE(AccessibilityManager::Get()->IsMonoAudioEnabled());
973
974 EXPECT_TRUE(CreateDetailedMenu());
975 ClickMonoAudioOnDetailMenu();
976 EXPECT_FALSE(AccessibilityManager::Get()->IsMonoAudioEnabled());
977
978 // Confirms that the check item toggles caret highlight.
979 EXPECT_FALSE(AccessibilityManager::Get()->IsCaretHighlightEnabled());
980
981 EXPECT_TRUE(CreateDetailedMenu());
982 ClickCaretHighlightOnDetailMenu();
983 EXPECT_TRUE(AccessibilityManager::Get()->IsCaretHighlightEnabled());
984
985 EXPECT_TRUE(CreateDetailedMenu());
986 ClickCaretHighlightOnDetailMenu();
987 EXPECT_FALSE(AccessibilityManager::Get()->IsCaretHighlightEnabled());
988
989 // Confirms that the check item toggles highlight mouse cursor.
990 EXPECT_FALSE(AccessibilityManager::Get()->IsCursorHighlightEnabled());
991
992 EXPECT_TRUE(CreateDetailedMenu());
993 ClickHighlightMouseCursorOnDetailMenu();
994 EXPECT_TRUE(AccessibilityManager::Get()->IsCursorHighlightEnabled());
995
996 EXPECT_TRUE(CreateDetailedMenu());
997 ClickHighlightMouseCursorOnDetailMenu();
998 EXPECT_FALSE(AccessibilityManager::Get()->IsCursorHighlightEnabled());
999
1000 // Confirms that the check item toggles highlight keyboard focus.
1001 EXPECT_FALSE(AccessibilityManager::Get()->IsFocusHighlightEnabled());
1002
1003 EXPECT_TRUE(CreateDetailedMenu());
Sammie Quonb5f32e02017-10-10 19:16:121004 ClickHighlightKeyboardFocusOnDetailMenu();
mincha0b24ab2017-03-31 22:16:011005 EXPECT_TRUE(AccessibilityManager::Get()->IsFocusHighlightEnabled());
1006
1007 EXPECT_TRUE(CreateDetailedMenu());
Sammie Quonb5f32e02017-10-10 19:16:121008 ClickHighlightKeyboardFocusOnDetailMenu();
mincha0b24ab2017-03-31 22:16:011009 EXPECT_FALSE(AccessibilityManager::Get()->IsFocusHighlightEnabled());
minchd9d542482017-04-07 19:29:561010
1011 // Confirms that the check item toggles sticky keys.
1012 EXPECT_FALSE(AccessibilityManager::Get()->IsStickyKeysEnabled());
1013
1014 EXPECT_TRUE(CreateDetailedMenu());
1015 ClickStickyKeysOnDetailMenu();
1016 EXPECT_TRUE(AccessibilityManager::Get()->IsStickyKeysEnabled());
1017
1018 EXPECT_TRUE(CreateDetailedMenu());
1019 ClickStickyKeysOnDetailMenu();
1020 EXPECT_FALSE(AccessibilityManager::Get()->IsStickyKeysEnabled());
1021
Katie D6af68c5e2018-02-14 23:21:161022 // Confirms that the check item toggles select-to-speak.
1023 EXPECT_FALSE(AccessibilityManager::Get()->IsSelectToSpeakEnabled());
1024
1025 EXPECT_TRUE(CreateDetailedMenu());
1026 ClickSelectToSpeakOnDetailMenu();
1027 EXPECT_TRUE(AccessibilityManager::Get()->IsSelectToSpeakEnabled());
1028
1029 EXPECT_TRUE(CreateDetailedMenu());
1030 ClickSelectToSpeakOnDetailMenu();
1031 EXPECT_FALSE(AccessibilityManager::Get()->IsSelectToSpeakEnabled());
[email protected]806d94e2012-12-16 20:31:261032}
1033
James Cook78a058bc2018-03-09 21:09:441034// TODO: Move to ash_unittests.
[email protected]5ace0c232013-05-29 00:48:411035IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:231036 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
1037 // https://crbug.com/850014
1038 if (ash::features::IsSystemTrayUnifiedEnabled())
1039 return;
1040
skye79274a2016-06-08 05:39:021041 SetLoginStatus(ash::LoginStatus::NOT_LOGGED_IN);
[email protected]57999022013-06-07 12:52:031042
[email protected]806d94e2012-12-16 20:31:261043 // At first, all of the check is unchecked.
1044 EXPECT_TRUE(CreateDetailedMenu());
1045 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161046 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261047 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1048 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031049 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131050 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071051 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011052 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1053 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1054 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1055 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561056 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261057 CloseDetailMenu();
1058
1059 // Enabling spoken feedback.
Qiang Xu60e79032018-03-29 08:18:311060 EnableSpokenFeedback(true);
[email protected]806d94e2012-12-16 20:31:261061 EXPECT_TRUE(CreateDetailedMenu());
1062 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161063 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261064 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1065 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031066 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131067 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071068 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011069 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1070 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1071 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1072 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561073 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261074 CloseDetailMenu();
1075
1076 // Disabling spoken feedback.
Qiang Xu60e79032018-03-29 08:18:311077 EnableSpokenFeedback(false);
[email protected]806d94e2012-12-16 20:31:261078 EXPECT_TRUE(CreateDetailedMenu());
1079 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161080 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261081 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1082 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031083 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131084 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071085 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011086 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1087 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1088 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1089 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561090 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261091 CloseDetailMenu();
1092
1093 // Enabling high contrast.
James Cook928f23c2017-11-09 22:45:501094 EnableHighContrast(true);
[email protected]806d94e2012-12-16 20:31:261095 EXPECT_TRUE(CreateDetailedMenu());
1096 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161097 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261098 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu());
1099 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031100 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131101 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071102 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011103 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1104 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1105 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1106 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561107 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261108 CloseDetailMenu();
1109
1110 // Disabling high contrast.
James Cook928f23c2017-11-09 22:45:501111 EnableHighContrast(false);
[email protected]806d94e2012-12-16 20:31:261112 EXPECT_TRUE(CreateDetailedMenu());
1113 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161114 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261115 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1116 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031117 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131118 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071119 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011120 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1121 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1122 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1123 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561124 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261125 CloseDetailMenu();
1126
1127 // Enabling full screen magnifier.
[email protected]7585f4c2013-01-10 18:26:411128 SetMagnifierEnabled(true);
[email protected]806d94e2012-12-16 20:31:261129 EXPECT_TRUE(CreateDetailedMenu());
1130 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161131 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261132 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1133 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031134 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131135 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071136 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011137 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1138 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1139 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1140 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561141 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261142 CloseDetailMenu();
1143
1144 // Disabling screen magnifier.
[email protected]7585f4c2013-01-10 18:26:411145 SetMagnifierEnabled(false);
[email protected]806d94e2012-12-16 20:31:261146 EXPECT_TRUE(CreateDetailedMenu());
1147 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161148 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261149 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1150 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031151 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131152 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071153 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011154 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1155 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1156 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1157 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561158 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031159 CloseDetailMenu();
1160
1161 // Enabling large cursor.
James Cook928f23c2017-11-09 22:45:501162 EnableLargeCursor(true);
[email protected]57999022013-06-07 12:52:031163 EXPECT_TRUE(CreateDetailedMenu());
1164 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161165 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031166 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1167 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1168 EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131169 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071170 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011171 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1172 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1173 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1174 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561175 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031176 CloseDetailMenu();
1177
1178 // Disabling large cursor.
James Cook928f23c2017-11-09 22:45:501179 EnableLargeCursor(false);
[email protected]57999022013-06-07 12:52:031180 EXPECT_TRUE(CreateDetailedMenu());
1181 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161182 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031183 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1184 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1185 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131186 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071187 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011188 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1189 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1190 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1191 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561192 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071193 CloseDetailMenu();
1194
1195 // Enable on-screen keyboard.
James Cook928f23c2017-11-09 22:45:501196 EnableVirtualKeyboard(true);
[email protected]abdd0d72014-02-05 17:18:071197 EXPECT_TRUE(CreateDetailedMenu());
1198 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161199 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071200 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1201 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1202 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1203 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1204 EXPECT_TRUE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011205 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1206 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1207 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1208 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561209 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071210 CloseDetailMenu();
1211
1212 // Disable on-screen keyboard.
James Cook928f23c2017-11-09 22:45:501213 EnableVirtualKeyboard(false);
[email protected]abdd0d72014-02-05 17:18:071214 EXPECT_TRUE(CreateDetailedMenu());
1215 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161216 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071217 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1218 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1219 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1220 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1221 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011222 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1223 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1224 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1225 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561226 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011227 CloseDetailMenu();
1228
1229 // Enabling mono audio.
James Cook928f23c2017-11-09 22:45:501230 EnableMonoAudio(true);
mincha0b24ab2017-03-31 22:16:011231 EXPECT_TRUE(CreateDetailedMenu());
1232 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161233 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011234 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1235 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1236 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1237 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1238 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1239 EXPECT_TRUE(IsMonoAudioEnabledOnDetailMenu());
1240 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1241 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1242 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561243 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011244 CloseDetailMenu();
1245
1246 // Disabling mono audio.
James Cook928f23c2017-11-09 22:45:501247 EnableMonoAudio(false);
mincha0b24ab2017-03-31 22:16:011248 EXPECT_TRUE(CreateDetailedMenu());
1249 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161250 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011251 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1252 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1253 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1254 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1255 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1256 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1257 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1258 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1259 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561260 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011261 CloseDetailMenu();
1262
1263 // Enabling caret highlight.
James Cook928f23c2017-11-09 22:45:501264 SetCaretHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:011265 EXPECT_TRUE(CreateDetailedMenu());
1266 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161267 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011268 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1269 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1270 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1271 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1272 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1273 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1274 EXPECT_TRUE(IsCaretHighlightEnabledOnDetailMenu());
1275 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1276 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561277 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011278 CloseDetailMenu();
1279
1280 // Disabling caret highlight.
James Cook928f23c2017-11-09 22:45:501281 SetCaretHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:011282 EXPECT_TRUE(CreateDetailedMenu());
1283 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161284 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011285 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1286 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1287 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1288 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1289 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1290 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1291 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1292 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1293 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561294 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011295 CloseDetailMenu();
1296
1297 // Enabling highlight mouse cursor.
James Cook928f23c2017-11-09 22:45:501298 SetCursorHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:011299 EXPECT_TRUE(CreateDetailedMenu());
1300 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161301 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011302 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1303 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1304 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1305 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1306 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1307 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1308 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1309 EXPECT_TRUE(IsHighlightMouseCursorEnabledOnDetailMenu());
1310 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561311 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011312 CloseDetailMenu();
1313
1314 // Disabling highlight mouse cursor.
James Cook928f23c2017-11-09 22:45:501315 SetCursorHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:011316 EXPECT_TRUE(CreateDetailedMenu());
1317 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161318 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011319 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1320 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1321 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1322 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1323 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1324 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1325 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1326 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1327 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561328 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011329 CloseDetailMenu();
1330
1331 // Enabling highlight keyboard focus.
James Cook928f23c2017-11-09 22:45:501332 SetFocusHighlightEnabled(true);
mincha0b24ab2017-03-31 22:16:011333 EXPECT_TRUE(CreateDetailedMenu());
1334 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161335 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011336 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1337 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1338 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1339 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1340 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1341 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1342 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1343 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1344 EXPECT_TRUE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561345 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011346 CloseDetailMenu();
1347
1348 // Disabling highlight keyboard focus.
James Cook928f23c2017-11-09 22:45:501349 SetFocusHighlightEnabled(false);
mincha0b24ab2017-03-31 22:16:011350 EXPECT_TRUE(CreateDetailedMenu());
1351 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161352 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011353 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1354 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1355 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1356 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1357 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1358 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1359 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1360 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1361 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561362 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561363 CloseDetailMenu();
1364
1365 // Enabling sticky keys.
James Cook928f23c2017-11-09 22:45:501366 EnableStickyKeys(true);
minchd9d542482017-04-07 19:29:561367 EXPECT_TRUE(CreateDetailedMenu());
1368 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161369 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561370 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1371 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1372 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1373 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1374 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1375 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1376 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1377 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1378 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
1379 EXPECT_TRUE(IsStickyKeysEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561380 CloseDetailMenu();
1381
1382 // Disabling sticky keys.
James Cook928f23c2017-11-09 22:45:501383 EnableStickyKeys(false);
minchd9d542482017-04-07 19:29:561384 EXPECT_TRUE(CreateDetailedMenu());
1385 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161386 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561387 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1388 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1389 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1390 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1391 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
1392 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1393 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1394 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1395 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
1396 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261397 CloseDetailMenu();
1398
1399 // Enabling all of the a11y features.
Qiang Xu60e79032018-03-29 08:18:311400 EnableSpokenFeedback(true);
James Cook928f23c2017-11-09 22:45:501401 EnableHighContrast(true);
[email protected]7585f4c2013-01-10 18:26:411402 SetMagnifierEnabled(true);
James Cook928f23c2017-11-09 22:45:501403 EnableLargeCursor(true);
1404 EnableVirtualKeyboard(true);
1405 EnableAutoclick(true);
1406 EnableMonoAudio(true);
1407 SetCaretHighlightEnabled(true);
1408 SetCursorHighlightEnabled(true);
1409 SetFocusHighlightEnabled(true);
1410 EnableStickyKeys(true);
[email protected]806d94e2012-12-16 20:31:261411 EXPECT_TRUE(CreateDetailedMenu());
1412 EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu());
1413 EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu());
1414 EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031415 EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011416 EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071417 EXPECT_TRUE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011418 EXPECT_TRUE(IsMonoAudioEnabledOnDetailMenu());
1419 EXPECT_TRUE(IsCaretHighlightEnabledOnDetailMenu());
1420 EXPECT_TRUE(IsHighlightMouseCursorEnabledOnDetailMenu());
1421 // Focus highlighting can't be on when spoken feedback is on
1422 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561423 EXPECT_TRUE(IsStickyKeysEnabledOnDetailMenu());
[email protected]806d94e2012-12-16 20:31:261424 CloseDetailMenu();
1425
1426 // Disabling all of the a11y features.
Qiang Xu60e79032018-03-29 08:18:311427 EnableSpokenFeedback(false);
James Cook928f23c2017-11-09 22:45:501428 EnableHighContrast(false);
[email protected]7585f4c2013-01-10 18:26:411429 SetMagnifierEnabled(false);
James Cook928f23c2017-11-09 22:45:501430 EnableLargeCursor(false);
1431 EnableVirtualKeyboard(false);
1432 EnableAutoclick(false);
1433 EnableMonoAudio(false);
1434 SetCaretHighlightEnabled(false);
1435 SetCursorHighlightEnabled(false);
1436 SetFocusHighlightEnabled(false);
1437 EnableStickyKeys(false);
[email protected]806d94e2012-12-16 20:31:261438 EXPECT_TRUE(CreateDetailedMenu());
1439 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
1440 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1441 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031442 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131443 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071444 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011445 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1446 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1447 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1448 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561449 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131450 CloseDetailMenu();
1451
[email protected]7cfa31a2013-10-23 20:08:131452 // Enabling autoclick.
James Cook928f23c2017-11-09 22:45:501453 EnableAutoclick(true);
[email protected]7cfa31a2013-10-23 20:08:131454 EXPECT_TRUE(CreateDetailedMenu());
1455 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161456 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131457 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1458 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1459 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1460 EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071461 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011462 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1463 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1464 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1465 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561466 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131467 CloseDetailMenu();
1468
1469 // Disabling autoclick.
James Cook928f23c2017-11-09 22:45:501470 EnableAutoclick(false);
[email protected]7cfa31a2013-10-23 20:08:131471 EXPECT_TRUE(CreateDetailedMenu());
1472 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
Katie D6af68c5e2018-02-14 23:21:161473 EXPECT_FALSE(IsSelectToSpeakEnabledOnDetailMenu());
[email protected]7cfa31a2013-10-23 20:08:131474 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
1475 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
1476 EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
1477 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
[email protected]abdd0d72014-02-05 17:18:071478 EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
mincha0b24ab2017-03-31 22:16:011479 EXPECT_FALSE(IsMonoAudioEnabledOnDetailMenu());
1480 EXPECT_FALSE(IsCaretHighlightEnabledOnDetailMenu());
1481 EXPECT_FALSE(IsHighlightMouseCursorEnabledOnDetailMenu());
1482 EXPECT_FALSE(IsHighlightKeyboardFocusEnabledOnDetailMenu());
minchd9d542482017-04-07 19:29:561483 EXPECT_FALSE(IsStickyKeysEnabledOnDetailMenu());
[email protected]57999022013-06-07 12:52:031484 CloseDetailMenu();
1485}
1486
Sammie Quonb5f32e02017-10-10 19:16:121487// Verify that the accessiblity system detailed menu remains open when an item
1488// is selected or deselected.
James Cook78a058bc2018-03-09 21:09:441489// TODO: Move to ash_unittests.
Sammie Quonb5f32e02017-10-10 19:16:121490IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DetailMenuRemainsOpen) {
Tetsui Ohkubo8b83e5312018-06-07 01:26:231491 // TODO(tetsui): Restore after AccessibilityManager is moved to ash.
1492 // https://crbug.com/850014
1493 if (ash::features::IsSystemTrayUnifiedEnabled())
1494 return;
1495
Sammie Quonb5f32e02017-10-10 19:16:121496 EXPECT_TRUE(CreateDetailedMenu());
Sammie Quonb5f32e02017-10-10 19:16:121497
1498 ClickAutoclickOnDetailMenu();
1499 EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu());
1500 {
1501 base::RunLoop run_loop;
1502 run_loop.RunUntilIdle();
1503 }
1504 EXPECT_TRUE(GetDetailedMenu());
1505
1506 ClickAutoclickOnDetailMenu();
1507 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
1508 {
1509 base::RunLoop run_loop;
1510 run_loop.RunUntilIdle();
1511 }
1512 EXPECT_TRUE(GetDetailedMenu());
1513}
1514
[email protected]5ace0c232013-05-29 00:48:411515INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance,
1516 TrayAccessibilityTest,
1517 testing::Values(PREF_SERVICE,
1518 POLICY));
1519
[email protected]cce1bad62013-01-04 02:26:381520} // namespace chromeos