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

Unified Diff: chrome/browser/extensions/api/storage/policy_value_store_unittest.cc

Issue 11778097: Revert revision 176015 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/storage/policy_value_store_unittest.cc
===================================================================
--- chrome/browser/extensions/api/storage/policy_value_store_unittest.cc (revision 176053)
+++ chrome/browser/extensions/api/storage/policy_value_store_unittest.cc (working copy)
@@ -1,217 +0,0 @@
-// 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/extensions/api/storage/policy_value_store.h"
-
-#include "base/file_path.h"
-#include "base/files/scoped_temp_dir.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop.h"
-#include "chrome/browser/extensions/api/storage/settings_observer.h"
-#include "chrome/browser/policy/policy_map.h"
-#include "chrome/browser/value_store/leveldb_value_store.h"
-#include "chrome/browser/value_store/value_store_unittest.h"
-#include "content/public/test/test_browser_thread.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-using testing::Mock;
-
-namespace extensions {
-
-namespace {
-
-const char kTestExtensionId[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-
-class MockSettingsObserver : public SettingsObserver {
- public:
- MOCK_METHOD3(OnSettingsChanged, void(
- const std::string& extension_id,
- settings_namespace::Namespace settings_namespace,
- const std::string& changes_json));
-};
-
-// Extends PolicyValueStore by overriding the mutating methods, so that the
-// Get() base implementation can be tested with the ValueStoreTest parameterized
-// tests.
-class MutablePolicyValueStore : public PolicyValueStore {
- public:
- explicit MutablePolicyValueStore(const FilePath& path)
- : PolicyValueStore(kTestExtensionId,
- make_scoped_refptr(new SettingsObserverList()),
- scoped_ptr<ValueStore>(new LeveldbValueStore(path))) {}
- virtual ~MutablePolicyValueStore() {}
-
- virtual WriteResult Set(
- WriteOptions options,
- const std::string& key,
- const base::Value& value) OVERRIDE {
- return delegate()->Set(options, key, value);
- }
-
- virtual WriteResult Set(
- WriteOptions options, const base::DictionaryValue& values) OVERRIDE {
- return delegate()->Set(options, values);
- }
-
- virtual WriteResult Remove(const std::string& key) OVERRIDE {
- return delegate()->Remove(key);
- }
-
- virtual WriteResult Remove(const std::vector<std::string>& keys) OVERRIDE {
- return delegate()->Remove(keys);
- }
-
- virtual WriteResult Clear() OVERRIDE {
- return delegate()->Clear();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(MutablePolicyValueStore);
-};
-
-ValueStore* Param(const FilePath& file_path) {
- return new MutablePolicyValueStore(file_path);
-}
-
-} // namespace
-
-INSTANTIATE_TEST_CASE_P(
- PolicyValueStoreTest,
- ValueStoreTest,
- testing::Values(&Param));
-
-class PolicyValueStoreTest : public testing::Test {
- public:
- PolicyValueStoreTest()
- : file_thread_(content::BrowserThread::FILE, &loop_) {}
- virtual ~PolicyValueStoreTest() {}
-
- virtual void SetUp() OVERRIDE {
- ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir());
- observers_ = new SettingsObserverList();
- observers_->AddObserver(&observer_);
- store_.reset(new PolicyValueStore(
- kTestExtensionId,
- observers_,
- scoped_ptr<ValueStore>(
- new LeveldbValueStore(scoped_temp_dir_.path()))));
- }
-
- virtual void TearDown() OVERRIDE {
- observers_->RemoveObserver(&observer_);
- store_.reset();
- }
-
- protected:
- base::ScopedTempDir scoped_temp_dir_;
- MessageLoop loop_;
- content::TestBrowserThread file_thread_;
- scoped_ptr<PolicyValueStore> store_;
- MockSettingsObserver observer_;
- scoped_refptr<SettingsObserverList> observers_;
-};
-
-TEST_F(PolicyValueStoreTest, DontProvideRecommendedPolicies) {
- policy::PolicyMap policies;
- base::FundamentalValue expected(123);
- policies.Set("must", policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, expected.DeepCopy());
- policies.Set("may", policy::POLICY_LEVEL_RECOMMENDED,
- policy::POLICY_SCOPE_USER, base::Value::CreateIntegerValue(456));
- store_->SetCurrentPolicy(policies, false);
- ValueStore::ReadResult result = store_->Get();
- ASSERT_FALSE(result->HasError());
- EXPECT_EQ(1u, result->settings()->size());
- base::Value* value = NULL;
- EXPECT_FALSE(result->settings()->Get("may", &value));
- EXPECT_TRUE(result->settings()->Get("must", &value));
- EXPECT_TRUE(base::Value::Equals(&expected, value));
-}
-
-TEST_F(PolicyValueStoreTest, ReadOnly) {
- ValueStore::WriteOptions options = ValueStore::DEFAULTS;
-
- base::StringValue string_value("value");
- EXPECT_TRUE(store_->Set(options, "key", string_value)->HasError());
-
- base::DictionaryValue dict;
- dict.SetString("key", "value");
- EXPECT_TRUE(store_->Set(options, dict)->HasError());
-
- EXPECT_TRUE(store_->Remove("key")->HasError());
- std::vector<std::string> keys;
- keys.push_back("key");
- EXPECT_TRUE(store_->Remove(keys)->HasError());
- EXPECT_TRUE(store_->Clear()->HasError());
-}
-
-TEST_F(PolicyValueStoreTest, NotifyOnChanges) {
- policy::PolicyMap policies;
- policies.Set("aaa", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- base::Value::CreateStringValue("111"));
- EXPECT_CALL(observer_, OnSettingsChanged(_, _, _)).Times(0);
- // No notification when setting the initial policy.
- store_->SetCurrentPolicy(policies, false);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-
- // And no notifications on changes when not asked for.
- policies.Set("aaa", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- base::Value::CreateStringValue("222"));
- policies.Set("bbb", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- base::Value::CreateStringValue("223"));
- EXPECT_CALL(observer_, OnSettingsChanged(_, _, _)).Times(0);
- store_->SetCurrentPolicy(policies, false);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Notify when new policies are added.
- ValueStoreChangeList changes;
- base::StringValue value("333");
- changes.push_back(ValueStoreChange("ccc", NULL, value.DeepCopy()));
- policies.Set("ccc", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- value.DeepCopy());
- EXPECT_CALL(observer_, OnSettingsChanged(kTestExtensionId,
- settings_namespace::MANAGED,
- ValueStoreChange::ToJson(changes)));
- store_->SetCurrentPolicy(policies, true);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Notify when policies change.
- changes.clear();
- base::StringValue new_value("444");
- changes.push_back(
- ValueStoreChange("ccc", value.DeepCopy(), new_value.DeepCopy()));
- policies.Set("ccc", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- new_value.DeepCopy());
- EXPECT_CALL(observer_, OnSettingsChanged(kTestExtensionId,
- settings_namespace::MANAGED,
- ValueStoreChange::ToJson(changes)));
- store_->SetCurrentPolicy(policies, true);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Notify when policies are removed.
- changes.clear();
- changes.push_back(ValueStoreChange("ccc", new_value.DeepCopy(), NULL));
- policies.Erase("ccc");
- EXPECT_CALL(observer_, OnSettingsChanged(kTestExtensionId,
- settings_namespace::MANAGED,
- ValueStoreChange::ToJson(changes)));
- store_->SetCurrentPolicy(policies, true);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Don't notify when there aren't changes.
- EXPECT_CALL(observer_, OnSettingsChanged(_, _, _)).Times(0);
- store_->SetCurrentPolicy(policies, true);
- loop_.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer_);
-}
-
-} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/api/storage/policy_value_store.cc ('k') | chrome/browser/extensions/api/storage/setting_sync_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698