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

Unified 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, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
diff --git a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
index d70ab70bb9b6dc9cecacccdb935c2bbdb6067397..98d553574e15c9454ad1d33279eec7c8c548305b 100644
--- a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
+++ b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
@@ -18,6 +18,10 @@
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/login/user_manager_impl.h"
+#include "chrome/browser/policy/browser_policy_connector.h"
+#include "chrome/browser/policy/mock_configuration_policy_provider.h"
+#include "chrome/browser/policy/policy_map.h"
+#include "chrome/browser/policy/policy_types.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_notification_types.h"
@@ -26,20 +30,40 @@
#include "chrome/test/base/testing_profile.h"
#include "chromeos/chromeos_switches.h"
#include "content/public/test/test_utils.h"
+#include "policy/policy_constants.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/views/widget/widget.h"
+using testing::AnyNumber;
+using testing::Return;
+using testing::_;
+using testing::WithParamInterface;
+
namespace chromeos {
+enum PrefSettingMechanism {
+ PREF_SERVICE,
+ POLICY,
+};
+
void SetMagnifierEnabled(bool enabled) {
MagnificationManager::Get()->SetMagnifierEnabled(enabled);
}
-class TrayAccessibilityTest : public CrosInProcessBrowserTest {
+class TrayAccessibilityTest
+ : public CrosInProcessBrowserTest,
+ public WithParamInterface<PrefSettingMechanism> {
protected:
TrayAccessibilityTest() {}
virtual ~TrayAccessibilityTest() {}
+ virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
+ EXPECT_CALL(provider_, IsInitializationComplete(_))
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(provider_, RegisterPolicyDomain(_)).Times(AnyNumber());
+ policy::BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_);
+ }
+
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
command_line->AppendSwitch(switches::kLoginManager);
command_line->AppendSwitchASCII(switches::kLoginProfile,
@@ -52,6 +76,24 @@ class TrayAccessibilityTest : public CrosInProcessBrowserTest {
CrosInProcessBrowserTest::RunTestOnMainThreadLoop();
}
+ void SetShowAccessibilityOptionsInSystemTrayMenu(bool value) {
+ if (GetParam() == PREF_SERVICE) {
+ Profile* profile = ProfileManager::GetDefaultProfile();
+ PrefService* prefs = profile->GetPrefs();
+ prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, value);
+ } else if (GetParam() == POLICY) {
+ policy::PolicyMap policy_map;
+ policy_map.Set(policy::key::kShowAccessibilityOptionsInSystemTrayMenu,
+ policy::POLICY_LEVEL_MANDATORY,
+ policy::POLICY_SCOPE_USER,
+ base::Value::CreateBooleanValue(value));
+ provider_.UpdateChromePolicy(policy_map);
+ base::RunLoop().RunUntilIdle();
+ } else {
+ FAIL() << "Unknown test parameterization";
+ }
+ }
+
ash::internal::TrayAccessibility* tray() {
return ash::Shell::GetInstance()->GetPrimarySystemTray()->
GetTrayAccessibilityForTest();
@@ -122,9 +164,11 @@ class TrayAccessibilityTest : public CrosInProcessBrowserTest {
bool IsScreenMagnifierEnabledOnDetailMenu() {
return tray()->detailed_menu_->screen_magnifier_enabled_;
}
+
+ policy::MockConfigurationPolicyProvider provider_;
};
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, LoginStatus) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, LoginStatus) {
EXPECT_EQ(ash::user::LOGGED_IN_NONE, GetLoginStatus());
UserManager::Get()->UserLoggedIn(
@@ -134,7 +178,7 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, LoginStatus) {
EXPECT_EQ(ash::user::LOGGED_IN_USER, GetLoginStatus());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowTrayIcon) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowTrayIcon) {
SetLoginStatus(ash::user::LOGGED_IN_NONE);
// Confirms that the icon is invisible before login.
@@ -147,19 +191,19 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowTrayIcon) {
// Confirms that the icon is invisible just after login.
EXPECT_FALSE(IsTrayIconVisible());
- // Toggling spoken feedback changes the visibillity of the icon.
+ // Toggling spoken feedback changes the visibility of the icon.
accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
EXPECT_TRUE(IsTrayIconVisible());
accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
EXPECT_FALSE(IsTrayIconVisible());
- // Toggling high contrast the visibillity of the icon.
+ // Toggling high contrast the visibility of the icon.
accessibility::EnableHighContrast(true);
EXPECT_TRUE(IsTrayIconVisible());
accessibility::EnableHighContrast(false);
EXPECT_FALSE(IsTrayIconVisible());
- // Toggling magnifier the visibillity of the icon.
+ // Toggling magnifier the visibility of the icon.
SetMagnifierEnabled(true);
EXPECT_TRUE(IsTrayIconVisible());
SetMagnifierEnabled(false);
@@ -181,44 +225,37 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowTrayIcon) {
// Confirms that prefs::kShouldAlwaysShowAccessibilityMenu doesn't affect
// the icon on the tray.
- Profile* profile = ProfileManager::GetDefaultProfile();
- PrefService* prefs = profile->GetPrefs();
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
- prefs->CommitPendingWrite();
+ SetShowAccessibilityOptionsInSystemTrayMenu(true);
accessibility::EnableHighContrast(true);
EXPECT_TRUE(IsTrayIconVisible());
accessibility::EnableHighContrast(false);
EXPECT_FALSE(IsTrayIconVisible());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenu) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) {
// Login
UserManager::Get()->UserLoggedIn(
"owner@invalid.domain", "owner@invalid.domain", true);
UserManager::Get()->SessionStarted();
- // Sets prefs::kShouldAlwaysShowAccessibilityMenu = false.
- Profile* profile = ProfileManager::GetDefaultProfile();
- PrefService* prefs = profile->GetPrefs();
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
- prefs->CommitPendingWrite();
+ SetShowAccessibilityOptionsInSystemTrayMenu(false);
// Confirms that the menu is hidden.
EXPECT_FALSE(CanCreateMenuItem());
- // Toggling spoken feedback changes the visibillity of the menu.
+ // Toggling spoken feedback changes the visibility of the menu.
accessibility::EnableSpokenFeedback(true, NULL, ash::A11Y_NOTIFICATION_NONE);
EXPECT_TRUE(CanCreateMenuItem());
accessibility::EnableSpokenFeedback(false, NULL, ash::A11Y_NOTIFICATION_NONE);
EXPECT_FALSE(CanCreateMenuItem());
- // Toggling high contrast changes the visibillity of the menu.
+ // Toggling high contrast changes the visibility of the menu.
accessibility::EnableHighContrast(true);
EXPECT_TRUE(CanCreateMenuItem());
accessibility::EnableHighContrast(false);
EXPECT_FALSE(CanCreateMenuItem());
- // Toggling screen magnifier changes the visibillity of the menu.
+ // Toggling screen magnifier changes the visibility of the menu.
SetMagnifierEnabled(true);
EXPECT_TRUE(CanCreateMenuItem());
SetMagnifierEnabled(false);
@@ -239,17 +276,13 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenu) {
EXPECT_FALSE(CanCreateMenuItem());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
// Login
UserManager::Get()->UserLoggedIn(
"owner@invalid.domain", "owner@invalid.domain", true);
UserManager::Get()->SessionStarted();
- // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true.
- Profile* profile = ProfileManager::GetDefaultProfile();
- PrefService* prefs = profile->GetPrefs();
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
- prefs->CommitPendingWrite();
+ SetShowAccessibilityOptionsInSystemTrayMenu(true);
// Confirms that the menu is visible.
EXPECT_TRUE(CanCreateMenuItem());
@@ -286,14 +319,13 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowMenuOption) {
SetMagnifierEnabled(false);
EXPECT_TRUE(CanCreateMenuItem());
- // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true.
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
+ SetShowAccessibilityOptionsInSystemTrayMenu(false);
// Confirms that the menu is invisible.
EXPECT_FALSE(CanCreateMenuItem());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
SetLoginStatus(ash::user::LOGGED_IN_NONE);
// Confirms that the menu is visible.
@@ -331,24 +363,18 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, ShowMenuWithShowOnLoginScreen) {
SetMagnifierEnabled(false);
EXPECT_TRUE(CanCreateMenuItem());
- // Sets prefs::kShouldAlwaysShowAccessibilityMenu = true.
- Profile* profile = ProfileManager::GetDefaultProfile();
- PrefService* prefs = profile->GetPrefs();
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, true);
- prefs->CommitPendingWrite();
+ SetShowAccessibilityOptionsInSystemTrayMenu(true);
// Confirms that the menu is keeping visible.
EXPECT_TRUE(CanCreateMenuItem());
- // Sets prefs::kShouldAlwaysShowAccessibilityMenu = false.
- prefs->SetBoolean(prefs::kShouldAlwaysShowAccessibilityMenu, false);
- prefs->CommitPendingWrite();
+ SetShowAccessibilityOptionsInSystemTrayMenu(false);
// Confirms that the menu is keeping visible.
EXPECT_TRUE(CanCreateMenuItem());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
// Enables high contrast mode.
accessibility::EnableHighContrast(true);
EXPECT_TRUE(CanCreateMenuItem());
@@ -370,7 +396,7 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, KeepMenuVisibilityOnLockScreen) {
#define MAYBE_ClickDetailMenu ClickDetailMenu
#endif
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, MAYBE_ClickDetailMenu) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, MAYBE_ClickDetailMenu) {
// Confirms that the check item toggles the spoken feedback.
EXPECT_FALSE(accessibility::IsSpokenFeedbackEnabled());
@@ -406,7 +432,7 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, MAYBE_ClickDetailMenu) {
EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled());
}
-IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
+IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
// At first, all of the check is unchecked.
EXPECT_TRUE(CreateDetailedMenu());
EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu());
@@ -483,4 +509,9 @@ IN_PROC_BROWSER_TEST_F(TrayAccessibilityTest, CheckMarksOnDetailMenu) {
CloseDetailMenu();
}
+INSTANTIATE_TEST_CASE_P(TrayAccessibilityTestInstance,
+ TrayAccessibilityTest,
+ testing::Values(PREF_SERVICE,
+ POLICY));
+
} // namespace chromeos
« 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