testing_pref_store.cc revision ddb351dbec246cf1fab5ec20d2d5520909041de1
1// Copyright (c) 2011 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/prefs/testing_pref_store.h" 6 7#include "base/values.h" 8 9TestingPrefStore::TestingPrefStore() 10 : read_only_(true), 11 prefs_written_(false), 12 init_complete_(false) {} 13 14TestingPrefStore::~TestingPrefStore() {} 15 16PrefStore::ReadResult TestingPrefStore::GetValue(const std::string& key, 17 const Value** value) const { 18 return prefs_.GetValue(key, value) ? READ_OK : READ_NO_VALUE; 19} 20 21PrefStore::ReadResult TestingPrefStore::GetMutableValue(const std::string& key, 22 Value** value) { 23 return prefs_.GetValue(key, value) ? READ_OK : READ_NO_VALUE; 24} 25 26void TestingPrefStore::AddObserver(PrefStore::Observer* observer) { 27 observers_.AddObserver(observer); 28} 29 30void TestingPrefStore::RemoveObserver(PrefStore::Observer* observer) { 31 observers_.RemoveObserver(observer); 32} 33 34bool TestingPrefStore::IsInitializationComplete() const { 35 return init_complete_; 36} 37 38void TestingPrefStore::SetValue(const std::string& key, Value* value) { 39 if (prefs_.SetValue(key, value)) 40 NotifyPrefValueChanged(key); 41} 42 43void TestingPrefStore::SetValueSilently(const std::string& key, Value* value) { 44 prefs_.SetValue(key, value); 45} 46 47void TestingPrefStore::RemoveValue(const std::string& key) { 48 if (prefs_.RemoveValue(key)) 49 NotifyPrefValueChanged(key); 50} 51 52bool TestingPrefStore::ReadOnly() const { 53 return read_only_; 54} 55 56PersistentPrefStore::PrefReadError TestingPrefStore::ReadPrefs() { 57 prefs_.Clear(); 58 return PersistentPrefStore::PREF_READ_ERROR_NONE; 59} 60 61bool TestingPrefStore::WritePrefs() { 62 prefs_written_ = true; 63 return prefs_written_; 64} 65 66void TestingPrefStore::SetInitializationCompleted() { 67 init_complete_ = true; 68 NotifyInitializationCompleted(); 69} 70 71void TestingPrefStore::NotifyPrefValueChanged(const std::string& key) { 72 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 73} 74 75void TestingPrefStore::NotifyInitializationCompleted() { 76 FOR_EACH_OBSERVER(Observer, observers_, OnInitializationCompleted()); 77} 78 79void TestingPrefStore::ReportValueChanged(const std::string& key) { 80 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 81} 82 83void TestingPrefStore::SetString(const std::string& key, 84 const std::string& value) { 85 SetValue(key, Value::CreateStringValue(value)); 86} 87 88void TestingPrefStore::SetInteger(const std::string& key, int value) { 89 SetValue(key, Value::CreateIntegerValue(value)); 90} 91 92void TestingPrefStore::SetBoolean(const std::string& key, bool value) { 93 SetValue(key, Value::CreateBooleanValue(value)); 94} 95 96bool TestingPrefStore::GetString(const std::string& key, 97 std::string* value) const { 98 const Value* stored_value; 99 if (!prefs_.GetValue(key, &stored_value) || !stored_value) 100 return false; 101 102 return stored_value->GetAsString(value); 103} 104 105bool TestingPrefStore::GetInteger(const std::string& key, int* value) const { 106 const Value* stored_value; 107 if (!prefs_.GetValue(key, &stored_value) || !stored_value) 108 return false; 109 110 return stored_value->GetAsInteger(value); 111} 112 113bool TestingPrefStore::GetBoolean(const std::string& key, bool* value) const { 114 const Value* stored_value; 115 if (!prefs_.GetValue(key, &stored_value) || !stored_value) 116 return false; 117 118 return stored_value->GetAsBoolean(value); 119} 120 121void TestingPrefStore::set_read_only(bool read_only) { 122 read_only_ = read_only; 123} 124 125void TestingPrefStore::set_prefs_written(bool status) { 126 prefs_written_ = status; 127} 128 129bool TestingPrefStore::get_prefs_written() { 130 return prefs_written_; 131} 132