- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / policy / login_screen_power_management_policy_unittest.cc
1 // Copyright 2013 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 "chrome/browser/chromeos/policy/login_screen_power_management_policy.h"
6
7 #include "chrome/browser/policy/policy_error_map.h"
8 #include "chromeos/dbus/power_policy_controller.h"
9 #include "policy/policy_constants.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace policy {
13
14 namespace {
15
16 const char kLoginScreenPowerManagementPolicy[] =
17     "{"
18     "  \"AC\": {"
19     "    \"Delays\": {"
20     "      \"ScreenDim\": 5000,"
21     "      \"ScreenOff\": 7000,"
22     "      \"Idle\": 9000"
23     "    },"
24     "    \"IdleAction\": \"DoNothing\""
25     "  },"
26     "  \"Battery\": {"
27     "    \"Delays\": {"
28     "      \"ScreenDim\": 1000,"
29     "      \"ScreenOff\": 3000,"
30     "      \"Idle\": 4000"
31     "    },"
32     "    \"IdleAction\": \"DoNothing\""
33     "  },"
34     "  \"LidCloseAction\": \"DoNothing\","
35     "  \"UserActivityScreenDimDelayScale\": 300"
36     "}";
37
38 }  // namespace
39
40 TEST(LoginScreenPowerManagementPolicyTest, InvalidJSON) {
41   PolicyErrorMap errors;
42   LoginScreenPowerManagementPolicy policy;
43   EXPECT_FALSE(policy.Init("Invalid JSON!", &errors));
44   EXPECT_FALSE(
45       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
46   EXPECT_FALSE(policy.GetScreenDimDelayAC());
47   EXPECT_FALSE(policy.GetScreenOffDelayAC());
48   EXPECT_FALSE(policy.GetIdleDelayAC());
49   EXPECT_FALSE(policy.GetScreenDimDelayBattery());
50   EXPECT_FALSE(policy.GetScreenOffDelayBattery());
51   EXPECT_FALSE(policy.GetIdleDelayBattery());
52   EXPECT_FALSE(policy.GetIdleActionAC());
53   EXPECT_FALSE(policy.GetIdleActionBattery());
54   EXPECT_FALSE(policy.GetLidCloseAction());
55   EXPECT_FALSE(policy.GetUserActivityScreenDimDelayScale());
56 }
57
58 TEST(LoginScreenPowerManagementPolicyTest, InitInvalidValues) {
59   PolicyErrorMap errors;
60   scoped_ptr<LoginScreenPowerManagementPolicy> policy;
61   policy.reset(new LoginScreenPowerManagementPolicy);
62   EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"ScreenDim\": -1 } } }",
63                            &errors));
64   EXPECT_FALSE(
65       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
66   ASSERT_TRUE(policy);
67   EXPECT_FALSE(policy->GetScreenDimDelayAC());
68
69   errors.Clear();
70   policy.reset(new LoginScreenPowerManagementPolicy);
71   EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"ScreenOff\": -1 } } }",
72                            &errors));
73   EXPECT_FALSE(
74       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
75   ASSERT_TRUE(policy);
76   EXPECT_FALSE(policy->GetScreenOffDelayAC());
77
78   errors.Clear();
79   policy.reset(new LoginScreenPowerManagementPolicy);
80   EXPECT_TRUE(policy->Init("{ \"AC\": { \"Delays\": { \"Idle\": -1 } } }",
81                            &errors));
82   EXPECT_FALSE(
83       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
84   ASSERT_TRUE(policy);
85   EXPECT_FALSE(policy->GetIdleDelayAC());
86
87   errors.Clear();
88   policy.reset(new LoginScreenPowerManagementPolicy);
89   EXPECT_TRUE(policy->Init(
90       "{ \"Battery\": { \"Delays\": { \"ScreenDim\": -1 } } }", &errors));
91   EXPECT_FALSE(
92       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
93   ASSERT_TRUE(policy);
94   EXPECT_FALSE(policy->GetScreenDimDelayBattery());
95   errors.Clear();
96   policy.reset(new LoginScreenPowerManagementPolicy);
97   EXPECT_TRUE(policy->Init(
98       "{ \"Battery\": { \"Delays\": { \"ScreenOff\": -1 } } }", &errors));
99   EXPECT_FALSE(
100       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
101   ASSERT_TRUE(policy);
102   EXPECT_FALSE(policy->GetScreenOffDelayBattery());
103
104   errors.Clear();
105   policy.reset(new LoginScreenPowerManagementPolicy);
106   EXPECT_TRUE(policy->Init("{ \"Battery\": { \"Delays\": { \"Idle\": -1 } } }",
107                            &errors));
108   EXPECT_FALSE(
109       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
110   ASSERT_TRUE(policy);
111   EXPECT_FALSE(policy->GetIdleDelayBattery());
112
113   errors.Clear();
114   EXPECT_TRUE(policy->Init("{ \"AC\": { \"IdleAction\": \"SignOut\" } }",
115                            &errors));
116   EXPECT_FALSE(
117       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
118   EXPECT_FALSE(policy->GetIdleActionAC());
119
120   errors.Clear();
121   policy.reset(new LoginScreenPowerManagementPolicy);
122   EXPECT_TRUE(policy->Init("{ \"Battery\": { \"IdleAction\": \"SignOut\" } }",
123                            &errors));
124   EXPECT_FALSE(
125       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
126   ASSERT_TRUE(policy);
127   EXPECT_FALSE(policy->GetIdleActionBattery());
128
129   errors.Clear();
130   policy.reset(new LoginScreenPowerManagementPolicy);
131   EXPECT_TRUE(policy->Init("{ \"LidCloseAction\": \"SignOut\" }", &errors));
132   EXPECT_FALSE(
133       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
134   ASSERT_TRUE(policy);
135   EXPECT_FALSE(policy->GetLidCloseAction());
136
137   errors.Clear();
138   policy.reset(new LoginScreenPowerManagementPolicy);
139   EXPECT_TRUE(policy->Init("{ \"UserActivityScreenDimDelayScale\": 50 }",
140                            &errors));
141   EXPECT_FALSE(
142       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
143   ASSERT_TRUE(policy);
144   EXPECT_FALSE(policy->GetUserActivityScreenDimDelayScale());
145 }
146
147 TEST(LoginScreenPowerManagementPolicyTest, ValidJSON) {
148   PolicyErrorMap errors;
149   LoginScreenPowerManagementPolicy policy;
150   EXPECT_TRUE(policy.Init(kLoginScreenPowerManagementPolicy, &errors));
151   EXPECT_TRUE(
152       errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty());
153   ASSERT_TRUE(policy.GetScreenDimDelayAC());
154   EXPECT_TRUE(base::FundamentalValue(5000).Equals(
155       policy.GetScreenDimDelayAC()));
156   ASSERT_TRUE(policy.GetScreenOffDelayAC());
157   EXPECT_TRUE(base::FundamentalValue(7000).Equals(
158       policy.GetScreenOffDelayAC()));
159   ASSERT_TRUE(policy.GetIdleDelayAC());
160   EXPECT_TRUE(base::FundamentalValue(9000).Equals(policy.GetIdleDelayAC()));
161   ASSERT_TRUE(policy.GetScreenDimDelayBattery());
162   EXPECT_TRUE(base::FundamentalValue(1000).Equals(
163       policy.GetScreenDimDelayBattery()));
164   ASSERT_TRUE(policy.GetScreenOffDelayBattery());
165   EXPECT_TRUE(base::FundamentalValue(3000).Equals(
166       policy.GetScreenOffDelayBattery()));
167   ASSERT_TRUE(policy.GetIdleDelayBattery());
168   EXPECT_TRUE(base::FundamentalValue(4000).Equals(
169       policy.GetIdleDelayBattery()));
170   ASSERT_TRUE(policy.GetIdleActionAC());
171   EXPECT_TRUE(base::FundamentalValue(
172       chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
173           policy.GetIdleActionAC()));
174   ASSERT_TRUE(policy.GetIdleActionBattery());
175   EXPECT_TRUE(base::FundamentalValue(
176       chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
177           policy.GetIdleActionBattery()));
178   ASSERT_TRUE(policy.GetLidCloseAction());
179   EXPECT_TRUE(base::FundamentalValue(
180       chromeos::PowerPolicyController::ACTION_DO_NOTHING).Equals(
181           policy.GetLidCloseAction()));
182   ASSERT_TRUE(policy.GetUserActivityScreenDimDelayScale());
183   EXPECT_TRUE(base::FundamentalValue(300).Equals(
184       policy.GetUserActivityScreenDimDelayScale()));
185 }
186
187 }  // namespace policy