| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/api/storage/policy_value_store.h" | 5 #include "chrome/browser/extensions/api/storage/policy_value_store.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 EXPECT_EQ(1u, result->settings().size()); | 136 EXPECT_EQ(1u, result->settings().size()); |
| 137 base::Value* value = NULL; | 137 base::Value* value = NULL; |
| 138 EXPECT_FALSE(result->settings().Get("may", &value)); | 138 EXPECT_FALSE(result->settings().Get("may", &value)); |
| 139 EXPECT_TRUE(result->settings().Get("must", &value)); | 139 EXPECT_TRUE(result->settings().Get("must", &value)); |
| 140 EXPECT_TRUE(base::Value::Equals(&expected, value)); | 140 EXPECT_TRUE(base::Value::Equals(&expected, value)); |
| 141 } | 141 } |
| 142 | 142 |
| 143 TEST_F(PolicyValueStoreTest, ReadOnly) { | 143 TEST_F(PolicyValueStoreTest, ReadOnly) { |
| 144 ValueStore::WriteOptions options = ValueStore::DEFAULTS; | 144 ValueStore::WriteOptions options = ValueStore::DEFAULTS; |
| 145 | 145 |
| 146 base::StringValue string_value("value"); | 146 base::Value string_value("value"); |
| 147 EXPECT_FALSE(store_->Set(options, "key", string_value)->status().ok()); | 147 EXPECT_FALSE(store_->Set(options, "key", string_value)->status().ok()); |
| 148 | 148 |
| 149 base::DictionaryValue dict; | 149 base::DictionaryValue dict; |
| 150 dict.SetString("key", "value"); | 150 dict.SetString("key", "value"); |
| 151 EXPECT_FALSE(store_->Set(options, dict)->status().ok()); | 151 EXPECT_FALSE(store_->Set(options, dict)->status().ok()); |
| 152 | 152 |
| 153 EXPECT_FALSE(store_->Remove("key")->status().ok()); | 153 EXPECT_FALSE(store_->Remove("key")->status().ok()); |
| 154 std::vector<std::string> keys; | 154 std::vector<std::string> keys; |
| 155 keys.push_back("key"); | 155 keys.push_back("key"); |
| 156 EXPECT_FALSE(store_->Remove(keys)->status().ok()); | 156 EXPECT_FALSE(store_->Remove(keys)->status().ok()); |
| 157 EXPECT_FALSE(store_->Clear()->status().ok()); | 157 EXPECT_FALSE(store_->Clear()->status().ok()); |
| 158 } | 158 } |
| 159 | 159 |
| 160 TEST_F(PolicyValueStoreTest, NotifyOnChanges) { | 160 TEST_F(PolicyValueStoreTest, NotifyOnChanges) { |
| 161 // Notify when setting the initial policy. | 161 // Notify when setting the initial policy. |
| 162 const base::StringValue value("111"); | 162 const base::Value value("111"); |
| 163 { | 163 { |
| 164 ValueStoreChangeList changes; | 164 ValueStoreChangeList changes; |
| 165 changes.push_back(ValueStoreChange("aaa", nullptr, value.CreateDeepCopy())); | 165 changes.push_back(ValueStoreChange("aaa", nullptr, value.CreateDeepCopy())); |
| 166 EXPECT_CALL(observer_, | 166 EXPECT_CALL(observer_, |
| 167 OnSettingsChanged(kTestExtensionId, | 167 OnSettingsChanged(kTestExtensionId, |
| 168 settings_namespace::MANAGED, | 168 settings_namespace::MANAGED, |
| 169 ValueStoreChange::ToJson(changes))); | 169 ValueStoreChange::ToJson(changes))); |
| 170 } | 170 } |
| 171 | 171 |
| 172 policy::PolicyMap policies; | 172 policy::PolicyMap policies; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 186 ValueStoreChange::ToJson(changes))); | 186 ValueStoreChange::ToJson(changes))); |
| 187 } | 187 } |
| 188 | 188 |
| 189 policies.Set("bbb", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, | 189 policies.Set("bbb", policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, |
| 190 policy::POLICY_SOURCE_CLOUD, value.CreateDeepCopy(), nullptr); | 190 policy::POLICY_SOURCE_CLOUD, value.CreateDeepCopy(), nullptr); |
| 191 store_->SetCurrentPolicy(policies); | 191 store_->SetCurrentPolicy(policies); |
| 192 base::RunLoop().RunUntilIdle(); | 192 base::RunLoop().RunUntilIdle(); |
| 193 Mock::VerifyAndClearExpectations(&observer_); | 193 Mock::VerifyAndClearExpectations(&observer_); |
| 194 | 194 |
| 195 // Notify when policies change. | 195 // Notify when policies change. |
| 196 const base::StringValue new_value("222"); | 196 const base::Value new_value("222"); |
| 197 { | 197 { |
| 198 ValueStoreChangeList changes; | 198 ValueStoreChangeList changes; |
| 199 changes.push_back(ValueStoreChange("bbb", value.CreateDeepCopy(), | 199 changes.push_back(ValueStoreChange("bbb", value.CreateDeepCopy(), |
| 200 new_value.CreateDeepCopy())); | 200 new_value.CreateDeepCopy())); |
| 201 EXPECT_CALL(observer_, | 201 EXPECT_CALL(observer_, |
| 202 OnSettingsChanged(kTestExtensionId, | 202 OnSettingsChanged(kTestExtensionId, |
| 203 settings_namespace::MANAGED, | 203 settings_namespace::MANAGED, |
| 204 ValueStoreChange::ToJson(changes))); | 204 ValueStoreChange::ToJson(changes))); |
| 205 } | 205 } |
| 206 | 206 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 228 Mock::VerifyAndClearExpectations(&observer_); | 228 Mock::VerifyAndClearExpectations(&observer_); |
| 229 | 229 |
| 230 // Don't notify when there aren't any changes. | 230 // Don't notify when there aren't any changes. |
| 231 EXPECT_CALL(observer_, OnSettingsChanged(_, _, _)).Times(0); | 231 EXPECT_CALL(observer_, OnSettingsChanged(_, _, _)).Times(0); |
| 232 store_->SetCurrentPolicy(policies); | 232 store_->SetCurrentPolicy(policies); |
| 233 base::RunLoop().RunUntilIdle(); | 233 base::RunLoop().RunUntilIdle(); |
| 234 Mock::VerifyAndClearExpectations(&observer_); | 234 Mock::VerifyAndClearExpectations(&observer_); |
| 235 } | 235 } |
| 236 | 236 |
| 237 } // namespace extensions | 237 } // namespace extensions |
| OLD | NEW |