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

Side by Side Diff: chrome/browser/chromeos/system/tray_accessibility_browsertest.cc

Issue 15086005: Extend accessability browser tests to also verify policy toggling. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fix post-rebase build error Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/magnifier/magnification_controller.h" 5 #include "ash/magnifier/magnification_controller.h"
6 #include "ash/shell.h" 6 #include "ash/shell.h"
7 #include "ash/system/tray/system_tray.h" 7 #include "ash/system/tray/system_tray.h"
8 #include "ash/system/tray_accessibility.h" 8 #include "ash/system/tray_accessibility.h"
9 #include "ash/system/user/login_status.h" 9 #include "ash/system/user/login_status.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" 13 #include "chrome/browser/chromeos/accessibility/accessibility_util.h"
14 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" 14 #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
15 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" 15 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h"
16 #include "chrome/browser/chromeos/login/helper.h" 16 #include "chrome/browser/chromeos/login/helper.h"
17 #include "chrome/browser/chromeos/login/login_utils.h" 17 #include "chrome/browser/chromeos/login/login_utils.h"
18 #include "chrome/browser/chromeos/login/startup_utils.h" 18 #include "chrome/browser/chromeos/login/startup_utils.h"
19 #include "chrome/browser/chromeos/login/user_manager.h" 19 #include "chrome/browser/chromeos/login/user_manager.h"
20 #include "chrome/browser/chromeos/login/user_manager_impl.h" 20 #include "chrome/browser/chromeos/login/user_manager_impl.h"
21 #include "chrome/browser/policy/browser_policy_connector.h"
22 #include "chrome/browser/policy/mock_configuration_policy_provider.h"
23 #include "chrome/browser/policy/policy_map.h"
24 #include "chrome/browser/policy/policy_types.h"
21 #include "chrome/browser/profiles/profile.h" 25 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/browser/profiles/profile_manager.h" 26 #include "chrome/browser/profiles/profile_manager.h"
23 #include "chrome/common/chrome_notification_types.h" 27 #include "chrome/common/chrome_notification_types.h"
24 #include "chrome/common/chrome_switches.h" 28 #include "chrome/common/chrome_switches.h"
25 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
26 #include "chrome/test/base/testing_profile.h" 30 #include "chrome/test/base/testing_profile.h"
27 #include "chromeos/chromeos_switches.h" 31 #include "chromeos/chromeos_switches.h"
28 #include "content/public/test/test_utils.h" 32 #include "content/public/test/test_utils.h"
33 #include "policy/policy_constants.h"
29 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
30 #include "ui/views/widget/widget.h" 35 #include "ui/views/widget/widget.h"
31 36
37 using testing::AnyNumber;
38 using testing::Return;
39 using testing::_;
40 using testing::WithParamInterface;
41
32 namespace chromeos { 42 namespace chromeos {
33 43
44 enum PrefSettingMechanism {
45 PREF_SERVICE,
46 POLICY,
47 };
48
34 void SetMagnifierEnabled(bool enabled) { 49 void SetMagnifierEnabled(bool enabled) {
35 MagnificationManager::Get()->SetMagnifierEnabled(enabled); 50 MagnificationManager::Get()->SetMagnifierEnabled(enabled);
36 } 51 }
37 52
38 class TrayAccessibilityTest : public CrosInProcessBrowserTest { 53 class TrayAccessibilityTest
54 : public CrosInProcessBrowserTest,
55 public WithParamInterface<PrefSettingMechanism> {
39 protected: 56 protected:
40 TrayAccessibilityTest() {} 57 TrayAccessibilityTest() {}
41 virtual ~TrayAccessibilityTest() {} 58 virtual ~TrayAccessibilityTest() {}
42 59
60 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
61 EXPECT_CALL(provider_, IsInitializationComplete(_))
62 .WillRepeatedly(Return(true));
63 EXPECT_CALL(provider_, RegisterPolicyDomain(_)).Times(AnyNumber());
64 policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
65 }
66
43 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 67 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
44 command_line->AppendSwitch(switches::kLoginManager); 68 command_line->AppendSwitch(switches::kLoginManager);
45 command_line->AppendSwitchASCII(switches::kLoginProfile, 69 command_line->AppendSwitchASCII(switches::kLoginProfile,
46 TestingProfile::kTestUserProfileDir); 70 TestingProfile::kTestUserProfileDir);
47 } 71 }
48 72
49 virtual void RunTestOnMainThreadLoop() OVERRIDE { 73 virtual void RunTestOnMainThreadLoop() OVERRIDE {
50 // Need to mark oobe completed to show detailed views. 74 // Need to mark oobe completed to show detailed views.
51 StartupUtils::MarkOobeCompleted(); 75 StartupUtils::MarkOobeCompleted();
52 CrosInProcessBrowserTest::RunTestOnMainThreadLoop(); 76 CrosInProcessBrowserTest::RunTestOnMainThreadLoop();
53 } 77 }
54 78
79 void SetShowAccessibilityOptionsInSystemTrayMenu(bool value) {
80 if (GetParam() == PREF_SERVICE) {
81 Profile* profile = ProfileManager::GetDefaultProfile();
82 PrefService* prefs = profile->GetPrefs();
83 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, value);
84 } else if (GetParam() == POLICY) {
85 policy::PolicyMap policy_map;
86 policy_map.Set(policy::key::kShowAccessibilityOptionsInSystemTrayMenu,
87 policy::POLICY_LEVEL_MANDATORY,
88 policy::POLICY_SCOPE_USER,
89 base::Value::CreateBooleanValue(value));
90 provider_.UpdateChromePolicy(policy_map);
91 base::RunLoop().RunUntilIdle();
92 } else {
93 FAIL() << "Unknown test parameterization";
94 }
95 }
96
55 ash::internal::TrayAccessibility* tray() { 97 ash::internal::TrayAccessibility* tray() {
56 return ash::Shell::GetInstance()->GetPrimarySystemTray()-> 98 return ash::Shell::GetInstance()->GetPrimarySystemTray()->
57 GetTrayAccessibilityForTest(); 99 GetTrayAccessibilityForTest();
58 } 100 }
59 101
60 bool IsTrayIconVisible() { 102 bool IsTrayIconVisible() {
61 return tray()->tray_icon_visible_; 103 return tray()->tray_icon_visible_;
62 } 104 }
63 105
64 views::View* CreateMenuItem() { 106 views::View* CreateMenuItem() {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 return tray()->detailed_menu_->spoken_feedback_enabled_; 157 return tray()->detailed_menu_->spoken_feedback_enabled_;
116 } 158 }
117 159
118 bool IsHighContrastEnabledOnDetailMenu() { 160 bool IsHighContrastEnabledOnDetailMenu() {
119 return tray()->detailed_menu_->high_contrast_enabled_; 161 return tray()->detailed_menu_->high_contrast_enabled_;
120 } 162 }
121 163
122 bool IsScreenMagnifierEnabledOnDetailMenu() { 164 bool IsScreenMagnifierEnabledOnDetailMenu() {
123 return tray()->detailed_menu_->screen_magnifier_enabled_; 165 return tray()->detailed_menu_->screen_magnifier_enabled_;
124 } 166 }
167
168 policy::MockConfigurationPolicyProvider provider_;
125 }; 169 };
126 170
127 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, LoginStatus) { 171 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) {
128 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); 172 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus());
129 173
130 UserManager::Get()->UserLoggedIn( 174 UserManager::Get()->UserLoggedIn(
131 "owner@invalid.domain", "owner@invalid.domain", true); 175 "owner@invalid.domain", "owner@invalid.domain", true);
132 UserManager::Get()->SessionStarted(); 176 UserManager::Get()->SessionStarted();
133 177
134 EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus()); 178 EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus());
135 } 179 }
136 180
137 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowTrayIcon) { 181 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) {
138 SetLoginStatus(ash::user::LOGGED_IN_NONE); 182 SetLoginStatus(ash::user::LOGGED_IN_NONE);
139 183
140 // Confirms that the icon is invisible before login. 184 // Confirms that the icon is invisible before login.
141 EXPECT_FALSE(IsTrayIconVisible()); 185 EXPECT_FALSE(IsTrayIconVisible());
142 186
143 UserManager::Get()->UserLoggedIn( 187 UserManager::Get()->UserLoggedIn(
144 "owner@invalid.domain", "owner@invalid.domain", true); 188 "owner@invalid.domain", "owner@invalid.domain", true);
145 UserManager::Get()->SessionStarted(); 189 UserManager::Get()->SessionStarted();
146 190
147 // Confirms that the icon is invisible just after login. 191 // Confirms that the icon is invisible just after login.
148 EXPECT_FALSE(IsTrayIconVisible()); 192 EXPECT_FALSE(IsTrayIconVisible());
149 193
150 // Toggling spoken feedback changes the visibillity of the icon. 194 // Toggling spoken feedback changes the visibility of the icon.
151 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 195 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
152 EXPECT_TRUE(IsTrayIconVisible()); 196 EXPECT_TRUE(IsTrayIconVisible());
153 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 197 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
154 EXPECT_FALSE(IsTrayIconVisible()); 198 EXPECT_FALSE(IsTrayIconVisible());
155 199
156 // Toggling high contrast the visibillity of the icon. 200 // Toggling high contrast the visibility of the icon.
157 accessibility::EnableHighContrast(true); 201 accessibility::EnableHighContrast(true);
158 EXPECT_TRUE(IsTrayIconVisible()); 202 EXPECT_TRUE(IsTrayIconVisible());
159 accessibility::EnableHighContrast(false); 203 accessibility::EnableHighContrast(false);
160 EXPECT_FALSE(IsTrayIconVisible()); 204 EXPECT_FALSE(IsTrayIconVisible());
161 205
162 // Toggling magnifier the visibillity of the icon. 206 // Toggling magnifier the visibility of the icon.
163 SetMagnifierEnabled(true); 207 SetMagnifierEnabled(true);
164 EXPECT_TRUE(IsTrayIconVisible()); 208 EXPECT_TRUE(IsTrayIconVisible());
165 SetMagnifierEnabled(false); 209 SetMagnifierEnabled(false);
166 EXPECT_FALSE(IsTrayIconVisible()); 210 EXPECT_FALSE(IsTrayIconVisible());
167 211
168 // Enabling all accessibility features. 212 // Enabling all accessibility features.
169 SetMagnifierEnabled(true); 213 SetMagnifierEnabled(true);
170 EXPECT_TRUE(IsTrayIconVisible()); 214 EXPECT_TRUE(IsTrayIconVisible());
171 accessibility::EnableHighContrast(true); 215 accessibility::EnableHighContrast(true);
172 EXPECT_TRUE(IsTrayIconVisible()); 216 EXPECT_TRUE(IsTrayIconVisible());
173 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 217 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
174 EXPECT_TRUE(IsTrayIconVisible()); 218 EXPECT_TRUE(IsTrayIconVisible());
175 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 219 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
176 EXPECT_TRUE(IsTrayIconVisible()); 220 EXPECT_TRUE(IsTrayIconVisible());
177 accessibility::EnableHighContrast(false); 221 accessibility::EnableHighContrast(false);
178 EXPECT_TRUE(IsTrayIconVisible()); 222 EXPECT_TRUE(IsTrayIconVisible());
179 SetMagnifierEnabled(false); 223 SetMagnifierEnabled(false);
180 EXPECT_FALSE(IsTrayIconVisible()); 224 EXPECT_FALSE(IsTrayIconVisible());
181 225
182 // Confirms that prefs::kShouldAlwaysShowAccessibilityMenu doesn't affect 226 // Confirms that prefs::kShouldAlwaysShowAccessibilityMenu doesn't affect
183 // the icon on the tray. 227 // the icon on the tray.
184 Profile* profile = ProfileManager::GetDefaultProfile(); 228 SetShowAccessibilityOptionsInSystemTrayMenu(true);
185 PrefService* prefs = profile->GetPrefs();
186 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
187 prefs->CommitPendingWrite();
188 accessibility::EnableHighContrast(true); 229 accessibility::EnableHighContrast(true);
189 EXPECT_TRUE(IsTrayIconVisible()); 230 EXPECT_TRUE(IsTrayIconVisible());
190 accessibility::EnableHighContrast(false); 231 accessibility::EnableHighContrast(false);
191 EXPECT_FALSE(IsTrayIconVisible()); 232 EXPECT_FALSE(IsTrayIconVisible());
192 } 233 }
193 234
194 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenu) { 235 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) {
195 // Login 236 // Login
196 UserManager::Get()->UserLoggedIn( 237 UserManager::Get()->UserLoggedIn(
197 "owner@invalid.domain", "owner@invalid.domain", true); 238 "owner@invalid.domain", "owner@invalid.domain", true);
198 UserManager::Get()->SessionStarted(); 239 UserManager::Get()->SessionStarted();
199 240
200 // Sets prefs::kShouldAlwaysShowAccessibilityMenu = false. 241 SetShowAccessibilityOptionsInSystemTrayMenu(false);
201 Profile* profile = ProfileManager::GetDefaultProfile();
202 PrefService* prefs = profile->GetPrefs();
203 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
204 prefs->CommitPendingWrite();
205 242
206 // Confirms that the menu is hidden. 243 // Confirms that the menu is hidden.
207 EXPECT_FALSE(CanCreateMenuItem()); 244 EXPECT_FALSE(CanCreateMenuItem());
208 245
209 // Toggling spoken feedback changes the visibillity of the menu. 246 // Toggling spoken feedback changes the visibility of the menu.
210 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 247 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
211 EXPECT_TRUE(CanCreateMenuItem()); 248 EXPECT_TRUE(CanCreateMenuItem());
212 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 249 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
213 EXPECT_FALSE(CanCreateMenuItem()); 250 EXPECT_FALSE(CanCreateMenuItem());
214 251
215 // Toggling high contrast changes the visibillity of the menu. 252 // Toggling high contrast changes the visibility of the menu.
216 accessibility::EnableHighContrast(true); 253 accessibility::EnableHighContrast(true);
217 EXPECT_TRUE(CanCreateMenuItem()); 254 EXPECT_TRUE(CanCreateMenuItem());
218 accessibility::EnableHighContrast(false); 255 accessibility::EnableHighContrast(false);
219 EXPECT_FALSE(CanCreateMenuItem()); 256 EXPECT_FALSE(CanCreateMenuItem());
220 257
221 // Toggling screen magnifier changes the visibillity of the menu. 258 // Toggling screen magnifier changes the visibility of the menu.
222 SetMagnifierEnabled(true); 259 SetMagnifierEnabled(true);
223 EXPECT_TRUE(CanCreateMenuItem()); 260 EXPECT_TRUE(CanCreateMenuItem());
224 SetMagnifierEnabled(false); 261 SetMagnifierEnabled(false);
225 EXPECT_FALSE(CanCreateMenuItem()); 262 EXPECT_FALSE(CanCreateMenuItem());
226 263
227 // Enabling all accessibility features. 264 // Enabling all accessibility features.
228 SetMagnifierEnabled(true); 265 SetMagnifierEnabled(true);
229 EXPECT_TRUE(CanCreateMenuItem()); 266 EXPECT_TRUE(CanCreateMenuItem());
230 accessibility::EnableHighContrast(true); 267 accessibility::EnableHighContrast(true);
231 EXPECT_TRUE(CanCreateMenuItem()); 268 EXPECT_TRUE(CanCreateMenuItem());
232 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 269 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
233 EXPECT_TRUE(CanCreateMenuItem()); 270 EXPECT_TRUE(CanCreateMenuItem());
234 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 271 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
235 EXPECT_TRUE(CanCreateMenuItem()); 272 EXPECT_TRUE(CanCreateMenuItem());
236 accessibility::EnableHighContrast(false); 273 accessibility::EnableHighContrast(false);
237 EXPECT_TRUE(CanCreateMenuItem()); 274 EXPECT_TRUE(CanCreateMenuItem());
238 SetMagnifierEnabled(false); 275 SetMagnifierEnabled(false);
239 EXPECT_FALSE(CanCreateMenuItem()); 276 EXPECT_FALSE(CanCreateMenuItem());
240 } 277 }
241 278
242 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowMenuOption) { 279 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
243 // Login 280 // Login
244 UserManager::Get()->UserLoggedIn( 281 UserManager::Get()->UserLoggedIn(
245 "owner@invalid.domain", "owner@invalid.domain", true); 282 "owner@invalid.domain", "owner@invalid.domain", true);
246 UserManager::Get()->SessionStarted(); 283 UserManager::Get()->SessionStarted();
247 284
248 // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true. 285 SetShowAccessibilityOptionsInSystemTrayMenu(true);
249 Profile* profile = ProfileManager::GetDefaultProfile();
250 PrefService* prefs = profile->GetPrefs();
251 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
252 prefs->CommitPendingWrite();
253 286
254 // Confirms that the menu is visible. 287 // Confirms that the menu is visible.
255 EXPECT_TRUE(CanCreateMenuItem()); 288 EXPECT_TRUE(CanCreateMenuItem());
256 289
257 // The menu is keeping visible regardless of toggling spoken feedback. 290 // The menu is keeping visible regardless of toggling spoken feedback.
258 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 291 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
259 EXPECT_TRUE(CanCreateMenuItem()); 292 EXPECT_TRUE(CanCreateMenuItem());
260 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 293 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
261 EXPECT_TRUE(CanCreateMenuItem()); 294 EXPECT_TRUE(CanCreateMenuItem());
262 295
(...skipping 16 matching lines...) Expand all
279 EXPECT_TRUE(CanCreateMenuItem()); 312 EXPECT_TRUE(CanCreateMenuItem());
280 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 313 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
281 EXPECT_TRUE(CanCreateMenuItem()); 314 EXPECT_TRUE(CanCreateMenuItem());
282 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 315 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
283 EXPECT_TRUE(CanCreateMenuItem()); 316 EXPECT_TRUE(CanCreateMenuItem());
284 accessibility::EnableHighContrast(false); 317 accessibility::EnableHighContrast(false);
285 EXPECT_TRUE(CanCreateMenuItem()); 318 EXPECT_TRUE(CanCreateMenuItem());
286 SetMagnifierEnabled(false); 319 SetMagnifierEnabled(false);
287 EXPECT_TRUE(CanCreateMenuItem()); 320 EXPECT_TRUE(CanCreateMenuItem());
288 321
289 // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true. 322 SetShowAccessibilityOptionsInSystemTrayMenu(false);
290 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
291 323
292 // Confirms that the menu is invisible. 324 // Confirms that the menu is invisible.
293 EXPECT_FALSE(CanCreateMenuItem()); 325 EXPECT_FALSE(CanCreateMenuItem());
294 } 326 }
295 327
296 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) { 328 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
297 SetLoginStatus(ash::user::LOGGED_IN_NONE); 329 SetLoginStatus(ash::user::LOGGED_IN_NONE);
298 330
299 // Confirms that the menu is visible. 331 // Confirms that the menu is visible.
300 EXPECT_TRUE(CanCreateMenuItem()); 332 EXPECT_TRUE(CanCreateMenuItem());
301 333
302 // The menu is keeping visible regardless of toggling spoken feedback. 334 // The menu is keeping visible regardless of toggling spoken feedback.
303 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 335 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
304 EXPECT_TRUE(CanCreateMenuItem()); 336 EXPECT_TRUE(CanCreateMenuItem());
305 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 337 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
306 EXPECT_TRUE(CanCreateMenuItem()); 338 EXPECT_TRUE(CanCreateMenuItem());
(...skipping 17 matching lines...) Expand all
324 EXPECT_TRUE(CanCreateMenuItem()); 356 EXPECT_TRUE(CanCreateMenuItem());
325 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 357 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
326 EXPECT_TRUE(CanCreateMenuItem()); 358 EXPECT_TRUE(CanCreateMenuItem());
327 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 359 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
328 EXPECT_TRUE(CanCreateMenuItem()); 360 EXPECT_TRUE(CanCreateMenuItem());
329 accessibility::EnableHighContrast(false); 361 accessibility::EnableHighContrast(false);
330 EXPECT_TRUE(CanCreateMenuItem()); 362 EXPECT_TRUE(CanCreateMenuItem());
331 SetMagnifierEnabled(false); 363 SetMagnifierEnabled(false);
332 EXPECT_TRUE(CanCreateMenuItem()); 364 EXPECT_TRUE(CanCreateMenuItem());
333 365
334 // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true. 366 SetShowAccessibilityOptionsInSystemTrayMenu(true);
335 Profile* profile = ProfileManager::GetDefaultProfile();
336 PrefService* prefs = profile->GetPrefs();
337 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
338 prefs->CommitPendingWrite();
339 367
340 // Confirms that the menu is keeping visible. 368 // Confirms that the menu is keeping visible.
341 EXPECT_TRUE(CanCreateMenuItem()); 369 EXPECT_TRUE(CanCreateMenuItem());
342 370
343 // Sets prefs::kShouldAlwaysShowAccessibilityMenu = false. 371 SetShowAccessibilityOptionsInSystemTrayMenu(false);
344 prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
345 prefs->CommitPendingWrite();
346 372
347 // Confirms that the menu is keeping visible. 373 // Confirms that the menu is keeping visible.
348 EXPECT_TRUE(CanCreateMenuItem()); 374 EXPECT_TRUE(CanCreateMenuItem());
349 } 375 }
350 376
351 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) { 377 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
352 // Enables high contrast mode. 378 // Enables high contrast mode.
353 accessibility::EnableHighContrast(true); 379 accessibility::EnableHighContrast(true);
354 EXPECT_TRUE(CanCreateMenuItem()); 380 EXPECT_TRUE(CanCreateMenuItem());
355 381
356 // Locks the screen. 382 // Locks the screen.
357 SetLoginStatus(ash::user::LOGGED_IN_LOCKED); 383 SetLoginStatus(ash::user::LOGGED_IN_LOCKED);
358 EXPECT_TRUE(CanCreateMenuItem()); 384 EXPECT_TRUE(CanCreateMenuItem());
359 385
360 // Disables high contrast mode. 386 // Disables high contrast mode.
361 accessibility::EnableHighContrast(false); 387 accessibility::EnableHighContrast(false);
362 388
363 // Confirms that the menu is still visible. 389 // Confirms that the menu is still visible.
364 EXPECT_TRUE(CanCreateMenuItem()); 390 EXPECT_TRUE(CanCreateMenuItem());
365 } 391 }
366 392
367 #if defined(OS_CHROMEOS) 393 #if defined(OS_CHROMEOS)
368 #define MAYBE_ClickDetailMenu DISABLED_ClickDetailMenu 394 #define MAYBE_ClickDetailMenu DISABLED_ClickDetailMenu
369 #else 395 #else
370 #define MAYBE_ClickDetailMenu ClickDetailMenu 396 #define MAYBE_ClickDetailMenu ClickDetailMenu
371 #endif 397 #endif
372 398
373 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, MAYBE_ClickDetailMenu) { 399 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, MAYBE_ClickDetailMenu) {
374 // Confirms that the check item toggles the spoken feedback. 400 // Confirms that the check item toggles the spoken feedback.
375 EXPECT_FALSE(accessibility::IsSpokenFeedbackEnabled()); 401 EXPECT_FALSE(accessibility::IsSpokenFeedbackEnabled());
376 402
377 EXPECT_TRUE(CreateDetailedMenu()); 403 EXPECT_TRUE(CreateDetailedMenu());
378 ClickSpokenFeedbackOnDetailMenu(); 404 ClickSpokenFeedbackOnDetailMenu();
379 EXPECT_TRUE(accessibility::IsSpokenFeedbackEnabled()); 405 EXPECT_TRUE(accessibility::IsSpokenFeedbackEnabled());
380 406
381 EXPECT_TRUE(CreateDetailedMenu()); 407 EXPECT_TRUE(CreateDetailedMenu());
382 ClickSpokenFeedbackOnDetailMenu(); 408 ClickSpokenFeedbackOnDetailMenu();
383 EXPECT_FALSE(accessibility::IsSpokenFeedbackEnabled()); 409 EXPECT_FALSE(accessibility::IsSpokenFeedbackEnabled());
(...skipping 15 matching lines...) Expand all
399 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled()); 425 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
400 EXPECT_TRUE(CreateDetailedMenu()); 426 EXPECT_TRUE(CreateDetailedMenu());
401 ClickScreenMagnifierOnDetailMenu(); 427 ClickScreenMagnifierOnDetailMenu();
402 EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled()); 428 EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled());
403 429
404 EXPECT_TRUE(CreateDetailedMenu()); 430 EXPECT_TRUE(CreateDetailedMenu());
405 ClickScreenMagnifierOnDetailMenu(); 431 ClickScreenMagnifierOnDetailMenu();
406 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled()); 432 EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
407 } 433 }
408 434
409 IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, CheckMarksOnDetailMenu) { 435 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
410 // At first, all of the check is unchecked. 436 // At first, all of the check is unchecked.
411 EXPECT_TRUE(CreateDetailedMenu()); 437 EXPECT_TRUE(CreateDetailedMenu());
412 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); 438 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
413 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); 439 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
414 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); 440 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
415 CloseDetailMenu(); 441 CloseDetailMenu();
416 442
417 // Enabling spoken feedback. 443 // Enabling spoken feedback.
418 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE); 444 accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
419 EXPECT_TRUE(CreateDetailedMenu()); 445 EXPECT_TRUE(CreateDetailedMenu());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE); 502 accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
477 accessibility::EnableHighContrast(false); 503 accessibility::EnableHighContrast(false);
478 SetMagnifierEnabled(false); 504 SetMagnifierEnabled(false);
479 EXPECT_TRUE(CreateDetailedMenu()); 505 EXPECT_TRUE(CreateDetailedMenu());
480 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); 506 EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
481 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); 507 EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
482 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); 508 EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
483 CloseDetailMenu(); 509 CloseDetailMenu();
484 } 510 }
485 511
512 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance,
513 TrayAccessibilityTest,
514 testing::Values(PREF_SERVICE,
515 POLICY));
516
486 } // namespace chromeos 517 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698