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

Unified Diff: chrome/browser/chromeos/policy/login_screen_power_management_policy_unittest.cc

Issue 18153007: Add policies to control power management on the Chrome OS login screen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Correct example in policy_templates.json. Created 7 years, 5 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
Index: chrome/browser/chromeos/policy/login_screen_power_management_policy_unittest.cc
diff --git a/chrome/browser/chromeos/policy/login_screen_power_management_policy_unittest.cc b/chrome/browser/chromeos/policy/login_screen_power_management_policy_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b6662645935f583e33297fa6a4e84a23366a2e93
--- /dev/null
+++ b/chrome/browser/chromeos/policy/login_screen_power_management_policy_unittest.cc
@@ -0,0 +1,187 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/policy/login_screen_power_management_policy.h"
+
+#include "chrome/browser/policy/policy_error_map.h"
+#include "chromeos/dbus/power_policy_controller.h"
+#include "policy/policy_constants.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace policy {
+
+namespace {
+
+const char kLoginScreenPowerManagementPolicy[] =
+ "{"
+ " \"AC\": {"
+ " \"Delays\": {"
+ " \"ScreenDim\": 5000,"
+ " \"ScreenOff\": 7000,"
+ " \"Idle\": 9000"
+ " },"
+ " \"IdleAction\": \"DoNothing\""
+ " },"
+ " \"Battery\": {"
+ " \"Delays\": {"
+ " \"ScreenDim\": 1000,"
+ " \"ScreenOff\": 3000,"
+ " \"Idle\": 4000"
+ " },"
+ " \"IdleAction\": \"DoNothing\""
+ " },"
+ " \"LidCloseAction\": \"DoNothing\","
+ " \"UserActivityScreenDimDelayScale\": 300"
+ "}";
+
+} // namespace
+
+TEST(LoginScreenPowerManagementPolicyTest, InvalidJSON) {
+ PolicyErrorMap errors;
+ LoginScreenPowerManagementPolicy policy;
+ EXPECT_FALSE(policy.Init("Invalid JSON!", &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ EXPECT_FALSE(policy.GetScreenDimDelayAC());
+ EXPECT_FALSE(policy.GetScreenOffDelayAC());
+ EXPECT_FALSE(policy.GetIdleDelayAC());
+ EXPECT_FALSE(policy.GetScreenDimDelayBattery());
+ EXPECT_FALSE(policy.GetScreenOffDelayBattery());
+ EXPECT_FALSE(policy.GetIdleDelayBattery());
+ EXPECT_FALSE(policy.GetIdleActionAC());
+ EXPECT_FALSE(policy.GetIdleActionBattery());
+ EXPECT_FALSE(policy.GetLidCloseAction());
+ EXPECT_FALSE(policy.GetUserActivityScreenDimDelayScale());
+}
+
+TEST(LoginScreenPowerManagementPolicyTest, InitInvalidValues) {
+ PolicyErrorMap errors;
+ scoped_ptr<LoginScreenPowerManagementPolicy> policy;
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"ScreenDim\": -1 } } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetScreenDimDelayAC());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"ScreenOff\": -1 } } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetScreenOffDelayAC());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"Idle\": -1 } } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetIdleDelayAC());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init(
+ "{ \"Battery\": { \"Delays\": { \"ScreenDim\": -1 } } }", &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetScreenDimDelayBattery());
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init(
+ "{ \"Battery\": { \"Delays\": { \"ScreenOff\": -1 } } }", &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetScreenOffDelayBattery());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"Battery\": { \"Delays\": { \"Idle\": -1 } } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetIdleDelayBattery());
+
+ errors.Clear();
+ EXPECT_TRUE(policy->Init("{ \"AC\": { \"IdleAction\": \"SignOut\" } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ EXPECT_FALSE(policy->GetIdleActionAC());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"Battery\": { \"IdleAction\": \"SignOut\" } }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetIdleActionBattery());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"LidCloseAction\": \"SignOut\" }", &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetLidCloseAction());
+
+ errors.Clear();
+ policy.reset(new LoginScreenPowerManagementPolicy);
+ EXPECT_TRUE(policy->Init("{ \"UserActivityScreenDimDelayScale\": 50 }",
+ &errors));
+ EXPECT_FALSE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy);
+ EXPECT_FALSE(policy->GetUserActivityScreenDimDelayScale());
+}
+
+TEST(LoginScreenPowerManagementPolicyTest, ValidJSON) {
+ PolicyErrorMap errors;
+ LoginScreenPowerManagementPolicy policy;
+ EXPECT_TRUE(policy.Init(kLoginScreenPowerManagementPolicy, &errors));
+ EXPECT_TRUE(
+ errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
+ ASSERT_TRUE(policy.GetScreenDimDelayAC());
+ EXPECT_TRUE(base::FundamentalValue(5000).Equals(
+ policy.GetScreenDimDelayAC()));
+ ASSERT_TRUE(policy.GetScreenOffDelayAC());
+ EXPECT_TRUE(base::FundamentalValue(7000).Equals(
+ policy.GetScreenOffDelayAC()));
+ ASSERT_TRUE(policy.GetIdleDelayAC());
+ EXPECT_TRUE(base::FundamentalValue(9000).Equals(policy.GetIdleDelayAC()));
+ ASSERT_TRUE(policy.GetScreenDimDelayBattery());
+ EXPECT_TRUE(base::FundamentalValue(1000).Equals(
+ policy.GetScreenDimDelayBattery()));
+ ASSERT_TRUE(policy.GetScreenOffDelayBattery());
+ EXPECT_TRUE(base::FundamentalValue(3000).Equals(
+ policy.GetScreenOffDelayBattery()));
+ ASSERT_TRUE(policy.GetIdleDelayBattery());
+ EXPECT_TRUE(base::FundamentalValue(4000).Equals(
+ policy.GetIdleDelayBattery()));
+ ASSERT_TRUE(policy.GetIdleActionAC());
+ EXPECT_TRUE(base::FundamentalValue(
+ chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
+ policy.GetIdleActionAC()));
+ ASSERT_TRUE(policy.GetIdleActionBattery());
+ EXPECT_TRUE(base::FundamentalValue(
+ chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
+ policy.GetIdleActionBattery()));
+ ASSERT_TRUE(policy.GetLidCloseAction());
+ EXPECT_TRUE(base::FundamentalValue(
+ chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
+ policy.GetLidCloseAction()));
+ ASSERT_TRUE(policy.GetUserActivityScreenDimDelayScale());
+ EXPECT_TRUE(base::FundamentalValue(300).Equals(
+ policy.GetUserActivityScreenDimDelayScale()));
+}
+
+} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698