blob: 79fd3046b5b6d4ce968298a09940b6595c3b85ef [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 Cookc63b9fd2017-08-18 18:48:325#include "ash/public/cpp/ash_pref_names.h"
Tetsui Ohkubob4b210a2018-11-05 01:48:386#include "ash/public/cpp/ash_view_ids.h"
Takuto Ikuta8cfb4892019-01-24 01:04:057#include "ash/public/interfaces/system_tray_test_api.test-mojom-test-utils.h"
James Cook7d5d7f182019-01-02 19:16:168#include "ash/public/interfaces/system_tray_test_api.test-mojom.h"
[email protected]aecb6082013-07-09 14:29:419#include "base/callback.h"
[email protected]806d94e2012-12-16 20:31:2610#include "base/command_line.h"
Gabriel Charette078e3662017-08-28 22:59:0411#include "base/run_loop.h"
[email protected]806d94e2012-12-16 20:31:2612#include "chrome/browser/browser_process.h"
[email protected]fdf40f3e2013-07-11 23:55:4613#include "chrome/browser/chrome_notification_types.h"
[email protected]1dfebfc2013-06-04 03:14:3214#include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
[email protected]806d94e2012-12-16 20:31:2615#include "chrome/browser/chromeos/accessibility/magnification_manager.h"
[email protected]806d94e2012-12-16 20:31:2616#include "chrome/browser/chromeos/login/helper.h"
[email protected]aa8328fb2013-04-19 15:09:0617#include "chrome/browser/chromeos/login/startup_utils.h"
[email protected]806d94e2012-12-16 20:31:2618#include "chrome/browser/profiles/profile.h"
19#include "chrome/browser/profiles/profile_manager.h"
xiyuan233f4e72017-04-06 06:59:5620#include "chrome/browser/ui/ash/session_controller_client.h"
[email protected]806d94e2012-12-16 20:31:2621#include "chrome/common/chrome_switches.h"
[email protected]0b294be2013-08-17 02:18:4122#include "chrome/test/base/in_process_browser_test.h"
[email protected]806d94e2012-12-16 20:31:2623#include "chrome/test/base/testing_profile.h"
Steven Bennetts38e9bde22019-01-03 17:31:1024#include "chromeos/constants/chromeos_switches.h"
[email protected]97275822014-01-21 19:30:3625#include "components/policy/core/browser/browser_policy_connector.h"
[email protected]c4a138a2013-11-21 19:54:5726#include "components/policy/core/common/external_data_fetcher.h"
[email protected]f20a3a22013-12-03 16:12:3727#include "components/policy/core/common/mock_configuration_policy_provider.h"
[email protected]c4a138a2013-11-21 19:54:5728#include "components/policy/core/common/policy_map.h"
29#include "components/policy/core/common/policy_types.h"
brettw39d6ba42016-08-24 16:56:3830#include "components/policy/policy_constants.h"
brettwb1fc1b82016-02-02 00:19:0831#include "components/prefs/pref_service.h"
xiyuan834f3bc2016-10-26 19:40:5332#include "components/session_manager/core/session_manager.h"
Tetsui Ohkubob4b210a2018-11-05 01:48:3833#include "components/user_manager/user_manager.h"
34#include "content/public/common/service_manager_connection.h"
[email protected]806d94e2012-12-16 20:31:2635#include "content/public/test/test_utils.h"
Tetsui Ohkubob4b210a2018-11-05 01:48:3836#include "services/service_manager/public/cpp/connector.h"
[email protected]806d94e2012-12-16 20:31:2637#include "testing/gtest/include/gtest/gtest.h"
James Cook928f23c2017-11-09 22:45:5038#include "ui/compositor/scoped_animation_duration_scale_mode.h"
tdanderson581149422016-10-25 21:37:5839#include "ui/views/controls/button/button.h"
[email protected]a81b2c32014-03-28 06:35:0140#include "ui/views/controls/label.h"
[email protected]806d94e2012-12-16 20:31:2641#include "ui/views/widget/widget.h"
42
[email protected]5ace0c232013-05-29 00:48:4143using testing::Return;
44using testing::_;
45using testing::WithParamInterface;
46
[email protected]806d94e2012-12-16 20:31:2647namespace chromeos {
48
[email protected]5ace0c232013-05-29 00:48:4149enum PrefSettingMechanism {
50 PREF_SERVICE,
51 POLICY,
52};
53
Tetsui Ohkuboa12026d2018-10-31 02:42:0554namespace {
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
Tetsui Ohkuboa12026d2018-10-31 02:42:05120} // namespace
121
James Cook928f23c2017-11-09 22:45:50122// Uses InProcessBrowserTest instead of OobeBaseTest because most of the tests
123// don't need to test the login screen.
[email protected]5ace0c232013-05-29 00:48:41124class TrayAccessibilityTest
[email protected]0b294be2013-08-17 02:18:41125 : public InProcessBrowserTest,
[email protected]5ace0c232013-05-29 00:48:41126 public WithParamInterface<PrefSettingMechanism> {
James Cook928f23c2017-11-09 22:45:50127 public:
128 TrayAccessibilityTest()
129 : disable_animations_(
130 ui::ScopedAnimationDurationScaleMode::ZERO_DURATION) {}
131 ~TrayAccessibilityTest() override = default;
[email protected]25cf28e2013-03-25 19:26:25132
[email protected]a81b2c32014-03-28 06:35:01133 // The profile which should be used by these tests.
[email protected]613b3f52013-12-13 23:37:06134 Profile* GetProfile() { return ProfileManager::GetActiveUserProfile(); }
135
Tetsui Ohkubob4b210a2018-11-05 01:48:38136 // Connect / reconnect to SystemTrayTestApi.
137 void BindTestApi() {
138 tray_test_api_.reset();
139 content::ServiceManagerConnection::GetForProcess()
140 ->GetConnector()
141 ->BindInterface(ash::mojom::kServiceName, &tray_test_api_);
142 }
143
144 // InProcessBrowserTest:
145 void SetUpOnMainThread() override {
146 InProcessBrowserTest::SetUpOnMainThread();
147 BindTestApi();
148 }
149
dchengc97a0282015-01-15 23:04:24150 void SetUpInProcessBrowserTestFixture() override {
James Cook928f23c2017-11-09 22:45:50151 InProcessBrowserTest::SetUpInProcessBrowserTestFixture();
[email protected]5ace0c232013-05-29 00:48:41152 EXPECT_CALL(provider_, IsInitializationComplete(_))
153 .WillRepeatedly(Return(true));
[email protected]5ace0c232013-05-29 00:48:41154 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
[email protected]a81b2c32014-03-28 06:35:01155 }
156
[email protected]5ace0c232013-05-29 00:48:41157 void SetShowAccessibilityOptionsInSystemTrayMenu(bool value) {
158 if (GetParam() == PREF_SERVICE) {
[email protected]613b3f52013-12-13 23:37:06159 PrefService* prefs = GetProfile()->GetPrefs();
James Cookc63b9fd2017-08-18 18:48:32160 prefs->SetBoolean(ash::prefs::kShouldAlwaysShowAccessibilityMenu, value);
James Cookb601dd5c2018-01-29 21:07:19161 // Prefs are sent to ash asynchronously.
162 base::RunLoop().RunUntilIdle();
[email protected]5ace0c232013-05-29 00:48:41163 } else if (GetParam() == POLICY) {
164 policy::PolicyMap policy_map;
165 policy_map.Set(policy::key::kShowAccessibilityOptionsInSystemTrayMenu,
dcheng3b344bc22016-05-10 02:26:09166 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
fhorschig64834b712015-09-21 14:20:23167 policy::POLICY_SOURCE_CLOUD,
Jinho Bang341ce5b02018-01-17 22:46:03168 std::make_unique<base::Value>(value), nullptr);
[email protected]5ace0c232013-05-29 00:48:41169 provider_.UpdateChromePolicy(policy_map);
170 base::RunLoop().RunUntilIdle();
171 } else {
172 FAIL() << "Unknown test parameterization";
173 }
174 }
175
Tetsui Ohkubob4b210a2018-11-05 01:48:38176 bool IsMenuButtonVisible() {
177 ash::mojom::SystemTrayTestApiAsyncWaiter wait_for(tray_test_api_.get());
178 bool visible = false;
179 wait_for.IsBubbleViewVisible(ash::VIEW_ID_ACCESSIBILITY_TRAY_ITEM,
180 true /* open_tray */, &visible);
181 wait_for.CloseBubble();
182 return visible;
[email protected]806d94e2012-12-16 20:31:26183 }
184
Tetsui Ohkubob4b210a2018-11-05 01:48:38185 void CreateDetailedMenu() {
186 ash::mojom::SystemTrayTestApiAsyncWaiter wait_for(tray_test_api_.get());
187 wait_for.ShowDetailedView(ash::mojom::TrayItem::kAccessibility);
[email protected]806d94e2012-12-16 20:31:26188 }
189
Tetsui Ohkubob4b210a2018-11-05 01:48:38190 bool IsBubbleOpen() {
191 ash::mojom::SystemTrayTestApiAsyncWaiter wait_for(tray_test_api_.get());
192 bool is_open = false;
193 wait_for.IsTrayBubbleOpen(&is_open);
194 return is_open;
[email protected]806d94e2012-12-16 20:31:26195 }
196
[email protected]7cfa31a2013-10-23 20:08:13197 void ClickAutoclickOnDetailMenu() {
Tetsui Ohkubob4b210a2018-11-05 01:48:38198 ash::mojom::SystemTrayTestApiAsyncWaiter wait_for(tray_test_api_.get());
199 wait_for.ClickBubbleView(ash::VIEW_ID_ACCESSIBILITY_AUTOCLICK);
[email protected]abdd0d72014-02-05 17:18:07200 }
201
[email protected]a81b2c32014-03-28 06:35:01202 bool IsAutoclickEnabledOnDetailMenu() const {
Tetsui Ohkubob4b210a2018-11-05 01:48:38203 ash::mojom::SystemTrayTestApiAsyncWaiter wait_for(tray_test_api_.get());
204 bool visible = false;
205 wait_for.IsBubbleViewVisible(ash::VIEW_ID_ACCESSIBILITY_AUTOCLICK_ENABLED,
206 false /* open_tray */, &visible);
207 return visible;
[email protected]7cfa31a2013-10-23 20:08:13208 }
[email protected]abdd0d72014-02-05 17:18:07209
James Cook928f23c2017-11-09 22:45:50210 // Disable animations so that tray icons hide immediately.
211 ui::ScopedAnimationDurationScaleMode disable_animations_;
212
[email protected]5ace0c232013-05-29 00:48:41213 policy::MockConfigurationPolicyProvider provider_;
Tetsui Ohkubob4b210a2018-11-05 01:48:38214 ash::mojom::SystemTrayTestApiPtr tray_test_api_;
[email protected]806d94e2012-12-16 20:31:26215};
216
yoshiki064fa9e2015-09-04 06:32:45217IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) {
[email protected]5ace0c232013-05-29 00:48:41218 SetShowAccessibilityOptionsInSystemTrayMenu(false);
[email protected]806d94e2012-12-16 20:31:26219
220 // Confirms that the menu is hidden.
Tetsui Ohkubob4b210a2018-11-05 01:48:38221 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26222
James Cookfc97f0a2017-08-16 20:05:35223 // Toggling spoken feedback changes the visibility of the menu.
Qiang Xu60e79032018-03-29 08:18:31224 EnableSpokenFeedback(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38225 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31226 EnableSpokenFeedback(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38227 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26228
James Cookfc97f0a2017-08-16 20:05:35229 // Toggling high contrast changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50230 EnableHighContrast(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38231 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50232 EnableHighContrast(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38233 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26234
[email protected]5ace0c232013-05-29 00:48:41235 // Toggling screen magnifier changes the visibility of the menu.
[email protected]7585f4c2013-01-10 18:26:41236 SetMagnifierEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38237 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]7585f4c2013-01-10 18:26:41238 SetMagnifierEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38239 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26240
[email protected]7cfa31a2013-10-23 20:08:13241 // Toggling autoclick changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50242 EnableAutoclick(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38243 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50244 EnableAutoclick(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38245 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]7cfa31a2013-10-23 20:08:13246
[email protected]abdd0d72014-02-05 17:18:07247 // Toggling virtual keyboard changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50248 EnableVirtualKeyboard(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38249 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50250 EnableVirtualKeyboard(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38251 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]abdd0d72014-02-05 17:18:07252
mincha0b24ab2017-03-31 22:16:01253 // Toggling large mouse cursor changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50254 EnableLargeCursor(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38255 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50256 EnableLargeCursor(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38257 EXPECT_FALSE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01258
259 // Toggling mono audio changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50260 EnableMonoAudio(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38261 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50262 EnableMonoAudio(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38263 EXPECT_FALSE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01264
265 // Toggling caret highlight changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50266 SetCaretHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38267 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50268 SetCaretHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38269 EXPECT_FALSE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01270
271 // Toggling highlight mouse cursor changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50272 SetCursorHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38273 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50274 SetCursorHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38275 EXPECT_FALSE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01276
277 // Toggling highlight keyboard focus changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50278 SetFocusHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38279 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50280 SetFocusHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38281 EXPECT_FALSE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01282
minchd9d542482017-04-07 19:29:56283 // Toggling sticky keys changes the visibility of the menu.
James Cook928f23c2017-11-09 22:45:50284 EnableStickyKeys(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38285 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50286 EnableStickyKeys(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38287 EXPECT_FALSE(IsMenuButtonVisible());
minchd9d542482017-04-07 19:29:56288
Katie D6af68c5e2018-02-14 23:21:16289 // Toggling select-to-speak dragging changes the visibility of the menu.
290 EnableSelectToSpeak(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38291 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16292 EnableSelectToSpeak(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38293 EXPECT_FALSE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16294
[email protected]806d94e2012-12-16 20:31:26295 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41296 SetMagnifierEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38297 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50298 EnableHighContrast(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38299 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31300 EnableSpokenFeedback(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38301 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16302 EnableSelectToSpeak(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38303 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50304 EnableAutoclick(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38305 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50306 EnableVirtualKeyboard(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38307 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50308 EnableLargeCursor(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38309 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50310 EnableMonoAudio(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38311 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50312 SetCaretHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38313 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50314 SetCursorHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38315 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50316 SetFocusHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38317 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50318 EnableStickyKeys(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38319 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50320 EnableVirtualKeyboard(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38321 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50322 EnableAutoclick(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38323 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31324 EnableSpokenFeedback(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38325 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16326 EnableSelectToSpeak(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38327 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50328 EnableHighContrast(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38329 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]7585f4c2013-01-10 18:26:41330 SetMagnifierEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38331 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50332 EnableLargeCursor(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38333 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50334 EnableMonoAudio(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38335 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50336 SetCaretHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38337 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50338 SetCursorHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38339 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50340 SetFocusHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38341 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50342 EnableStickyKeys(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38343 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26344}
345
yoshiki064fa9e2015-09-04 06:32:45346IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
[email protected]5ace0c232013-05-29 00:48:41347 SetShowAccessibilityOptionsInSystemTrayMenu(true);
[email protected]806d94e2012-12-16 20:31:26348
349 // Confirms that the menu is visible.
Tetsui Ohkubob4b210a2018-11-05 01:48:38350 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26351
[email protected]abdd0d72014-02-05 17:18:07352 // The menu remains visible regardless of toggling spoken feedback.
Qiang Xu60e79032018-03-29 08:18:31353 EnableSpokenFeedback(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38354 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31355 EnableSpokenFeedback(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38356 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26357
[email protected]abdd0d72014-02-05 17:18:07358 // The menu remains visible regardless of toggling high contrast.
James Cook928f23c2017-11-09 22:45:50359 EnableHighContrast(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38360 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50361 EnableHighContrast(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38362 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26363
[email protected]abdd0d72014-02-05 17:18:07364 // The menu remains visible regardless of toggling screen magnifier.
[email protected]7585f4c2013-01-10 18:26:41365 SetMagnifierEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38366 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]7585f4c2013-01-10 18:26:41367 SetMagnifierEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38368 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26369
[email protected]abdd0d72014-02-05 17:18:07370 // The menu remains visible regardless of toggling autoclick.
James Cook928f23c2017-11-09 22:45:50371 EnableAutoclick(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38372 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50373 EnableAutoclick(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38374 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]7cfa31a2013-10-23 20:08:13375
[email protected]abdd0d72014-02-05 17:18:07376 // The menu remains visible regardless of toggling on-screen keyboard.
James Cook928f23c2017-11-09 22:45:50377 EnableVirtualKeyboard(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38378 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50379 EnableVirtualKeyboard(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38380 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]abdd0d72014-02-05 17:18:07381
minchd9d542482017-04-07 19:29:56382 // The menu remains visible regardless of toggling large mouse cursor.
James Cook928f23c2017-11-09 22:45:50383 EnableLargeCursor(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38384 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50385 EnableLargeCursor(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38386 EXPECT_TRUE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01387
minchd9d542482017-04-07 19:29:56388 // The menu remains visible regardless of toggling mono audio.
James Cook928f23c2017-11-09 22:45:50389 EnableMonoAudio(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38390 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50391 EnableMonoAudio(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38392 EXPECT_TRUE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01393
minchd9d542482017-04-07 19:29:56394 // The menu remains visible regardless of toggling caret highlight.
James Cook928f23c2017-11-09 22:45:50395 SetCaretHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38396 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50397 SetCaretHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38398 EXPECT_TRUE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01399
minchd9d542482017-04-07 19:29:56400 // The menu remains visible regardless of toggling highlight mouse cursor.
James Cook928f23c2017-11-09 22:45:50401 SetCursorHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38402 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50403 SetCursorHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38404 EXPECT_TRUE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01405
minchd9d542482017-04-07 19:29:56406 // The menu remains visible regardless of toggling highlight keyboard focus.
James Cook928f23c2017-11-09 22:45:50407 SetFocusHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38408 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50409 SetFocusHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38410 EXPECT_TRUE(IsMenuButtonVisible());
mincha0b24ab2017-03-31 22:16:01411
minchd9d542482017-04-07 19:29:56412 // The menu remains visible regardless of the toggling sticky keys.
James Cook928f23c2017-11-09 22:45:50413 EnableStickyKeys(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38414 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50415 EnableStickyKeys(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38416 EXPECT_TRUE(IsMenuButtonVisible());
minchd9d542482017-04-07 19:29:56417
Katie D6af68c5e2018-02-14 23:21:16418 // The menu remains visible regardless of toggling select-to-speak.
419 EnableSelectToSpeak(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38420 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16421 EnableSelectToSpeak(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38422 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16423
[email protected]806d94e2012-12-16 20:31:26424 // Enabling all accessibility features.
[email protected]7585f4c2013-01-10 18:26:41425 SetMagnifierEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38426 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50427 EnableHighContrast(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38428 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31429 EnableSpokenFeedback(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38430 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16431 EnableSelectToSpeak(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38432 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50433 EnableAutoclick(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38434 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50435 EnableVirtualKeyboard(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38436 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50437 EnableLargeCursor(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38438 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50439 EnableMonoAudio(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38440 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50441 SetCaretHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38442 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50443 SetCursorHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38444 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50445 SetFocusHighlightEnabled(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38446 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50447 EnableStickyKeys(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38448 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50449 EnableVirtualKeyboard(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38450 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50451 EnableAutoclick(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38452 EXPECT_TRUE(IsMenuButtonVisible());
Qiang Xu60e79032018-03-29 08:18:31453 EnableSpokenFeedback(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38454 EXPECT_TRUE(IsMenuButtonVisible());
Katie D6af68c5e2018-02-14 23:21:16455 EnableSelectToSpeak(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38456 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50457 EnableHighContrast(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38458 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]7585f4c2013-01-10 18:26:41459 SetMagnifierEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38460 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50461 EnableLargeCursor(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38462 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50463 EnableMonoAudio(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38464 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50465 SetCaretHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38466 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50467 SetCursorHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38468 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50469 SetFocusHighlightEnabled(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38470 EXPECT_TRUE(IsMenuButtonVisible());
James Cook928f23c2017-11-09 22:45:50471 EnableStickyKeys(false);
Tetsui Ohkubob4b210a2018-11-05 01:48:38472 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26473
[email protected]5ace0c232013-05-29 00:48:41474 SetShowAccessibilityOptionsInSystemTrayMenu(false);
[email protected]806d94e2012-12-16 20:31:26475
476 // Confirms that the menu is invisible.
Tetsui Ohkubob4b210a2018-11-05 01:48:38477 EXPECT_FALSE(IsMenuButtonVisible());
[email protected]806d94e2012-12-16 20:31:26478}
479
[email protected]5ace0c232013-05-29 00:48:41480IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
[email protected]14c95c82013-01-30 06:30:29481 // Enables high contrast mode.
James Cook928f23c2017-11-09 22:45:50482 EnableHighContrast(true);
Tetsui Ohkubob4b210a2018-11-05 01:48:38483 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]14c95c82013-01-30 06:30:29484
485 // Locks the screen.
Tetsui Ohkubob4b210a2018-11-05 01:48:38486 SessionControllerClient::Get()->RequestLockScreen();
487 // Resets binding because UnifiedSystemTray is recreated.
488 BindTestApi();
489 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]14c95c82013-01-30 06:30:29490
491 // Disables high contrast mode.
James Cook928f23c2017-11-09 22:45:50492 EnableHighContrast(false);
[email protected]14c95c82013-01-30 06:30:29493
494 // Confirms that the menu is still visible.
Tetsui Ohkubob4b210a2018-11-05 01:48:38495 EXPECT_TRUE(IsMenuButtonVisible());
[email protected]14c95c82013-01-30 06:30:29496}
497
Sammie Quonb5f32e02017-10-10 19:16:12498// Verify that the accessiblity system detailed menu remains open when an item
499// is selected or deselected.
500IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DetailMenuRemainsOpen) {
Tetsui Ohkubob4b210a2018-11-05 01:48:38501 CreateDetailedMenu();
Sammie Quonb5f32e02017-10-10 19:16:12502
503 ClickAutoclickOnDetailMenu();
504 EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu());
505 {
506 base::RunLoop run_loop;
507 run_loop.RunUntilIdle();
508 }
Tetsui Ohkubob4b210a2018-11-05 01:48:38509 EXPECT_TRUE(IsBubbleOpen());
Sammie Quonb5f32e02017-10-10 19:16:12510
511 ClickAutoclickOnDetailMenu();
512 EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
513 {
514 base::RunLoop run_loop;
515 run_loop.RunUntilIdle();
516 }
Tetsui Ohkubob4b210a2018-11-05 01:48:38517 EXPECT_TRUE(IsBubbleOpen());
518}
519
520class TrayAccessibilityLoginTest : public TrayAccessibilityTest {
521 public:
522 TrayAccessibilityLoginTest() = default;
523 ~TrayAccessibilityLoginTest() = default;
524
525 void SetUpCommandLine(base::CommandLine* command_line) override {
526 TrayAccessibilityTest::SetUpCommandLine(command_line);
527 command_line->AppendSwitch(switches::kLoginManager);
528 command_line->AppendSwitch(switches::kForceLoginManagerInTests);
529 }
530
531 private:
532 DISALLOW_COPY_AND_ASSIGN(TrayAccessibilityLoginTest);
533};
534
535IN_PROC_BROWSER_TEST_P(TrayAccessibilityLoginTest,
536 ShowMenuWithShowOnLoginScreen) {
537 EXPECT_FALSE(user_manager::UserManager::Get()->IsUserLoggedIn());
538
539 // Confirms that the menu is visible.
540 EXPECT_TRUE(IsMenuButtonVisible());
541
542 // The menu remains visible regardless of toggling spoken feedback.
543 EnableSpokenFeedback(true);
544 EXPECT_TRUE(IsMenuButtonVisible());
545 EnableSpokenFeedback(false);
546 EXPECT_TRUE(IsMenuButtonVisible());
547
548 // The menu remains visible regardless of toggling high contrast.
549 EnableHighContrast(true);
550 EXPECT_TRUE(IsMenuButtonVisible());
551 EnableHighContrast(false);
552 EXPECT_TRUE(IsMenuButtonVisible());
553
554 // The menu remains visible regardless of toggling screen magnifier.
555 SetMagnifierEnabled(true);
556 EXPECT_TRUE(IsMenuButtonVisible());
557 SetMagnifierEnabled(false);
558 EXPECT_TRUE(IsMenuButtonVisible());
559
560 // The menu remains visible regardless of toggling on-screen keyboard.
561 EnableVirtualKeyboard(true);
562 EXPECT_TRUE(IsMenuButtonVisible());
563 EnableVirtualKeyboard(false);
564 EXPECT_TRUE(IsMenuButtonVisible());
565
566 // The menu remains visible regardless of toggling large mouse cursor.
567 EnableLargeCursor(true);
568 EXPECT_TRUE(IsMenuButtonVisible());
569 EnableLargeCursor(false);
570 EXPECT_TRUE(IsMenuButtonVisible());
571
572 // The menu remains visible regardless of toggling mono audio.
573 EnableMonoAudio(true);
574 EXPECT_TRUE(IsMenuButtonVisible());
575 EnableMonoAudio(false);
576 EXPECT_TRUE(IsMenuButtonVisible());
577
578 // The menu remains visible regardless of toggling caret highlight.
579 SetCaretHighlightEnabled(true);
580 EXPECT_TRUE(IsMenuButtonVisible());
581 SetCaretHighlightEnabled(false);
582 EXPECT_TRUE(IsMenuButtonVisible());
583
584 // The menu remains visible regardless of toggling highlight mouse cursor.
585 SetCursorHighlightEnabled(true);
586 EXPECT_TRUE(IsMenuButtonVisible());
587 SetCursorHighlightEnabled(false);
588 EXPECT_TRUE(IsMenuButtonVisible());
589
590 // The menu remains visible regardless of toggling highlight keyboard focus.
591 SetFocusHighlightEnabled(true);
592 EXPECT_TRUE(IsMenuButtonVisible());
593 SetFocusHighlightEnabled(false);
594 EXPECT_TRUE(IsMenuButtonVisible());
595
596 // The menu remains visible regardless of toggling sticky keys.
597 EnableStickyKeys(true);
598 EXPECT_TRUE(IsMenuButtonVisible());
599 EnableStickyKeys(false);
600 EXPECT_TRUE(IsMenuButtonVisible());
601
602 // Enabling all accessibility features.
603 SetMagnifierEnabled(true);
604 EXPECT_TRUE(IsMenuButtonVisible());
605 EnableHighContrast(true);
606 EXPECT_TRUE(IsMenuButtonVisible());
607 EnableSpokenFeedback(true);
608 EXPECT_TRUE(IsMenuButtonVisible());
609 EnableVirtualKeyboard(true);
610 EXPECT_TRUE(IsMenuButtonVisible());
611 EnableLargeCursor(true);
612 EXPECT_TRUE(IsMenuButtonVisible());
613 EnableMonoAudio(true);
614 EXPECT_TRUE(IsMenuButtonVisible());
615 SetCaretHighlightEnabled(true);
616 EXPECT_TRUE(IsMenuButtonVisible());
617 SetCursorHighlightEnabled(true);
618 EXPECT_TRUE(IsMenuButtonVisible());
619 SetFocusHighlightEnabled(true);
620 EXPECT_TRUE(IsMenuButtonVisible());
621 EnableStickyKeys(true);
622 EXPECT_TRUE(IsMenuButtonVisible());
623 EnableVirtualKeyboard(false);
624 EXPECT_TRUE(IsMenuButtonVisible());
625 EnableSpokenFeedback(false);
626 EXPECT_TRUE(IsMenuButtonVisible());
627 EnableHighContrast(false);
628 EXPECT_TRUE(IsMenuButtonVisible());
629 SetMagnifierEnabled(false);
630 EXPECT_TRUE(IsMenuButtonVisible());
631 EnableLargeCursor(false);
632 EXPECT_TRUE(IsMenuButtonVisible());
633 EnableMonoAudio(false);
634 EXPECT_TRUE(IsMenuButtonVisible());
635 SetCaretHighlightEnabled(false);
636 EXPECT_TRUE(IsMenuButtonVisible());
637 SetCursorHighlightEnabled(false);
638 EXPECT_TRUE(IsMenuButtonVisible());
639 SetFocusHighlightEnabled(false);
640 EXPECT_TRUE(IsMenuButtonVisible());
641 EnableStickyKeys(false);
642 EXPECT_TRUE(IsMenuButtonVisible());
643
644 SetShowAccessibilityOptionsInSystemTrayMenu(true);
645
646 // Confirms that the menu remains visible.
647 EXPECT_TRUE(IsMenuButtonVisible());
648
649 SetShowAccessibilityOptionsInSystemTrayMenu(false);
650
651 // Confirms that the menu remains visible.
652 EXPECT_TRUE(IsMenuButtonVisible());
Sammie Quonb5f32e02017-10-10 19:16:12653}
654
Victor Costancb72efa12019-01-28 03:54:02655INSTANTIATE_TEST_SUITE_P(TrayAccessibilityTestInstance,
656 TrayAccessibilityTest,
657 testing::Values(PREF_SERVICE, POLICY));
658INSTANTIATE_TEST_SUITE_P(TrayAccessibilityLoginTestInstance,
659 TrayAccessibilityLoginTest,
660 testing::Values(PREF_SERVICE, POLICY));
[email protected]5ace0c232013-05-29 00:48:41661
[email protected]cce1bad62013-01-04 02:26:38662} // namespace chromeos