Home | History | Annotate | Download | only in system
      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
      3 // found in the LICENSE file.
      4 
      5 #include "ash/magnifier/magnification_controller.h"
      6 #include "ash/shell.h"
      7 #include "ash/system/tray/system_tray.h"
      8 #include "ash/system/tray_accessibility.h"
      9 #include "ash/system/user/login_status.h"
     10 #include "ash/test/shell_test_api.h"
     11 #include "ash/test/test_session_state_delegate.h"
     12 #include "base/callback.h"
     13 #include "base/command_line.h"
     14 #include "base/prefs/pref_service.h"
     15 #include "base/strings/utf_string_conversions.h"
     16 #include "chrome/browser/browser_process.h"
     17 #include "chrome/browser/chrome_notification_types.h"
     18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
     19 #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
     20 #include "chrome/browser/chromeos/login/helper.h"
     21 #include "chrome/browser/chromeos/login/login_utils.h"
     22 #include "chrome/browser/chromeos/login/startup_utils.h"
     23 #include "chrome/browser/extensions/api/braille_display_private/mock_braille_controller.h"
     24 #include "chrome/browser/profiles/profile.h"
     25 #include "chrome/browser/profiles/profile_manager.h"
     26 #include "chrome/common/chrome_switches.h"
     27 #include "chrome/common/pref_names.h"
     28 #include "chrome/test/base/in_process_browser_test.h"
     29 #include "chrome/test/base/testing_profile.h"
     30 #include "chromeos/chromeos_switches.h"
     31 #include "components/policy/core/browser/browser_policy_connector.h"
     32 #include "components/policy/core/common/external_data_fetcher.h"
     33 #include "components/policy/core/common/mock_configuration_policy_provider.h"
     34 #include "components/policy/core/common/policy_map.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"
     38 #include "policy/policy_constants.h"
     39 #include "testing/gtest/include/gtest/gtest.h"
     40 #include "ui/views/controls/label.h"
     41 #include "ui/views/widget/widget.h"
     42 
     43 using extensions::api::braille_display_private::BrailleObserver;
     44 using extensions::api::braille_display_private::DisplayState;
     45 using extensions::api::braille_display_private::MockBrailleController;
     46 using testing::Return;
     47 using testing::_;
     48 using testing::WithParamInterface;
     49 
     50 namespace chromeos {
     51 
     52 enum PrefSettingMechanism {
     53   PREF_SERVICE,
     54   POLICY,
     55 };
     56 
     57 void SetMagnifierEnabled(bool enabled) {
     58   MagnificationManager::Get()->SetMagnifierEnabled(enabled);
     59 }
     60 
     61 class TrayAccessibilityTest
     62     : public InProcessBrowserTest,
     63       public WithParamInterface<PrefSettingMechanism> {
     64  protected:
     65   TrayAccessibilityTest() {}
     66   virtual ~TrayAccessibilityTest() {}
     67 
     68   // The profile which should be used by these tests.
     69   Profile* GetProfile() { return ProfileManager::GetActiveUserProfile(); }
     70 
     71   virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
     72     EXPECT_CALL(provider_, IsInitializationComplete(_))
     73         .WillRepeatedly(Return(true));
     74     policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
     75     AccessibilityManager::SetBrailleControllerForTest(&braille_controller_);
     76   }
     77 
     78   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
     79     command_line->AppendSwitch(switches::kLoginManager);
     80     command_line->AppendSwitchASCII(switches::kLoginProfile,
     81                                     TestingProfile::kTestUserProfileDir);
     82   }
     83 
     84   virtual void SetUpOnMainThread() OVERRIDE {
     85     AccessibilityManager::Get()->SetProfileForTest(GetProfile());
     86     MagnificationManager::Get()->SetProfileForTest(GetProfile());
     87   }
     88 
     89   virtual void RunTestOnMainThreadLoop() OVERRIDE {
     90     // Need to mark oobe completed to show detailed views.
     91     StartupUtils::MarkOobeCompleted();
     92     InProcessBrowserTest::RunTestOnMainThreadLoop();
     93   }
     94 
     95   virtual void TearDownOnMainThread() OVERRIDE {
     96     AccessibilityManager::SetBrailleControllerForTest(NULL);
     97   }
     98 
     99   void SetShowAccessibilityOptionsInSystemTrayMenu(bool value) {
    100     if (GetParam() == PREF_SERVICE) {
    101       PrefService* prefs = GetProfile()->GetPrefs();
    102       prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, value);
    103     } else if (GetParam() == POLICY) {
    104       policy::PolicyMap policy_map;
    105       policy_map.Set(policy::key::kShowAccessibilityOptionsInSystemTrayMenu,
    106                      policy::POLICY_LEVEL_MANDATORY,
    107                      policy::POLICY_SCOPE_USER,
    108                      new base::FundamentalValue(value),
    109                      NULL);
    110       provider_.UpdateChromePolicy(policy_map);
    111       base::RunLoop().RunUntilIdle();
    112     } else {
    113       FAIL() << "Unknown test parameterization";
    114     }
    115   }
    116 
    117   ash::TrayAccessibility* tray() {
    118     return ash::Shell::GetInstance()->GetPrimarySystemTray()->
    119         GetTrayAccessibilityForTest();
    120   }
    121 
    122   const ash::TrayAccessibility* tray() const {
    123     return ash::Shell::GetInstance()
    124         ->GetPrimarySystemTray()
    125         ->GetTrayAccessibilityForTest();
    126   }
    127 
    128   bool IsTrayIconVisible() const { return tray()->tray_icon_visible_; }
    129 
    130   views::View* CreateMenuItem() {
    131     return tray()->CreateDefaultView(GetLoginStatus());
    132   }
    133 
    134   void DestroyMenuItem() {
    135     return tray()->DestroyDefaultView();
    136   }
    137 
    138   bool CanCreateMenuItem() {
    139     views::View* menu_item_view = CreateMenuItem();
    140     DestroyMenuItem();
    141     return menu_item_view != NULL;
    142   }
    143 
    144   void SetLoginStatus(ash::user::LoginStatus status) {
    145     tray()->UpdateAfterLoginStatusChange(status);
    146   }
    147 
    148   ash::user::LoginStatus GetLoginStatus() {
    149     return tray()->login_;
    150   }
    151 
    152   bool CreateDetailedMenu() {
    153     tray()->PopupDetailedView(0, false);
    154     return tray()->detailed_menu_ != NULL;
    155   }
    156 
    157   void CloseDetailMenu() {
    158     CHECK(tray()->detailed_menu_);
    159     tray()->DestroyDetailedView();
    160     tray()->detailed_menu_ = NULL;
    161   }
    162 
    163   void ClickSpokenFeedbackOnDetailMenu() {
    164     views::View* button = tray()->detailed_menu_->spoken_feedback_view_;
    165     ASSERT_TRUE(button);
    166     tray()->detailed_menu_->OnViewClicked(button);
    167   }
    168 
    169   void ClickHighContrastOnDetailMenu() {
    170     views::View* button = tray()->detailed_menu_->high_contrast_view_;
    171     ASSERT_TRUE(button);
    172     tray()->detailed_menu_->OnViewClicked(button);
    173   }
    174 
    175   void ClickScreenMagnifierOnDetailMenu() {
    176     views::View* button = tray()->detailed_menu_->screen_magnifier_view_;
    177     ASSERT_TRUE(button);
    178     tray()->detailed_menu_->OnViewClicked(button);
    179   }
    180 
    181   void ClickAutoclickOnDetailMenu() {
    182     views::View* button = tray()->detailed_menu_->autoclick_view_;
    183     ASSERT_TRUE(button);
    184     tray()->detailed_menu_->OnViewClicked(button);
    185   }
    186 
    187   void ClickVirtualKeyboardOnDetailMenu() {
    188     views::View* button = tray()->detailed_menu_->virtual_keyboard_view_;
    189     ASSERT_TRUE(button);
    190     tray()->detailed_menu_->OnViewClicked(button);
    191   }
    192 
    193   bool IsSpokenFeedbackEnabledOnDetailMenu() const {
    194     return tray()->detailed_menu_->spoken_feedback_enabled_;
    195   }
    196 
    197   bool IsHighContrastEnabledOnDetailMenu() const {
    198     return tray()->detailed_menu_->high_contrast_enabled_;
    199   }
    200 
    201   bool IsScreenMagnifierEnabledOnDetailMenu() const {
    202     return tray()->detailed_menu_->screen_magnifier_enabled_;
    203   }
    204 
    205   bool IsLargeCursorEnabledOnDetailMenu() const {
    206     return tray()->detailed_menu_->large_cursor_enabled_;
    207   }
    208 
    209   bool IsAutoclickEnabledOnDetailMenu() const {
    210     return tray()->detailed_menu_->autoclick_enabled_;
    211   }
    212 
    213   bool IsVirtualKeyboardEnabledOnDetailMenu() const {
    214     return tray()->detailed_menu_->virtual_keyboard_enabled_;
    215   }
    216 
    217   bool IsSpokenFeedbackMenuShownOnDetailMenu() const {
    218     return tray()->detailed_menu_->spoken_feedback_view_;
    219   }
    220 
    221   bool IsHighContrastMenuShownOnDetailMenu() const {
    222     return tray()->detailed_menu_->high_contrast_view_;
    223   }
    224 
    225   bool IsScreenMagnifierMenuShownOnDetailMenu() const {
    226     return tray()->detailed_menu_->screen_magnifier_view_;
    227   }
    228 
    229   bool IsLargeCursorMenuShownOnDetailMenu() const {
    230     return tray()->detailed_menu_->large_cursor_view_;
    231   }
    232 
    233   bool IsAutoclickMenuShownOnDetailMenu() const {
    234     return tray()->detailed_menu_->autoclick_view_;
    235   }
    236 
    237   bool IsVirtualKeyboardMenuShownOnDetailMenu() const {
    238     return tray()->detailed_menu_->virtual_keyboard_view_;
    239   }
    240 
    241   bool IsHelpShownOnDetailMenu() const {
    242     return tray()->detailed_menu_->help_view_;
    243   }
    244 
    245   bool IsSettingsShownOnDetailMenu() const {
    246     return tray()->detailed_menu_->settings_view_;
    247   }
    248 
    249   bool IsNotificationShown() const {
    250     return (tray()->detailed_popup_ &&
    251             !tray()->detailed_popup_->GetWidget()->IsClosed());
    252   }
    253 
    254   base::string16 GetNotificationText() const {
    255     if (IsNotificationShown())
    256       return tray()->detailed_popup_->label_for_test()->text();
    257     else
    258       return base::string16();
    259   }
    260 
    261   void SetBrailleConnected(bool connected) {
    262     braille_controller_.SetAvailable(connected);
    263     braille_controller_.GetObserver()->OnBrailleDisplayStateChanged(
    264         *braille_controller_.GetDisplayState());
    265   }
    266 
    267   policy::MockConfigurationPolicyProvider provider_;
    268   MockBrailleController braille_controller_;
    269 };
    270 
    271 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) {
    272   EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus());
    273 
    274   user_manager::UserManager::Get()->UserLoggedIn(
    275       "owner (at) invalid.domain", "owner (at) invalid.domain", true);
    276   user_manager::UserManager::Get()->SessionStarted();
    277 
    278   EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus());
    279 }
    280 
    281 // http://crbug.com/396342
    282 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowTrayIcon) {
    283   SetLoginStatus(ash::user::LOGGED_IN_NONE);
    284 
    285   // Confirms that the icon is invisible before login.
    286   EXPECT_FALSE(IsTrayIconVisible());
    287 
    288   user_manager::UserManager::Get()->UserLoggedIn(
    289       "owner (at) invalid.domain", "owner (at) invalid.domain", true);
    290   user_manager::UserManager::Get()->SessionStarted();
    291 
    292   // Confirms that the icon is invisible just after login.
    293   EXPECT_FALSE(IsTrayIconVisible());
    294 
    295   // Toggling spoken feedback changes the visibillity of the icon.
    296   AccessibilityManager::Get()->EnableSpokenFeedback(
    297       true, ash::A11Y_NOTIFICATION_NONE);
    298   EXPECT_TRUE(IsTrayIconVisible());
    299   AccessibilityManager::Get()->EnableSpokenFeedback(
    300       false, ash::A11Y_NOTIFICATION_NONE);
    301   EXPECT_FALSE(IsTrayIconVisible());
    302 
    303   // Toggling high contrast the visibillity of the icon.
    304   AccessibilityManager::Get()->EnableHighContrast(true);
    305   EXPECT_TRUE(IsTrayIconVisible());
    306   AccessibilityManager::Get()->EnableHighContrast(false);
    307   EXPECT_FALSE(IsTrayIconVisible());
    308 
    309   // Toggling magnifier the visibility of the icon.
    310   SetMagnifierEnabled(true);
    311   EXPECT_TRUE(IsTrayIconVisible());
    312   SetMagnifierEnabled(false);
    313   EXPECT_FALSE(IsTrayIconVisible());
    314 
    315   // Toggling the virtual keyboard setting changes the visibility of the a11y
    316   // icon.
    317   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    318   EXPECT_TRUE(IsTrayIconVisible());
    319   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    320   EXPECT_FALSE(IsTrayIconVisible());
    321 
    322   // Enabling all accessibility features.
    323   SetMagnifierEnabled(true);
    324   EXPECT_TRUE(IsTrayIconVisible());
    325   AccessibilityManager::Get()->EnableHighContrast(true);
    326   EXPECT_TRUE(IsTrayIconVisible());
    327   AccessibilityManager::Get()->EnableSpokenFeedback(
    328       true, ash::A11Y_NOTIFICATION_NONE);
    329   EXPECT_TRUE(IsTrayIconVisible());
    330   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    331   EXPECT_TRUE(IsTrayIconVisible());
    332   AccessibilityManager::Get()->EnableSpokenFeedback(
    333       false, ash::A11Y_NOTIFICATION_NONE);
    334   EXPECT_TRUE(IsTrayIconVisible());
    335   AccessibilityManager::Get()->EnableHighContrast(false);
    336   EXPECT_TRUE(IsTrayIconVisible());
    337   SetMagnifierEnabled(false);
    338   EXPECT_TRUE(IsTrayIconVisible());
    339   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    340   EXPECT_FALSE(IsTrayIconVisible());
    341 
    342   // Confirms that prefs::kShouldAlwaysShowAccessibilityMenu doesn't affect
    343   // the icon on the tray.
    344   SetShowAccessibilityOptionsInSystemTrayMenu(true);
    345   AccessibilityManager::Get()->EnableHighContrast(true);
    346   EXPECT_TRUE(IsTrayIconVisible());
    347   AccessibilityManager::Get()->EnableHighContrast(false);
    348   EXPECT_FALSE(IsTrayIconVisible());
    349 }
    350 
    351 // http://crbug.com/396342
    352 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, DISABLED_ShowMenu) {
    353   // Login
    354   user_manager::UserManager::Get()->UserLoggedIn(
    355       "owner (at) invalid.domain", "owner (at) invalid.domain", true);
    356   user_manager::UserManager::Get()->SessionStarted();
    357 
    358   SetShowAccessibilityOptionsInSystemTrayMenu(false);
    359 
    360   // Confirms that the menu is hidden.
    361   EXPECT_FALSE(CanCreateMenuItem());
    362 
    363   // Toggling spoken feedback changes the visibillity of the menu.
    364   AccessibilityManager::Get()->EnableSpokenFeedback(
    365       true, ash::A11Y_NOTIFICATION_NONE);
    366   EXPECT_TRUE(CanCreateMenuItem());
    367   AccessibilityManager::Get()->EnableSpokenFeedback(
    368       false, ash::A11Y_NOTIFICATION_NONE);
    369   EXPECT_FALSE(CanCreateMenuItem());
    370 
    371   // Toggling high contrast changes the visibillity of the menu.
    372   AccessibilityManager::Get()->EnableHighContrast(true);
    373   EXPECT_TRUE(CanCreateMenuItem());
    374   AccessibilityManager::Get()->EnableHighContrast(false);
    375   EXPECT_FALSE(CanCreateMenuItem());
    376 
    377   // Toggling screen magnifier changes the visibility of the menu.
    378   SetMagnifierEnabled(true);
    379   EXPECT_TRUE(CanCreateMenuItem());
    380   SetMagnifierEnabled(false);
    381   EXPECT_FALSE(CanCreateMenuItem());
    382 
    383   // Toggling autoclick changes the visibility of the menu.
    384   AccessibilityManager::Get()->EnableAutoclick(true);
    385   EXPECT_TRUE(CanCreateMenuItem());
    386   AccessibilityManager::Get()->EnableAutoclick(false);
    387   EXPECT_FALSE(CanCreateMenuItem());
    388 
    389   // Toggling virtual keyboard changes the visibility of the menu.
    390   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    391   EXPECT_TRUE(CanCreateMenuItem());
    392   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    393   EXPECT_FALSE(CanCreateMenuItem());
    394 
    395   // Enabling all accessibility features.
    396   SetMagnifierEnabled(true);
    397   EXPECT_TRUE(CanCreateMenuItem());
    398   AccessibilityManager::Get()->EnableHighContrast(true);
    399   EXPECT_TRUE(CanCreateMenuItem());
    400   AccessibilityManager::Get()->EnableSpokenFeedback(
    401       true, ash::A11Y_NOTIFICATION_NONE);
    402   EXPECT_TRUE(CanCreateMenuItem());
    403   AccessibilityManager::Get()->EnableAutoclick(true);
    404   EXPECT_TRUE(CanCreateMenuItem());
    405   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    406   EXPECT_TRUE(CanCreateMenuItem());
    407   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    408   EXPECT_TRUE(CanCreateMenuItem());
    409   AccessibilityManager::Get()->EnableAutoclick(false);
    410   EXPECT_TRUE(CanCreateMenuItem());
    411   AccessibilityManager::Get()->EnableSpokenFeedback(
    412       false, ash::A11Y_NOTIFICATION_NONE);
    413   EXPECT_TRUE(CanCreateMenuItem());
    414   AccessibilityManager::Get()->EnableHighContrast(false);
    415   EXPECT_TRUE(CanCreateMenuItem());
    416   SetMagnifierEnabled(false);
    417   EXPECT_FALSE(CanCreateMenuItem());
    418 }
    419 
    420 // http://crbug.com/396318
    421 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest,
    422     DISABLED_ShowMenuWithShowMenuOption) {
    423   // Login
    424   user_manager::UserManager::Get()->UserLoggedIn(
    425       "owner (at) invalid.domain", "owner (at) invalid.domain", true);
    426   user_manager::UserManager::Get()->SessionStarted();
    427 
    428   SetShowAccessibilityOptionsInSystemTrayMenu(true);
    429 
    430   // Confirms that the menu is visible.
    431   EXPECT_TRUE(CanCreateMenuItem());
    432 
    433   // The menu remains visible regardless of toggling spoken feedback.
    434   AccessibilityManager::Get()->EnableSpokenFeedback(
    435       true, ash::A11Y_NOTIFICATION_NONE);
    436   EXPECT_TRUE(CanCreateMenuItem());
    437   AccessibilityManager::Get()->EnableSpokenFeedback(
    438       false, ash::A11Y_NOTIFICATION_NONE);
    439   EXPECT_TRUE(CanCreateMenuItem());
    440 
    441   // The menu remains visible regardless of toggling high contrast.
    442   AccessibilityManager::Get()->EnableHighContrast(true);
    443   EXPECT_TRUE(CanCreateMenuItem());
    444   AccessibilityManager::Get()->EnableHighContrast(false);
    445   EXPECT_TRUE(CanCreateMenuItem());
    446 
    447   // The menu remains visible regardless of toggling screen magnifier.
    448   SetMagnifierEnabled(true);
    449   EXPECT_TRUE(CanCreateMenuItem());
    450   SetMagnifierEnabled(false);
    451   EXPECT_TRUE(CanCreateMenuItem());
    452 
    453   // The menu remains visible regardless of toggling autoclick.
    454   AccessibilityManager::Get()->EnableAutoclick(true);
    455   EXPECT_TRUE(CanCreateMenuItem());
    456   AccessibilityManager::Get()->EnableAutoclick(false);
    457   EXPECT_TRUE(CanCreateMenuItem());
    458 
    459   // The menu remains visible regardless of toggling on-screen keyboard.
    460   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    461   EXPECT_TRUE(CanCreateMenuItem());
    462   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    463   EXPECT_TRUE(CanCreateMenuItem());
    464 
    465   // Enabling all accessibility features.
    466   SetMagnifierEnabled(true);
    467   EXPECT_TRUE(CanCreateMenuItem());
    468   AccessibilityManager::Get()->EnableHighContrast(true);
    469   EXPECT_TRUE(CanCreateMenuItem());
    470   AccessibilityManager::Get()->EnableSpokenFeedback(
    471       true, ash::A11Y_NOTIFICATION_NONE);
    472   EXPECT_TRUE(CanCreateMenuItem());
    473   AccessibilityManager::Get()->EnableAutoclick(true);
    474   EXPECT_TRUE(CanCreateMenuItem());
    475   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    476   EXPECT_TRUE(CanCreateMenuItem());
    477   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    478   EXPECT_TRUE(CanCreateMenuItem());
    479   AccessibilityManager::Get()->EnableAutoclick(false);
    480   EXPECT_TRUE(CanCreateMenuItem());
    481   AccessibilityManager::Get()->EnableSpokenFeedback(
    482       false, ash::A11Y_NOTIFICATION_NONE);
    483   EXPECT_TRUE(CanCreateMenuItem());
    484   AccessibilityManager::Get()->EnableHighContrast(false);
    485   EXPECT_TRUE(CanCreateMenuItem());
    486   SetMagnifierEnabled(false);
    487   EXPECT_TRUE(CanCreateMenuItem());
    488 
    489   SetShowAccessibilityOptionsInSystemTrayMenu(false);
    490 
    491   // Confirms that the menu is invisible.
    492   EXPECT_FALSE(CanCreateMenuItem());
    493 }
    494 
    495 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
    496   SetLoginStatus(ash::user::LOGGED_IN_NONE);
    497 
    498   // Confirms that the menu is visible.
    499   EXPECT_TRUE(CanCreateMenuItem());
    500 
    501   // The menu remains visible regardless of toggling spoken feedback.
    502   AccessibilityManager::Get()->EnableSpokenFeedback(
    503       true, ash::A11Y_NOTIFICATION_NONE);
    504   EXPECT_TRUE(CanCreateMenuItem());
    505   AccessibilityManager::Get()->EnableSpokenFeedback(
    506       false, ash::A11Y_NOTIFICATION_NONE);
    507   EXPECT_TRUE(CanCreateMenuItem());
    508 
    509   // The menu remains visible regardless of toggling high contrast.
    510   AccessibilityManager::Get()->EnableHighContrast(true);
    511   EXPECT_TRUE(CanCreateMenuItem());
    512   AccessibilityManager::Get()->EnableHighContrast(false);
    513   EXPECT_TRUE(CanCreateMenuItem());
    514 
    515   // The menu remains visible regardless of toggling screen magnifier.
    516   SetMagnifierEnabled(true);
    517   EXPECT_TRUE(CanCreateMenuItem());
    518   SetMagnifierEnabled(false);
    519   EXPECT_TRUE(CanCreateMenuItem());
    520 
    521   // The menu remains visible regardless of toggling on-screen keyboard.
    522   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    523   EXPECT_TRUE(CanCreateMenuItem());
    524   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    525   EXPECT_TRUE(CanCreateMenuItem());
    526 
    527   // Enabling all accessibility features.
    528   SetMagnifierEnabled(true);
    529   EXPECT_TRUE(CanCreateMenuItem());
    530   AccessibilityManager::Get()->EnableHighContrast(true);
    531   EXPECT_TRUE(CanCreateMenuItem());
    532   AccessibilityManager::Get()->EnableSpokenFeedback(
    533       true, ash::A11Y_NOTIFICATION_NONE);
    534   EXPECT_TRUE(CanCreateMenuItem());
    535   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    536   EXPECT_TRUE(CanCreateMenuItem());
    537   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    538   EXPECT_TRUE(CanCreateMenuItem());
    539   AccessibilityManager::Get()->EnableSpokenFeedback(
    540       false, ash::A11Y_NOTIFICATION_NONE);
    541   EXPECT_TRUE(CanCreateMenuItem());
    542   AccessibilityManager::Get()->EnableHighContrast(false);
    543   EXPECT_TRUE(CanCreateMenuItem());
    544   SetMagnifierEnabled(false);
    545   EXPECT_TRUE(CanCreateMenuItem());
    546 
    547   SetShowAccessibilityOptionsInSystemTrayMenu(true);
    548 
    549   // Confirms that the menu remains visible.
    550   EXPECT_TRUE(CanCreateMenuItem());
    551 
    552   SetShowAccessibilityOptionsInSystemTrayMenu(false);
    553 
    554   // Confirms that the menu remains visible.
    555   EXPECT_TRUE(CanCreateMenuItem());
    556 }
    557 
    558 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowNotification) {
    559   const base::string16 BRAILLE_CONNECTED =
    560       base::ASCIIToUTF16("Braille display connected.");
    561   const base::string16 CHROMEVOX_ENABLED = base::ASCIIToUTF16(
    562       "ChromeVox (spoken feedback) is enabled.\nPress Ctrl+Alt+Z to disable.");
    563   const base::string16 BRAILLE_CONNECTED_AND_CHROMEVOX_ENABLED(
    564       BRAILLE_CONNECTED + base::ASCIIToUTF16(" ") + CHROMEVOX_ENABLED);
    565 
    566   EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    567 
    568   // Enabling spoken feedback should show the notification.
    569   AccessibilityManager::Get()->EnableSpokenFeedback(
    570       true, ash::A11Y_NOTIFICATION_SHOW);
    571   EXPECT_EQ(CHROMEVOX_ENABLED, GetNotificationText());
    572 
    573   // Connecting a braille display when spoken feedback is already enabled
    574   // should only show the message about the braille display.
    575   SetBrailleConnected(true);
    576   EXPECT_EQ(BRAILLE_CONNECTED, GetNotificationText());
    577 
    578   // Neither disconnecting a braille display, nor disabling spoken feedback
    579   // should show any notification.
    580   SetBrailleConnected(false);
    581   EXPECT_TRUE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    582   EXPECT_FALSE(IsNotificationShown());
    583   AccessibilityManager::Get()->EnableSpokenFeedback(
    584       false, ash::A11Y_NOTIFICATION_SHOW);
    585   EXPECT_FALSE(IsNotificationShown());
    586   EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    587 
    588   // Connecting a braille display should enable spoken feedback and show
    589   // both messages.
    590   SetBrailleConnected(true);
    591   EXPECT_TRUE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    592   EXPECT_EQ(BRAILLE_CONNECTED_AND_CHROMEVOX_ENABLED, GetNotificationText());
    593 }
    594 
    595 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
    596   // Enables high contrast mode.
    597   AccessibilityManager::Get()->EnableHighContrast(true);
    598   EXPECT_TRUE(CanCreateMenuItem());
    599 
    600   // Locks the screen.
    601   SetLoginStatus(ash::user::LOGGED_IN_LOCKED);
    602   EXPECT_TRUE(CanCreateMenuItem());
    603 
    604   // Disables high contrast mode.
    605   AccessibilityManager::Get()->EnableHighContrast(false);
    606 
    607   // Confirms that the menu is still visible.
    608   EXPECT_TRUE(CanCreateMenuItem());
    609 }
    610 
    611 #if defined(OS_CHROMEOS)
    612 #define MAYBE_ClickDetailMenu DISABLED_ClickDetailMenu
    613 #else
    614 #define MAYBE_ClickDetailMenu ClickDetailMenu
    615 #endif
    616 
    617 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, MAYBE_ClickDetailMenu) {
    618   // Confirms that the check item toggles the spoken feedback.
    619   EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    620 
    621   EXPECT_TRUE(CreateDetailedMenu());
    622   ClickSpokenFeedbackOnDetailMenu();
    623   EXPECT_TRUE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    624 
    625   EXPECT_TRUE(CreateDetailedMenu());
    626   ClickSpokenFeedbackOnDetailMenu();
    627   EXPECT_FALSE(AccessibilityManager::Get()->IsSpokenFeedbackEnabled());
    628 
    629   // Confirms that the check item toggles the high contrast.
    630   EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
    631 
    632   EXPECT_TRUE(CreateDetailedMenu());
    633   ClickHighContrastOnDetailMenu();
    634   EXPECT_TRUE(AccessibilityManager::Get()->IsHighContrastEnabled());
    635 
    636   EXPECT_TRUE(CreateDetailedMenu());
    637   ClickHighContrastOnDetailMenu();
    638   EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
    639 
    640   // Confirms that the check item toggles the magnifier.
    641   EXPECT_FALSE(AccessibilityManager::Get()->IsHighContrastEnabled());
    642 
    643   EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
    644   EXPECT_TRUE(CreateDetailedMenu());
    645   ClickScreenMagnifierOnDetailMenu();
    646   EXPECT_TRUE(MagnificationManager::Get()->IsMagnifierEnabled());
    647 
    648   EXPECT_TRUE(CreateDetailedMenu());
    649   ClickScreenMagnifierOnDetailMenu();
    650   EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
    651 
    652   // Confirms that the check item toggles autoclick.
    653   EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled());
    654 
    655   EXPECT_TRUE(CreateDetailedMenu());
    656   ClickAutoclickOnDetailMenu();
    657   EXPECT_TRUE(AccessibilityManager::Get()->IsAutoclickEnabled());
    658 
    659   EXPECT_TRUE(CreateDetailedMenu());
    660   ClickAutoclickOnDetailMenu();
    661   EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled());
    662 
    663   // Confirms that the check item toggles on-screen keyboard.
    664   EXPECT_FALSE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
    665 
    666   EXPECT_TRUE(CreateDetailedMenu());
    667   ClickVirtualKeyboardOnDetailMenu();
    668   EXPECT_TRUE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
    669 
    670   EXPECT_TRUE(CreateDetailedMenu());
    671   ClickVirtualKeyboardOnDetailMenu();
    672   EXPECT_FALSE(AccessibilityManager::Get()->IsVirtualKeyboardEnabled());
    673 }
    674 
    675 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
    676   SetLoginStatus(ash::user::LOGGED_IN_NONE);
    677 
    678   // At first, all of the check is unchecked.
    679   EXPECT_TRUE(CreateDetailedMenu());
    680   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    681   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    682   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    683   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    684   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    685   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    686   CloseDetailMenu();
    687 
    688   // Enabling spoken feedback.
    689   AccessibilityManager::Get()->EnableSpokenFeedback(
    690       true, ash::A11Y_NOTIFICATION_NONE);
    691   EXPECT_TRUE(CreateDetailedMenu());
    692   EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu());
    693   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    694   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    695   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    696   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    697   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    698   CloseDetailMenu();
    699 
    700   // Disabling spoken feedback.
    701   AccessibilityManager::Get()->EnableSpokenFeedback(
    702       false, ash::A11Y_NOTIFICATION_NONE);
    703   EXPECT_TRUE(CreateDetailedMenu());
    704   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    705   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    706   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    707   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    708   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    709   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    710   CloseDetailMenu();
    711 
    712   // Enabling high contrast.
    713   AccessibilityManager::Get()->EnableHighContrast(true);
    714   EXPECT_TRUE(CreateDetailedMenu());
    715   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    716   EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu());
    717   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    718   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    719   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    720   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    721   CloseDetailMenu();
    722 
    723   // Disabling high contrast.
    724   AccessibilityManager::Get()->EnableHighContrast(false);
    725   EXPECT_TRUE(CreateDetailedMenu());
    726   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    727   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    728   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    729   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    730   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    731   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    732   CloseDetailMenu();
    733 
    734   // Enabling full screen magnifier.
    735   SetMagnifierEnabled(true);
    736   EXPECT_TRUE(CreateDetailedMenu());
    737   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    738   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    739   EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu());
    740   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    741   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    742   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    743   CloseDetailMenu();
    744 
    745   // Disabling screen magnifier.
    746   SetMagnifierEnabled(false);
    747   EXPECT_TRUE(CreateDetailedMenu());
    748   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    749   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    750   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    751   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    752   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    753   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    754   CloseDetailMenu();
    755 
    756   // Enabling large cursor.
    757   AccessibilityManager::Get()->EnableLargeCursor(true);
    758   EXPECT_TRUE(CreateDetailedMenu());
    759   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    760   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    761   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    762   EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu());
    763   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    764   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    765   CloseDetailMenu();
    766 
    767   // Disabling large cursor.
    768   AccessibilityManager::Get()->EnableLargeCursor(false);
    769   EXPECT_TRUE(CreateDetailedMenu());
    770   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    771   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    772   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    773   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    774   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    775   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    776   CloseDetailMenu();
    777 
    778   // Enable on-screen keyboard.
    779   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    780   EXPECT_TRUE(CreateDetailedMenu());
    781   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    782   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    783   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    784   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    785   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    786   EXPECT_TRUE(IsVirtualKeyboardEnabledOnDetailMenu());
    787   CloseDetailMenu();
    788 
    789   // Disable on-screen keyboard.
    790   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    791   EXPECT_TRUE(CreateDetailedMenu());
    792   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    793   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    794   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    795   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    796   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    797   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    798   CloseDetailMenu();
    799 
    800   // Enabling all of the a11y features.
    801   AccessibilityManager::Get()->EnableSpokenFeedback(
    802       true, ash::A11Y_NOTIFICATION_NONE);
    803   AccessibilityManager::Get()->EnableHighContrast(true);
    804   SetMagnifierEnabled(true);
    805   AccessibilityManager::Get()->EnableLargeCursor(true);
    806   AccessibilityManager::Get()->EnableVirtualKeyboard(true);
    807   EXPECT_TRUE(CreateDetailedMenu());
    808   EXPECT_TRUE(IsSpokenFeedbackEnabledOnDetailMenu());
    809   EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu());
    810   EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu());
    811   EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu());
    812   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    813   EXPECT_TRUE(IsVirtualKeyboardEnabledOnDetailMenu());
    814   CloseDetailMenu();
    815 
    816   // Disabling all of the a11y features.
    817   AccessibilityManager::Get()->EnableSpokenFeedback(
    818       false, ash::A11Y_NOTIFICATION_NONE);
    819   AccessibilityManager::Get()->EnableHighContrast(false);
    820   SetMagnifierEnabled(false);
    821   AccessibilityManager::Get()->EnableLargeCursor(false);
    822   AccessibilityManager::Get()->EnableVirtualKeyboard(false);
    823   EXPECT_TRUE(CreateDetailedMenu());
    824   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    825   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    826   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    827   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    828   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    829   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    830   CloseDetailMenu();
    831 
    832   // Autoclick is disabled on login screen.
    833   SetLoginStatus(ash::user::LOGGED_IN_USER);
    834 
    835   // Enabling autoclick.
    836   AccessibilityManager::Get()->EnableAutoclick(true);
    837   EXPECT_TRUE(CreateDetailedMenu());
    838   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    839   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    840   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    841   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    842   EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu());
    843   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    844   CloseDetailMenu();
    845 
    846   // Disabling autoclick.
    847   AccessibilityManager::Get()->EnableAutoclick(false);
    848   EXPECT_TRUE(CreateDetailedMenu());
    849   EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
    850   EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu());
    851   EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu());
    852   EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu());
    853   EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu());
    854   EXPECT_FALSE(IsVirtualKeyboardEnabledOnDetailMenu());
    855   CloseDetailMenu();
    856 }
    857 
    858 IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) {
    859   SetLoginStatus(ash::user::LOGGED_IN_NONE);
    860   EXPECT_TRUE(CreateDetailedMenu());
    861   EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu());
    862   EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu());
    863   EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu());
    864   EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu());
    865   EXPECT_FALSE(IsAutoclickMenuShownOnDetailMenu());
    866   EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu());
    867   EXPECT_FALSE(IsHelpShownOnDetailMenu());
    868   EXPECT_FALSE(IsSettingsShownOnDetailMenu());
    869   CloseDetailMenu();
    870 
    871   SetLoginStatus(ash::user::LOGGED_IN_USER);
    872   EXPECT_TRUE(CreateDetailedMenu());
    873   EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu());
    874   EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu());
    875   EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu());
    876   EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu());
    877   EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu());
    878   EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu());
    879   EXPECT_TRUE(IsHelpShownOnDetailMenu());
    880   EXPECT_TRUE(IsSettingsShownOnDetailMenu());
    881   CloseDetailMenu();
    882 
    883   SetLoginStatus(ash::user::LOGGED_IN_LOCKED);
    884   EXPECT_TRUE(CreateDetailedMenu());
    885   EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu());
    886   EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu());
    887   EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu());
    888   EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu());
    889   EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu());
    890   EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu());
    891   EXPECT_FALSE(IsHelpShownOnDetailMenu());
    892   EXPECT_FALSE(IsSettingsShownOnDetailMenu());
    893   CloseDetailMenu();
    894 
    895   ash::test::TestSessionStateDelegate* session_state_delegate =
    896       new ash::test::TestSessionStateDelegate;
    897   ash::test::ShellTestApi test_api(ash::Shell::GetInstance());
    898   test_api.SetSessionStateDelegate(session_state_delegate);
    899   session_state_delegate->SetUserAddingScreenRunning(true);
    900   SetLoginStatus(ash::user::LOGGED_IN_USER);
    901   EXPECT_TRUE(CreateDetailedMenu());
    902   EXPECT_TRUE(IsSpokenFeedbackMenuShownOnDetailMenu());
    903   EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu());
    904   EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu());
    905   EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu());
    906   EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu());
    907   EXPECT_TRUE(IsVirtualKeyboardMenuShownOnDetailMenu());
    908   EXPECT_FALSE(IsHelpShownOnDetailMenu());
    909   EXPECT_FALSE(IsSettingsShownOnDetailMenu());
    910   CloseDetailMenu();
    911 }
    912 
    913 INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance,
    914                         TrayAccessibilityTest,
    915                         testing::Values(PREF_SERVICE,
    916                                         POLICY));
    917 
    918 }  // namespace chromeos
    919