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

Side by Side Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc

Issue 9701084: Integrate Kiosk Mode with enterprise policies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: yacf Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
6
7 #include "base/bind.h"
8 #include "base/message_loop.h"
9 #include "base/values.h"
10 #include "chrome/browser/chromeos/cros_settings.h"
11 #include "chrome/browser/chromeos/cros_settings_names.h"
12 #include "chrome/browser/chromeos/stub_cros_settings_provider.h"
13 #include "content/test/test_browser_thread.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace {
17
18 const int kFudgeInt = 100;
19
20 }
21
22 namespace chromeos {
23
24 class KioskModeSettingsTest : public testing::Test {
25 protected:
26 KioskModeSettingsTest()
27 : message_loop_(MessageLoop::TYPE_UI),
28 ui_thread_(content::BrowserThread::UI, &message_loop_),
29 file_thread_(content::BrowserThread::FILE, &message_loop_) {
30 CrosSettings* cros_settings = CrosSettings::Get();
31
32 // Remove the real DeviceSettingsProvider and replace it with a stub.
33 device_settings_provider_ =
34 cros_settings->GetProvider(chromeos::kReportDeviceVersionInfo);
35 EXPECT_TRUE(device_settings_provider_ != NULL);
36 EXPECT_TRUE(
37 cros_settings->RemoveSettingsProvider(device_settings_provider_));
38 cros_settings->AddSettingsProvider(&stub_settings_provider_);
39 }
40
41 ~KioskModeSettingsTest() {
42 // Restore the real DeviceSettingsProvider.
43 CrosSettings* cros_settings = CrosSettings::Get();
44 EXPECT_TRUE(
45 cros_settings->RemoveSettingsProvider(&stub_settings_provider_));
46 cros_settings->AddSettingsProvider(device_settings_provider_);
47 }
48
49 virtual void SetUp() OVERRIDE {
50 if (!KioskModeSettings::Get()->is_initialized()) {
51 KioskModeSettings::Get()->Initialize(
52 base::Bind(&KioskModeSettingsTest::SetUp,
53 base::Unretained(this)));
54 return;
55 }
56 }
57
58 virtual void TearDown() OVERRIDE {
59 KioskModeSettings::Get()->set_initialized(false);
60 }
61
62 void ReInitialize() {
63 KioskModeSettings::Get()->Initialize(
64 base::Bind(&KioskModeSettingsTest::DoNothing,
65 base::Unretained(this)));
66 }
67
68 void DisableKioskModeSettings() {
69 KioskModeSettings::Get()->set_initialized(false);
70 }
71
72 void DoNothing() {
73 }
74
75 MessageLoop message_loop_;
76 content::TestBrowserThread ui_thread_;
77 content::TestBrowserThread file_thread_;
78
79 CrosSettingsProvider* device_settings_provider_;
80 StubCrosSettingsProvider stub_settings_provider_;
81 };
82
83 TEST_F(KioskModeSettingsTest, DisabledByDefault) {
84 EXPECT_FALSE(KioskModeSettings::Get()->IsKioskModeEnabled());
85 }
86
87 TEST_F(KioskModeSettingsTest, InstanceAvailable) {
88 EXPECT_TRUE(KioskModeSettings::Get() != NULL);
89 EXPECT_TRUE(KioskModeSettings::Get()->is_initialized());
90 }
91
92 TEST_F(KioskModeSettingsTest, CheckLogoutTimeoutBounds) {
93 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
94
95 // Check if we go over max.
96 cros_settings->SetInteger(kIdleLogoutTimeout,
97 kMaxIdleLogoutTimeout + kFudgeInt);
98 ReInitialize();
99 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
100 base::TimeDelta::FromMilliseconds(kMaxIdleLogoutTimeout));
101
102 // Check if we go under min.
103 cros_settings->SetInteger(kIdleLogoutTimeout,
104 kMinIdleLogoutTimeout - kFudgeInt);
105 ReInitialize();
106 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
107 base::TimeDelta::FromMilliseconds(kMinIdleLogoutTimeout));
108
109 // Check if we are between max and min.
110 cros_settings->SetInteger(kIdleLogoutTimeout,
111 kMaxIdleLogoutTimeout - kFudgeInt);
112 ReInitialize();
113 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
114 base::TimeDelta::FromMilliseconds(
115 kMaxIdleLogoutTimeout - kFudgeInt));
116 }
117
118 TEST_F(KioskModeSettingsTest, CheckLogoutWarningDurationBounds) {
119 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
120
121 // Check if we go over max.
122 cros_settings->SetInteger(kIdleLogoutWarningDuration,
123 kMaxIdleLogoutWarningDuration + kFudgeInt);
124 ReInitialize();
125 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
126 base::TimeDelta::FromMilliseconds(kMaxIdleLogoutWarningDuration));
127
128 // Check if we go under min.
129 cros_settings->SetInteger(kIdleLogoutWarningDuration,
130 kMinIdleLogoutWarningDuration - kFudgeInt);
131 ReInitialize();
132 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
133 base::TimeDelta::FromMilliseconds(kMinIdleLogoutWarningDuration));
134
135 // Check if we are between max and min.
136 cros_settings->SetInteger(kIdleLogoutWarningDuration,
137 kMaxIdleLogoutWarningDuration - kFudgeInt);
138 ReInitialize();
139 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
140 base::TimeDelta::FromMilliseconds(
141 kMaxIdleLogoutWarningDuration - kFudgeInt));
142 }
143
144 TEST_F(KioskModeSettingsTest, UnitializedValues) {
145 DisableKioskModeSettings();
146
147 // Time delta initializes to '0' microseconds.
148 EXPECT_LT(KioskModeSettings::Get()->GetScreensaverTimeout(),
149 base::TimeDelta());
150 EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
151 base::TimeDelta());
152 EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
153 base::TimeDelta());
154 }
155
156 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc ('k') | chrome/browser/chromeos/login/webui_login_display_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698