| OLD | NEW |
| (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/bind_helpers.h" | |
| 9 #include "base/message_loop/message_loop.h" | |
| 10 #include "base/values.h" | |
| 11 #include "chrome/browser/chromeos/settings/cros_settings.h" | |
| 12 #include "chrome/browser/chromeos/settings/device_settings_service.h" | |
| 13 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" | |
| 14 #include "chromeos/settings/cros_settings_names.h" | |
| 15 #include "content/public/test/test_browser_thread.h" | |
| 16 #include "testing/gtest/include/gtest/gtest.h" | |
| 17 | |
| 18 namespace { | |
| 19 | |
| 20 const int kFudgeInt = 100; | |
| 21 | |
| 22 } | |
| 23 | |
| 24 namespace chromeos { | |
| 25 | |
| 26 class KioskModeSettingsTest : public testing::Test { | |
| 27 protected: | |
| 28 KioskModeSettingsTest() | |
| 29 : ui_thread_(content::BrowserThread::UI, &message_loop_), | |
| 30 file_thread_(content::BrowserThread::FILE, &message_loop_) { | |
| 31 CrosSettings* cros_settings = CrosSettings::Get(); | |
| 32 | |
| 33 // Remove the real DeviceSettingsProvider and replace it with a stub. | |
| 34 device_settings_provider_ = | |
| 35 cros_settings->GetProvider(chromeos::kReportDeviceVersionInfo); | |
| 36 EXPECT_TRUE(device_settings_provider_ != NULL); | |
| 37 EXPECT_TRUE( | |
| 38 cros_settings->RemoveSettingsProvider(device_settings_provider_)); | |
| 39 cros_settings->AddSettingsProvider(&stub_settings_provider_); | |
| 40 } | |
| 41 | |
| 42 virtual ~KioskModeSettingsTest() { | |
| 43 // Restore the real DeviceSettingsProvider. | |
| 44 CrosSettings* cros_settings = CrosSettings::Get(); | |
| 45 EXPECT_TRUE( | |
| 46 cros_settings->RemoveSettingsProvider(&stub_settings_provider_)); | |
| 47 cros_settings->AddSettingsProvider(device_settings_provider_); | |
| 48 } | |
| 49 | |
| 50 virtual void SetUp() OVERRIDE { | |
| 51 if (!KioskModeSettings::Get()->is_initialized()) { | |
| 52 KioskModeSettings::Get()->Initialize( | |
| 53 base::Bind(&KioskModeSettingsTest::SetUp, | |
| 54 base::Unretained(this))); | |
| 55 return; | |
| 56 } | |
| 57 } | |
| 58 | |
| 59 virtual void TearDown() OVERRIDE { | |
| 60 KioskModeSettings::Get()->set_initialized(false); | |
| 61 } | |
| 62 | |
| 63 void ReInitialize() { | |
| 64 KioskModeSettings::Get()->set_initialized(false); | |
| 65 KioskModeSettings::Get()->Initialize(base::Bind(&base::DoNothing)); | |
| 66 } | |
| 67 | |
| 68 void DisableKioskModeSettings() { | |
| 69 KioskModeSettings::Get()->set_initialized(false); | |
| 70 } | |
| 71 | |
| 72 base::MessageLoopForUI message_loop_; | |
| 73 content::TestBrowserThread ui_thread_; | |
| 74 content::TestBrowserThread file_thread_; | |
| 75 | |
| 76 ScopedTestDeviceSettingsService test_device_settings_service_; | |
| 77 ScopedTestCrosSettings test_cros_settings_; | |
| 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( | |
| 97 kIdleLogoutTimeout, | |
| 98 KioskModeSettings::kMaxIdleLogoutTimeout + kFudgeInt); | |
| 99 ReInitialize(); | |
| 100 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(), | |
| 101 base::TimeDelta::FromMilliseconds( | |
| 102 KioskModeSettings::kMaxIdleLogoutTimeout)); | |
| 103 | |
| 104 // Check if we go under min. | |
| 105 cros_settings->SetInteger( | |
| 106 kIdleLogoutTimeout, | |
| 107 KioskModeSettings::kMinIdleLogoutTimeout - kFudgeInt); | |
| 108 ReInitialize(); | |
| 109 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(), | |
| 110 base::TimeDelta::FromMilliseconds( | |
| 111 KioskModeSettings::kMinIdleLogoutTimeout)); | |
| 112 | |
| 113 // Check if we are between max and min. | |
| 114 cros_settings->SetInteger( | |
| 115 kIdleLogoutTimeout, | |
| 116 KioskModeSettings::kMaxIdleLogoutTimeout - kFudgeInt); | |
| 117 ReInitialize(); | |
| 118 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(), | |
| 119 base::TimeDelta::FromMilliseconds( | |
| 120 KioskModeSettings::kMaxIdleLogoutTimeout - kFudgeInt)); | |
| 121 } | |
| 122 | |
| 123 TEST_F(KioskModeSettingsTest, CheckLogoutWarningDurationBounds) { | |
| 124 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); | |
| 125 | |
| 126 // Check if we go over max. | |
| 127 cros_settings->SetInteger( | |
| 128 kIdleLogoutWarningDuration, | |
| 129 KioskModeSettings::kMaxIdleLogoutWarningDuration + kFudgeInt); | |
| 130 ReInitialize(); | |
| 131 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(), | |
| 132 base::TimeDelta::FromMilliseconds( | |
| 133 KioskModeSettings::kMaxIdleLogoutWarningDuration)); | |
| 134 | |
| 135 // Check if we go under min. | |
| 136 cros_settings->SetInteger( | |
| 137 kIdleLogoutWarningDuration, | |
| 138 KioskModeSettings::kMinIdleLogoutWarningDuration - kFudgeInt); | |
| 139 ReInitialize(); | |
| 140 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(), | |
| 141 base::TimeDelta::FromMilliseconds( | |
| 142 KioskModeSettings::kMinIdleLogoutWarningDuration)); | |
| 143 | |
| 144 // Check if we are between max and min. | |
| 145 cros_settings->SetInteger( | |
| 146 kIdleLogoutWarningDuration, | |
| 147 KioskModeSettings::kMaxIdleLogoutWarningDuration - kFudgeInt); | |
| 148 ReInitialize(); | |
| 149 EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(), | |
| 150 base::TimeDelta::FromMilliseconds( | |
| 151 KioskModeSettings::kMaxIdleLogoutWarningDuration - kFudgeInt)); | |
| 152 } | |
| 153 | |
| 154 TEST_F(KioskModeSettingsTest, UnitializedValues) { | |
| 155 DisableKioskModeSettings(); | |
| 156 | |
| 157 // Time delta initializes to '0' microseconds. | |
| 158 EXPECT_LT(KioskModeSettings::Get()->GetScreensaverTimeout(), | |
| 159 base::TimeDelta()); | |
| 160 EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutTimeout(), | |
| 161 base::TimeDelta()); | |
| 162 EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(), | |
| 163 base::TimeDelta()); | |
| 164 } | |
| 165 | |
| 166 } // namespace chromeos | |
| OLD | NEW |