| Index: chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc
|
| diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a26eb37a9bf049d7b5296fe4632ced54170681cb
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc
|
| @@ -0,0 +1,156 @@
|
| +// Copyright (c) 2012 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/kiosk_mode/kiosk_mode_settings.h"
|
| +
|
| +#include "base/bind.h"
|
| +#include "base/message_loop.h"
|
| +#include "base/values.h"
|
| +#include "chrome/browser/chromeos/cros_settings.h"
|
| +#include "chrome/browser/chromeos/cros_settings_names.h"
|
| +#include "chrome/browser/chromeos/stub_cros_settings_provider.h"
|
| +#include "content/test/test_browser_thread.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace {
|
| +
|
| +const int kFudgeInt = 100;
|
| +
|
| +}
|
| +
|
| +namespace chromeos {
|
| +
|
| +class KioskModeSettingsTest : public testing::Test {
|
| + protected:
|
| + KioskModeSettingsTest()
|
| + : message_loop_(MessageLoop::TYPE_UI),
|
| + ui_thread_(content::BrowserThread::UI, &message_loop_),
|
| + file_thread_(content::BrowserThread::FILE, &message_loop_) {
|
| + CrosSettings* cros_settings = CrosSettings::Get();
|
| +
|
| + // Remove the real DeviceSettingsProvider and replace it with a stub.
|
| + device_settings_provider_ =
|
| + cros_settings->GetProvider(chromeos::kReportDeviceVersionInfo);
|
| + EXPECT_TRUE(device_settings_provider_ != NULL);
|
| + EXPECT_TRUE(
|
| + cros_settings->RemoveSettingsProvider(device_settings_provider_));
|
| + cros_settings->AddSettingsProvider(&stub_settings_provider_);
|
| + }
|
| +
|
| + ~KioskModeSettingsTest() {
|
| + // Restore the real DeviceSettingsProvider.
|
| + CrosSettings* cros_settings = CrosSettings::Get();
|
| + EXPECT_TRUE(
|
| + cros_settings->RemoveSettingsProvider(&stub_settings_provider_));
|
| + cros_settings->AddSettingsProvider(device_settings_provider_);
|
| + }
|
| +
|
| + virtual void SetUp() OVERRIDE {
|
| + if (!KioskModeSettings::Get()->is_initialized()) {
|
| + KioskModeSettings::Get()->Initialize(
|
| + base::Bind(&KioskModeSettingsTest::SetUp,
|
| + base::Unretained(this)));
|
| + return;
|
| + }
|
| + }
|
| +
|
| + virtual void TearDown() OVERRIDE {
|
| + KioskModeSettings::Get()->set_initialized(false);
|
| + }
|
| +
|
| + void ReInitialize() {
|
| + KioskModeSettings::Get()->Initialize(
|
| + base::Bind(&KioskModeSettingsTest::DoNothing,
|
| + base::Unretained(this)));
|
| + }
|
| +
|
| + void DisableKioskModeSettings() {
|
| + KioskModeSettings::Get()->set_initialized(false);
|
| + }
|
| +
|
| + void DoNothing() {
|
| + }
|
| +
|
| + MessageLoop message_loop_;
|
| + content::TestBrowserThread ui_thread_;
|
| + content::TestBrowserThread file_thread_;
|
| +
|
| + CrosSettingsProvider* device_settings_provider_;
|
| + StubCrosSettingsProvider stub_settings_provider_;
|
| +};
|
| +
|
| +TEST_F(KioskModeSettingsTest, DisabledByDefault) {
|
| + EXPECT_FALSE(KioskModeSettings::Get()->IsKioskModeEnabled());
|
| +}
|
| +
|
| +TEST_F(KioskModeSettingsTest, InstanceAvailable) {
|
| + EXPECT_TRUE(KioskModeSettings::Get() != NULL);
|
| + EXPECT_TRUE(KioskModeSettings::Get()->is_initialized());
|
| +}
|
| +
|
| +TEST_F(KioskModeSettingsTest, CheckLogoutTimeoutBounds) {
|
| + chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
|
| +
|
| + // Check if we go over max.
|
| + cros_settings->SetInteger(kIdleLogoutTimeout,
|
| + kMaxIdleLogoutTimeout + kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
|
| + base::TimeDelta::FromMilliseconds(kMaxIdleLogoutTimeout));
|
| +
|
| + // Check if we go under min.
|
| + cros_settings->SetInteger(kIdleLogoutTimeout,
|
| + kMinIdleLogoutTimeout - kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
|
| + base::TimeDelta::FromMilliseconds(kMinIdleLogoutTimeout));
|
| +
|
| + // Check if we are between max and min.
|
| + cros_settings->SetInteger(kIdleLogoutTimeout,
|
| + kMaxIdleLogoutTimeout - kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
|
| + base::TimeDelta::FromMilliseconds(
|
| + kMaxIdleLogoutTimeout - kFudgeInt));
|
| +}
|
| +
|
| +TEST_F(KioskModeSettingsTest, CheckLogoutWarningDurationBounds) {
|
| + chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
|
| +
|
| + // Check if we go over max.
|
| + cros_settings->SetInteger(kIdleLogoutWarningDuration,
|
| + kMaxIdleLogoutWarningDuration + kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
|
| + base::TimeDelta::FromMilliseconds(kMaxIdleLogoutWarningDuration));
|
| +
|
| + // Check if we go under min.
|
| + cros_settings->SetInteger(kIdleLogoutWarningDuration,
|
| + kMinIdleLogoutWarningDuration - kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
|
| + base::TimeDelta::FromMilliseconds(kMinIdleLogoutWarningDuration));
|
| +
|
| + // Check if we are between max and min.
|
| + cros_settings->SetInteger(kIdleLogoutWarningDuration,
|
| + kMaxIdleLogoutWarningDuration - kFudgeInt);
|
| + ReInitialize();
|
| + EXPECT_EQ(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
|
| + base::TimeDelta::FromMilliseconds(
|
| + kMaxIdleLogoutWarningDuration - kFudgeInt));
|
| +}
|
| +
|
| +TEST_F(KioskModeSettingsTest, UnitializedValues) {
|
| + DisableKioskModeSettings();
|
| +
|
| + // Time delta initializes to '0' microseconds.
|
| + EXPECT_LT(KioskModeSettings::Get()->GetScreensaverTimeout(),
|
| + base::TimeDelta());
|
| + EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutTimeout(),
|
| + base::TimeDelta());
|
| + EXPECT_LT(KioskModeSettings::Get()->GetIdleLogoutWarningDuration(),
|
| + base::TimeDelta());
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|