Chromium Code Reviews| Index: chrome/browser/chromeos/stub_cros_settings_provider_unittest.cc |
| diff --git a/chrome/browser/chromeos/stub_cros_settings_provider_unittest.cc b/chrome/browser/chromeos/stub_cros_settings_provider_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a291de94492b241560259e7a71af4a7aa0614ea7 |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/stub_cros_settings_provider_unittest.cc |
| @@ -0,0 +1,83 @@ |
| +// Copyright (c) 2011 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/stub_cros_settings_provider.h" |
| + |
| +#include <string> |
| + |
| +#include "base/bind.h" |
| +#include "base/values.h" |
| +#include "chrome/browser/chromeos/cros_settings_names.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace chromeos { |
| + |
| +namespace { |
| + |
| +const Value* kTrueValue = base::Value::CreateBooleanValue(true); |
| +const Value* kFalseValue = base::Value::CreateBooleanValue(false); |
| + |
| +void Fail() { |
| + // Should never be called. |
| + FAIL(); |
| +} |
| + |
| +} // namespace |
| + |
| +class StubCrosSettingsProviderTest : public testing::Test { |
| + protected: |
| + StubCrosSettingsProviderTest() |
| + : provider_(new StubCrosSettingsProvider( |
| + base::Bind(&StubCrosSettingsProviderTest::FireObservers, |
| + base::Unretained(this)))) { |
| + } |
| + |
| + virtual ~StubCrosSettingsProviderTest() { |
| + } |
| + |
| + virtual void SetUp() OVERRIDE { |
| + // Reset the observer notification count. |
| + observer_count_.clear(); |
| + } |
| + |
| + void AssertPref(const std::string& prefName, const Value* value) { |
| + const Value* pref = provider_->Get(prefName); |
| + ASSERT_TRUE(pref); |
| + ASSERT_TRUE(pref->Equals(value)); |
| + } |
| + |
| + void ExpectObservers(const std::string& prefName, int count) { |
| + EXPECT_EQ(observer_count_[prefName], count); |
| + } |
| + |
| + void FireObservers(const std::string& path) { |
| + observer_count_[path]++; |
| + } |
| + |
| + StubCrosSettingsProvider* provider_; |
| + std::map<std::string, int> observer_count_; |
| +}; |
| + |
| +TEST_F(StubCrosSettingsProviderTest, Defaults) { |
| + // Verify default values. |
| + AssertPref(kAccountsPrefAllowGuest, kTrueValue); |
| + AssertPref(kAccountsPrefAllowNewUser, kTrueValue); |
| + AssertPref(kAccountsPrefShowUserNamesOnSignIn, kTrueValue); |
| +} |
| + |
| +TEST_F(StubCrosSettingsProviderTest, Set) { |
| + // Setting value and reading it afterwards returns the same value. |
| + base::StringValue owner_value("me@owner"); |
| + provider_->Set(kDeviceOwner, owner_value); |
| + AssertPref(kDeviceOwner, &owner_value); |
| + ExpectObservers(kDeviceOwner, 1); |
| +} |
| + |
| +TEST_F(StubCrosSettingsProviderTest, GetTrusted) { |
| + // Should return immediately without invoking the callback. |
| + bool trusted = provider_->GetTrusted(kDeviceOwner, base::Bind(&Fail)); |
| + EXPECT_TRUE(trusted); |
| +} |
| + |
|
pastarmovj
2011/12/13 13:41:07
Maybe one more test for Get would be good where yo
Ivan Korotkov
2011/12/13 14:46:16
Done.
|
| +} // namespace chromeos |