| OLD | NEW |
| 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 "ash/test/shell_test_api.h" | 10 #include "ash/test/shell_test_api.h" |
| 11 #include "ash/test/test_session_state_delegate.h" | 11 #include "ash/test/test_session_state_delegate.h" |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/command_line.h" | 13 #include "base/command_line.h" |
| 14 #include "base/prefs/pref_service.h" | 14 #include "base/prefs/pref_service.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 16 #include "chrome/browser/browser_process.h" | 16 #include "chrome/browser/browser_process.h" |
| 17 #include "chrome/browser/chrome_notification_types.h" | 17 #include "chrome/browser/chrome_notification_types.h" |
| 18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
| 19 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" | 19 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" |
| 20 #include "chrome/browser/chromeos/login/helper.h" | 20 #include "chrome/browser/chromeos/login/helper.h" |
| 21 #include "chrome/browser/chromeos/login/login_utils.h" | 21 #include "chrome/browser/chromeos/login/login_utils.h" |
| 22 #include "chrome/browser/chromeos/login/startup_utils.h" | 22 #include "chrome/browser/chromeos/login/startup_utils.h" |
| 23 #include "chrome/browser/chromeos/login/users/user_manager.h" | |
| 24 #include "chrome/browser/extensions/api/braille_display_private/mock_braille_con
troller.h" | 23 #include "chrome/browser/extensions/api/braille_display_private/mock_braille_con
troller.h" |
| 25 #include "chrome/browser/profiles/profile.h" | 24 #include "chrome/browser/profiles/profile.h" |
| 26 #include "chrome/browser/profiles/profile_manager.h" | 25 #include "chrome/browser/profiles/profile_manager.h" |
| 27 #include "chrome/common/chrome_switches.h" | 26 #include "chrome/common/chrome_switches.h" |
| 28 #include "chrome/common/pref_names.h" | 27 #include "chrome/common/pref_names.h" |
| 29 #include "chrome/test/base/in_process_browser_test.h" | 28 #include "chrome/test/base/in_process_browser_test.h" |
| 30 #include "chrome/test/base/testing_profile.h" | 29 #include "chrome/test/base/testing_profile.h" |
| 31 #include "chromeos/chromeos_switches.h" | 30 #include "chromeos/chromeos_switches.h" |
| 32 #include "components/policy/core/browser/browser_policy_connector.h" | 31 #include "components/policy/core/browser/browser_policy_connector.h" |
| 33 #include "components/policy/core/common/external_data_fetcher.h" | 32 #include "components/policy/core/common/external_data_fetcher.h" |
| 34 #include "components/policy/core/common/mock_configuration_policy_provider.h" | 33 #include "components/policy/core/common/mock_configuration_policy_provider.h" |
| 35 #include "components/policy/core/common/policy_map.h" | 34 #include "components/policy/core/common/policy_map.h" |
| 36 #include "components/policy/core/common/policy_types.h" | 35 #include "components/policy/core/common/policy_types.h" |
| 36 #include "components/user_manager/user_manager.h" |
| 37 #include "content/public/test/test_utils.h" | 37 #include "content/public/test/test_utils.h" |
| 38 #include "policy/policy_constants.h" | 38 #include "policy/policy_constants.h" |
| 39 #include "testing/gtest/include/gtest/gtest.h" | 39 #include "testing/gtest/include/gtest/gtest.h" |
| 40 #include "ui/views/controls/label.h" | 40 #include "ui/views/controls/label.h" |
| 41 #include "ui/views/widget/widget.h" | 41 #include "ui/views/widget/widget.h" |
| 42 | 42 |
| 43 using extensions::api::braille_display_private::BrailleObserver; | 43 using extensions::api::braille_display_private::BrailleObserver; |
| 44 using extensions::api::braille_display_private::DisplayState; | 44 using extensions::api::braille_display_private::DisplayState; |
| 45 using extensions::api::braille_display_private::MockBrailleController; | 45 using extensions::api::braille_display_private::MockBrailleController; |
| 46 using testing::Return; | 46 using testing::Return; |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 *braille_controller_.GetDisplayState()); | 264 *braille_controller_.GetDisplayState()); |
| 265 } | 265 } |
| 266 | 266 |
| 267 policy::MockConfigurationPolicyProvider provider_; | 267 policy::MockConfigurationPolicyProvider provider_; |
| 268 MockBrailleController braille_controller_; | 268 MockBrailleController braille_controller_; |
| 269 }; | 269 }; |
| 270 | 270 |
| 271 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { | 271 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) { |
| 272 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); | 272 EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus()); |
| 273 | 273 |
| 274 UserManager::Get()->UserLoggedIn( | 274 user_manager::UserManager::Get()->UserLoggedIn( |
| 275 "owner@invalid.domain", "owner@invalid.domain", true); | 275 "owner@invalid.domain", "owner@invalid.domain", true); |
| 276 UserManager::Get()->SessionStarted(); | 276 user_manager::UserManager::Get()->SessionStarted(); |
| 277 | 277 |
| 278 EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus()); | 278 EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus()); |
| 279 } | 279 } |
| 280 | 280 |
| 281 // http://crbug.com/396342 | 281 // http://crbug.com/396342 |
| 282 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowTrayIcon) { | 282 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowTrayIcon) { |
| 283 SetLoginStatus(ash::user::LOGGED_IN_NONE); | 283 SetLoginStatus(ash::user::LOGGED_IN_NONE); |
| 284 | 284 |
| 285 // Confirms that the icon is invisible before login. | 285 // Confirms that the icon is invisible before login. |
| 286 EXPECT_FALSE(IsTrayIconVisible()); | 286 EXPECT_FALSE(IsTrayIconVisible()); |
| 287 | 287 |
| 288 UserManager::Get()->UserLoggedIn( | 288 user_manager::UserManager::Get()->UserLoggedIn( |
| 289 "owner@invalid.domain", "owner@invalid.domain", true); | 289 "owner@invalid.domain", "owner@invalid.domain", true); |
| 290 UserManager::Get()->SessionStarted(); | 290 user_manager::UserManager::Get()->SessionStarted(); |
| 291 | 291 |
| 292 // Confirms that the icon is invisible just after login. | 292 // Confirms that the icon is invisible just after login. |
| 293 EXPECT_FALSE(IsTrayIconVisible()); | 293 EXPECT_FALSE(IsTrayIconVisible()); |
| 294 | 294 |
| 295 // Toggling spoken feedback changes the visibillity of the icon. | 295 // Toggling spoken feedback changes the visibillity of the icon. |
| 296 AccessibilityManager::Get()->EnableSpokenFeedback( | 296 AccessibilityManager::Get()->EnableSpokenFeedback( |
| 297 true, ash::A11Y_NOTIFICATION_NONE); | 297 true, ash::A11Y_NOTIFICATION_NONE); |
| 298 EXPECT_TRUE(IsTrayIconVisible()); | 298 EXPECT_TRUE(IsTrayIconVisible()); |
| 299 AccessibilityManager::Get()->EnableSpokenFeedback( | 299 AccessibilityManager::Get()->EnableSpokenFeedback( |
| 300 false, ash::A11Y_NOTIFICATION_NONE); | 300 false, ash::A11Y_NOTIFICATION_NONE); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 SetShowAccessibilityOptionsInSystemTrayMenu(true); | 344 SetShowAccessibilityOptionsInSystemTrayMenu(true); |
| 345 AccessibilityManager::Get()->EnableHighContrast(true); | 345 AccessibilityManager::Get()->EnableHighContrast(true); |
| 346 EXPECT_TRUE(IsTrayIconVisible()); | 346 EXPECT_TRUE(IsTrayIconVisible()); |
| 347 AccessibilityManager::Get()->EnableHighContrast(false); | 347 AccessibilityManager::Get()->EnableHighContrast(false); |
| 348 EXPECT_FALSE(IsTrayIconVisible()); | 348 EXPECT_FALSE(IsTrayIconVisible()); |
| 349 } | 349 } |
| 350 | 350 |
| 351 // http://crbug.com/396342 | 351 // http://crbug.com/396342 |
| 352 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenu) { | 352 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenu) { |
| 353 // Login | 353 // Login |
| 354 UserManager::Get()->UserLoggedIn( | 354 user_manager::UserManager::Get()->UserLoggedIn( |
| 355 "owner@invalid.domain", "owner@invalid.domain", true); | 355 "owner@invalid.domain", "owner@invalid.domain", true); |
| 356 UserManager::Get()->SessionStarted(); | 356 user_manager::UserManager::Get()->SessionStarted(); |
| 357 | 357 |
| 358 SetShowAccessibilityOptionsInSystemTrayMenu(false); | 358 SetShowAccessibilityOptionsInSystemTrayMenu(false); |
| 359 | 359 |
| 360 // Confirms that the menu is hidden. | 360 // Confirms that the menu is hidden. |
| 361 EXPECT_FALSE(CanCreateMenuItem()); | 361 EXPECT_FALSE(CanCreateMenuItem()); |
| 362 | 362 |
| 363 // Toggling spoken feedback changes the visibillity of the menu. | 363 // Toggling spoken feedback changes the visibillity of the menu. |
| 364 AccessibilityManager::Get()->EnableSpokenFeedback( | 364 AccessibilityManager::Get()->EnableSpokenFeedback( |
| 365 true, ash::A11Y_NOTIFICATION_NONE); | 365 true, ash::A11Y_NOTIFICATION_NONE); |
| 366 EXPECT_TRUE(CanCreateMenuItem()); | 366 EXPECT_TRUE(CanCreateMenuItem()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 AccessibilityManager::Get()->EnableHighContrast(false); | 414 AccessibilityManager::Get()->EnableHighContrast(false); |
| 415 EXPECT_TRUE(CanCreateMenuItem()); | 415 EXPECT_TRUE(CanCreateMenuItem()); |
| 416 SetMagnifierEnabled(false); | 416 SetMagnifierEnabled(false); |
| 417 EXPECT_FALSE(CanCreateMenuItem()); | 417 EXPECT_FALSE(CanCreateMenuItem()); |
| 418 } | 418 } |
| 419 | 419 |
| 420 // http://crbug.com/396318 | 420 // http://crbug.com/396318 |
| 421 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, | 421 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, |
| 422 DISABLED_ShowMenuWithShowMenuOption) { | 422 DISABLED_ShowMenuWithShowMenuOption) { |
| 423 // Login | 423 // Login |
| 424 UserManager::Get()->UserLoggedIn( | 424 user_manager::UserManager::Get()->UserLoggedIn( |
| 425 "owner@invalid.domain", "owner@invalid.domain", true); | 425 "owner@invalid.domain", "owner@invalid.domain", true); |
| 426 UserManager::Get()->SessionStarted(); | 426 user_manager::UserManager::Get()->SessionStarted(); |
| 427 | 427 |
| 428 SetShowAccessibilityOptionsInSystemTrayMenu(true); | 428 SetShowAccessibilityOptionsInSystemTrayMenu(true); |
| 429 | 429 |
| 430 // Confirms that the menu is visible. | 430 // Confirms that the menu is visible. |
| 431 EXPECT_TRUE(CanCreateMenuItem()); | 431 EXPECT_TRUE(CanCreateMenuItem()); |
| 432 | 432 |
| 433 // The menu remains visible regardless of toggling spoken feedback. | 433 // The menu remains visible regardless of toggling spoken feedback. |
| 434 AccessibilityManager::Get()->EnableSpokenFeedback( | 434 AccessibilityManager::Get()->EnableSpokenFeedback( |
| 435 true, ash::A11Y_NOTIFICATION_NONE); | 435 true, ash::A11Y_NOTIFICATION_NONE); |
| 436 EXPECT_TRUE(CanCreateMenuItem()); | 436 EXPECT_TRUE(CanCreateMenuItem()); |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 909 EXPECT_FALSE(IsSettingsShownOnDetailMenu()); | 909 EXPECT_FALSE(IsSettingsShownOnDetailMenu()); |
| 910 CloseDetailMenu(); | 910 CloseDetailMenu(); |
| 911 } | 911 } |
| 912 | 912 |
| 913 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance, | 913 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance, |
| 914 TrayAccessibilityTest, | 914 TrayAccessibilityTest, |
| 915 testing::Values(PREF_SERVICE, | 915 testing::Values(PREF_SERVICE, |
| 916 POLICY)); | 916 POLICY)); |
| 917 | 917 |
| 918 } // namespace chromeos | 918 } // namespace chromeos |
| OLD | NEW |