Commit c179c884 authored by Qiang Xu's avatar Qiang Xu Committed by Commit Bot

cros: move TrayAccessibilityLoginScreenTest.* to ash

Chanes:
The entire tray_accessibility_browsertest.cc should be moved to ash/.
This CL is one step closer.

Bug: 594887
Test: trybot tests
Change-Id: I503065ce0f371260272b7da44541a83a8a89bdeb
Reviewed-on: https://chromium-review.googlesource.com/979705Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Commit-Queue: Qiang Xu <warx@google.com>
Cr-Commit-Position: refs/heads/master@{#545841}
parent 23cbed68
......@@ -29,6 +29,7 @@ class View;
namespace ash {
class HoverHighlightView;
class SystemTrayItem;
class TrayAccessibilityLoginScreenTest;
class TrayAccessibilityTest;
namespace tray {
......@@ -42,6 +43,7 @@ class AccessibilityDetailedView : public TrayDetailsView {
void OnAccessibilityStatusChanged();
private:
friend class ::ash::TrayAccessibilityLoginScreenTest;
friend class ::ash::TrayAccessibilityTest;
friend class chromeos::TrayAccessibilityTest;
......@@ -104,6 +106,7 @@ class TrayAccessibility : public TrayImageItem, public AccessibilityObserver {
~TrayAccessibility() override;
private:
friend class TrayAccessibilityLoginScreenTest;
friend class TrayAccessibilityTest;
friend class chromeos::TrayAccessibilityTest;
......
......@@ -9,9 +9,10 @@
#include "ash/session/session_controller.h"
#include "ash/shell.h"
#include "ash/system/tray/system_tray.h"
#include "ash/system/tray/system_tray_notifier.h"
#include "ash/system/tray/system_tray_test_api.h"
#include "ash/test/ash_test_base.h"
#include "base/macros.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "components/prefs/pref_service.h"
#include "ui/message_center/message_center.h"
......@@ -37,7 +38,7 @@ void SetLargeCursorEnabledFromSettings(bool enabled) {
} // namespace
class TrayAccessibilityTest : public AshTestBase {
public:
protected:
TrayAccessibilityTest() = default;
~TrayAccessibilityTest() override = default;
......@@ -122,42 +123,38 @@ class TrayAccessibilityTest : public AshTestBase {
views::Button::STATE_NORMAL;
}
TrayAccessibility* tray_item_; // Not owned.
private:
TrayAccessibility* tray_item_;
DISALLOW_COPY_AND_ASSIGN(TrayAccessibilityTest);
};
// Tests that the icon becomes visible when the tray menu toggles a feature.
TEST_F(TrayAccessibilityTest, VisibilityFromMenu) {
SystemTray* tray = GetPrimarySystemTray();
TrayAccessibility* tray_item = SystemTrayTestApi(tray).tray_accessibility();
// By default the icon isn't visible.
EXPECT_FALSE(tray_item->tray_view()->visible());
EXPECT_FALSE(tray_item_->tray_view()->visible());
// Turning on an accessibility feature shows the icon.
SetLargeCursorEnabledFromMenu(true);
EXPECT_TRUE(tray_item->tray_view()->visible());
EXPECT_TRUE(tray_item_->tray_view()->visible());
// Turning off all accessibility features hides the icon.
SetLargeCursorEnabledFromMenu(false);
EXPECT_FALSE(tray_item->tray_view()->visible());
EXPECT_FALSE(tray_item_->tray_view()->visible());
}
// Tests that the icon becomes visible when webui settings toggles a feature.
TEST_F(TrayAccessibilityTest, VisibilityFromSettings) {
SystemTray* tray = GetPrimarySystemTray();
TrayAccessibility* tray_item = SystemTrayTestApi(tray).tray_accessibility();
// By default the icon isn't visible.
EXPECT_FALSE(tray_item->tray_view()->visible());
EXPECT_FALSE(tray_item_->tray_view()->visible());
// Turning on an accessibility pref shows the icon.
SetLargeCursorEnabledFromSettings(true);
EXPECT_TRUE(tray_item->tray_view()->visible());
EXPECT_TRUE(tray_item_->tray_view()->visible());
// Turning off all accessibility prefs hides the icon.
SetLargeCursorEnabledFromSettings(false);
EXPECT_FALSE(tray_item->tray_view()->visible());
EXPECT_FALSE(tray_item_->tray_view()->visible());
}
TEST_F(TrayAccessibilityTest, ShowNotificationOnSpokenFeedback) {
......@@ -285,4 +282,56 @@ TEST_F(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) {
UnblockUserSession();
}
class TrayAccessibilityLoginScreenTest : public NoSessionAshTestBase {
protected:
TrayAccessibilityLoginScreenTest() = default;
~TrayAccessibilityLoginScreenTest() override = default;
// NoSessionAshTestBase:
void SetUp() override {
NoSessionAshTestBase::SetUp();
tray_item_ = SystemTrayTestApi(Shell::Get()->GetPrimarySystemTray())
.tray_accessibility();
}
// In material design we show the help button but theme it as disabled if
// it is not possible to load the help page.
bool IsHelpAvailableOnDetailMenu() {
return tray_item_->detailed_menu_->help_view_->state() ==
views::Button::STATE_NORMAL;
}
// In material design we show the settings button but theme it as disabled if
// it is not possible to load the settings page.
bool IsSettingsAvailableOnDetailMenu() {
return tray_item_->detailed_menu_->settings_view_->state() ==
views::Button::STATE_NORMAL;
}
TrayAccessibility* tray_item_; // Not owned.
private:
DISALLOW_COPY_AND_ASSIGN(TrayAccessibilityLoginScreenTest);
};
TEST_F(TrayAccessibilityLoginScreenTest, LoginStatus) {
// By default the icon is not visible at the login screen.
views::View* tray_icon = tray_item_->tray_view();
EXPECT_FALSE(tray_icon->visible());
// Enabling an accessibility feature shows the icon.
SetLargeCursorEnabledFromMenu(true);
EXPECT_TRUE(tray_icon->visible());
// Disabling the accessibility feature hides the icon.
SetLargeCursorEnabledFromMenu(false);
EXPECT_FALSE(tray_icon->visible());
// Settings and help are not available on the login screen because they use
// webui.
tray_item_->ShowDetailedView(0);
EXPECT_FALSE(IsHelpAvailableOnDetailMenu());
EXPECT_FALSE(IsSettingsAvailableOnDetailMenu());
}
} // namespace ash
......@@ -20,7 +20,6 @@
#include "chrome/browser/chromeos/accessibility/magnification_manager.h"
#include "chrome/browser/chromeos/login/helper.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/test/oobe_base_test.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/ash/session_controller_client.h"
......@@ -329,54 +328,12 @@ class TrayAccessibilityTest
return tray()->detailed_menu_->sticky_keys_enabled_;
}
// In material design we show the help button but theme it as disabled if
// it is not possible to load the help page.
static bool IsHelpAvailableOnDetailMenu() {
return tray()->detailed_menu_->help_view_->state() ==
views::Button::STATE_NORMAL;
}
// In material design we show the settings button but theme it as disabled if
// it is not possible to load the settings page.
static bool IsSettingsAvailableOnDetailMenu() {
return tray()->detailed_menu_->settings_view_->state() ==
views::Button::STATE_NORMAL;
}
// Disable animations so that tray icons hide immediately.
ui::ScopedAnimationDurationScaleMode disable_animations_;
policy::MockConfigurationPolicyProvider provider_;
};
using TrayAccessibilityLoginScreenTest = OobeBaseTest;
// Verify the login screen state in a separate test to avoid having to simulate
// login repeatedly.
IN_PROC_BROWSER_TEST_F(TrayAccessibilityLoginScreenTest, LoginStatus) {
ui::ScopedAnimationDurationScaleMode disable_animations(
ui::ScopedAnimationDurationScaleMode::ZERO_DURATION);
WaitForSigninScreen();
// By default the icon is not visible at the login screen.
views::View* tray_icon = TrayAccessibilityTest::tray()->tray_view();
EXPECT_FALSE(tray_icon->visible());
// Enabling an accessibility feature shows the icon.
EnableLargeCursor(true);
EXPECT_TRUE(tray_icon->visible());
// Disabling the accessibility feature hides the icon.
EnableLargeCursor(false);
EXPECT_FALSE(tray_icon->visible());
// Settings and help are not available on the login screen because they use
// webui.
TrayAccessibilityTest::tray()->ShowDetailedView(0);
EXPECT_FALSE(TrayAccessibilityTest::IsHelpAvailableOnDetailMenu());
EXPECT_FALSE(TrayAccessibilityTest::IsSettingsAvailableOnDetailMenu());
}
IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) {
// Confirms that the icon is invisible just after login.
EXPECT_FALSE(IsTrayIconVisible());
......
......@@ -232,7 +232,6 @@
-TaskManagerUtilityProcessBrowserTest.*
# ash::Shell access in test.
-TrayAccessibilityLoginScreenTest.*
-TrayAccessibilityTestInstance/TrayAccessibilityTest.*
# chromeos::UserAddingScreenImpl::Cancel() uses ash::Shell to enable system tray.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment