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

Unified Diff: chrome/browser/extensions/settings/testing_settings_storage.cc

Issue 8539037: Extension Settings API: make it so that when changes received from Sync fail to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments, sync Created 9 years, 1 month 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/settings/testing_settings_storage.cc
diff --git a/chrome/browser/extensions/settings/in_memory_settings_storage.cc b/chrome/browser/extensions/settings/testing_settings_storage.cc
similarity index 60%
rename from chrome/browser/extensions/settings/in_memory_settings_storage.cc
rename to chrome/browser/extensions/settings/testing_settings_storage.cc
index d017a692d598a9dbb6c4ca5967b862e081412d85..7b256ec2157095ae3b94d9066124c8cb1bad7dcf 100644
--- a/chrome/browser/extensions/settings/in_memory_settings_storage.cc
+++ b/chrome/browser/extensions/settings/testing_settings_storage.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/extensions/settings/in_memory_settings_storage.h"
+#include "chrome/browser/extensions/settings/testing_settings_storage.h"
#include "base/logging.h"
@@ -10,6 +10,16 @@ namespace extensions {
namespace {
+const char* kGenericErrorMessage = "TestingSettingsStorage configured to error";
+
+SettingsStorage::ReadResult ReadResultError() {
+ return SettingsStorage::ReadResult(kGenericErrorMessage);
+}
+
+SettingsStorage::WriteResult WriteResultError() {
+ return SettingsStorage::WriteResult(kGenericErrorMessage);
+}
+
std::vector<std::string> CreateVector(const std::string& string) {
std::vector<std::string> strings;
strings.push_back(string);
@@ -18,13 +28,26 @@ std::vector<std::string> CreateVector(const std::string& string) {
} // namespace
-SettingsStorage::ReadResult InMemorySettingsStorage::Get(
+TestingSettingsStorage::TestingSettingsStorage()
+ : fail_all_requests_(false) {}
+
+TestingSettingsStorage::~TestingSettingsStorage() {}
+
+void TestingSettingsStorage::SetFailAllRequests(bool fail_all_requests) {
+ fail_all_requests_ = fail_all_requests;
+}
+
+SettingsStorage::ReadResult TestingSettingsStorage::Get(
const std::string& key) {
return Get(CreateVector(key));
}
-SettingsStorage::ReadResult InMemorySettingsStorage::Get(
+SettingsStorage::ReadResult TestingSettingsStorage::Get(
const std::vector<std::string>& keys) {
+ if (fail_all_requests_) {
+ return ReadResultError();
+ }
+
DictionaryValue* settings = new DictionaryValue();
for (std::vector<std::string>::const_iterator it = keys.begin();
it != keys.end(); ++it) {
@@ -36,21 +59,27 @@ SettingsStorage::ReadResult InMemorySettingsStorage::Get(
return ReadResult(settings);
}
-SettingsStorage::ReadResult InMemorySettingsStorage::Get() {
+SettingsStorage::ReadResult TestingSettingsStorage::Get() {
+ if (fail_all_requests_) {
+ return ReadResultError();
+ }
return ReadResult(storage_.DeepCopy());
}
-SettingsStorage::WriteResult InMemorySettingsStorage::Set(
+SettingsStorage::WriteResult TestingSettingsStorage::Set(
const std::string& key, const Value& value) {
DictionaryValue settings;
settings.SetWithoutPathExpansion(key, value.DeepCopy());
return Set(settings);
}
-SettingsStorage::WriteResult InMemorySettingsStorage::Set(
+SettingsStorage::WriteResult TestingSettingsStorage::Set(
const DictionaryValue& settings) {
- scoped_ptr<SettingChangeList> changes(
- new SettingChangeList());
+ if (fail_all_requests_) {
+ return WriteResultError();
+ }
+
+ scoped_ptr<SettingChangeList> changes(new SettingChangeList());
for (DictionaryValue::Iterator it(settings); it.HasNext(); it.Advance()) {
Value* old_value = NULL;
storage_.GetWithoutPathExpansion(it.key(), &old_value);
@@ -66,13 +95,17 @@ SettingsStorage::WriteResult InMemorySettingsStorage::Set(
return WriteResult(changes.release());
}
-SettingsStorage::WriteResult InMemorySettingsStorage::Remove(
+SettingsStorage::WriteResult TestingSettingsStorage::Remove(
const std::string& key) {
return Remove(CreateVector(key));
}
-SettingsStorage::WriteResult InMemorySettingsStorage::Remove(
+SettingsStorage::WriteResult TestingSettingsStorage::Remove(
const std::vector<std::string>& keys) {
+ if (fail_all_requests_) {
+ return WriteResultError();
+ }
+
scoped_ptr<SettingChangeList> changes(
new SettingChangeList());
for (std::vector<std::string>::const_iterator it = keys.begin();
@@ -85,8 +118,11 @@ SettingsStorage::WriteResult InMemorySettingsStorage::Remove(
return WriteResult(changes.release());
}
-SettingsStorage::WriteResult
-InMemorySettingsStorage::Clear() {
+SettingsStorage::WriteResult TestingSettingsStorage::Clear() {
+ if (fail_all_requests_) {
+ return WriteResultError();
+ }
+
std::vector<std::string> keys;
for (DictionaryValue::Iterator it(storage_); it.HasNext(); it.Advance()) {
keys.push_back(it.key());

Powered by Google App Engine
This is Rietveld 408576698