summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_settings_storage_unittest.cc
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-22 03:32:07 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-22 03:32:07 +0000
commitbe80eae925e1bb08b0584e55cd47accceba09390 (patch)
tree2209732664ad91da73883747415c1bddb60ab25c /chrome/browser/extensions/extension_settings_storage_unittest.cc
parent15245b8b5298a41363183deba5f5e156c6d0ac74 (diff)
downloadchromium_src-be80eae925e1bb08b0584e55cd47accceba09390.zip
chromium_src-be80eae925e1bb08b0584e55cd47accceba09390.tar.gz
chromium_src-be80eae925e1bb08b0584e55cd47accceba09390.tar.bz2
Re-commit 106660 with the crashing test disabled. Reverted in 106671.
Add onChanged events to the extension settings API, both from sync and between split mode background pages. BUG=97545 TEST=ExtensionSettingsStorageUnittest, ExtensionSettingsSyncUnittest, ExtensionSettingsApitest Review URL: http://codereview.chromium.org/8177022 TBR=rsleevi@chromium.org Review URL: http://codereview.chromium.org/8361027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106848 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_settings_storage_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_settings_storage_unittest.cc534
1 files changed, 296 insertions, 238 deletions
diff --git a/chrome/browser/extensions/extension_settings_storage_unittest.cc b/chrome/browser/extensions/extension_settings_storage_unittest.cc
index a36bed9..f3080ac 100644
--- a/chrome/browser/extensions/extension_settings_storage_unittest.cc
+++ b/chrome/browser/extensions/extension_settings_storage_unittest.cc
@@ -33,48 +33,86 @@ std::string ToString(const std::set<std::string>& strings) {
} // namespace
+// Compares two possibly NULL values for equality, filling |error| with an
+// appropriate error message if they're different.
+bool ValuesEqual(
+ const Value* expected, const Value* actual, std::string* error) {
+ if (expected == actual) {
+ return true;
+ }
+ if (expected && !actual) {
+ *error = "Expected: " + GetJSON(*expected) + ", actual: NULL";
+ return false;
+ }
+ if (actual && !expected) {
+ *error = "Expected: NULL, actual: " + GetJSON(*actual);
+ return false;
+ }
+ if (!expected->Equals(actual)) {
+ *error =
+ "Expected: " + GetJSON(*expected) + ", actual: " + GetJSON(*actual);
+ return false;
+ }
+ return true;
+}
+
// Returns whether the result of a storage operation has the expected settings
// and changed keys.
testing::AssertionResult SettingsEq(
- const char* _1, const char* _2, const char* _3,
+ const char* _1, const char* _2, const char* _3, const char* _4,
DictionaryValue* expected_settings,
+ DictionaryValue* expected_old_settings,
std::set<std::string>* expected_changed_keys,
ExtensionSettingsStorage::Result actual) {
+ std::string error;
+
if (actual.HasError()) {
return testing::AssertionFailure() <<
"Expected: " << GetJSON(*expected_settings) <<
", " << ToString(*expected_changed_keys) << "\n" <<
", actual has error: " << actual.GetError();
}
- if (expected_settings == NULL && actual.GetSettings() != NULL) {
- return testing::AssertionFailure() <<
- "Expected NULL settings, actual: " << GetJSON(*actual.GetSettings());
+
+ if (!ValuesEqual(expected_settings, actual.GetSettings(), &error)) {
+ return testing::AssertionFailure() << "For settings, " << error;
}
- if (expected_changed_keys == NULL && actual.GetChangedKeys() != NULL) {
+
+ if (!expected_changed_keys && actual.GetChangedKeys()) {
return testing::AssertionFailure() <<
"Expected NULL changed keys, actual: " <<
ToString(*actual.GetChangedKeys());
}
- if (expected_settings != NULL && actual.GetSettings() == NULL) {
- return testing::AssertionFailure() <<
- "Expected: " << GetJSON(*expected_settings) << ", actual NULL";
- }
- if (expected_changed_keys != NULL && actual.GetChangedKeys() == NULL) {
+ if (expected_changed_keys && !actual.GetChangedKeys()) {
return testing::AssertionFailure() <<
"Expected: " << ToString(*expected_changed_keys) << ", actual NULL";
}
- if (expected_settings != actual.GetSettings() &&
- !expected_settings->Equals(actual.GetSettings())) {
- return testing::AssertionFailure() <<
- "Expected: " << GetJSON(*expected_settings) <<
- ", actual: " << GetJSON(*actual.GetSettings());
- }
if (expected_changed_keys != actual.GetChangedKeys() &&
*expected_changed_keys != *actual.GetChangedKeys()) {
return testing::AssertionFailure() <<
"Expected: " << ToString(*expected_changed_keys) <<
", actual: " << ToString(*actual.GetChangedKeys());
}
+
+ const std::set<std::string>* changed_keys = actual.GetChangedKeys();
+ if (changed_keys) {
+ for (std::set<std::string>::const_iterator it = changed_keys->begin();
+ it != changed_keys->end(); ++it) {
+ Value *expected_old_value = NULL;
+ expected_old_settings->GetWithoutPathExpansion(*it, &expected_old_value);
+ if (!ValuesEqual(expected_old_value, actual.GetOldValue(*it), &error)) {
+ return testing::AssertionFailure() << "Old values not equal: " << error;
+ }
+
+ Value *expected_new_value = NULL;
+ if (expected_settings) {
+ expected_settings->GetWithoutPathExpansion(*it, &expected_new_value);
+ }
+ if (!ValuesEqual(expected_new_value, actual.GetNewValue(*it), &error)) {
+ return testing::AssertionFailure() << "New values not equal: " << error;
+ }
+ }
+ }
+
return testing::AssertionSuccess();
}
@@ -82,10 +120,11 @@ ExtensionSettingsStorageTest::ExtensionSettingsStorageTest()
: key1_("foo"),
key2_("bar"),
key3_("baz"),
- empty_dict_(new DictionaryValue),
- dict1_(new DictionaryValue),
- dict12_(new DictionaryValue),
- dict123_(new DictionaryValue),
+ empty_dict_(new DictionaryValue()),
+ dict1_(new DictionaryValue()),
+ dict3_(new DictionaryValue()),
+ dict12_(new DictionaryValue()),
+ dict123_(new DictionaryValue()),
ui_thread_(BrowserThread::UI, MessageLoop::current()),
file_thread_(BrowserThread::FILE, MessageLoop::current()) {
val1_.reset(Value::CreateStringValue(key1_ + "Value"));
@@ -111,6 +150,7 @@ ExtensionSettingsStorageTest::ExtensionSettingsStorageTest()
set123_.insert(list123_.begin(), list123_.end());
dict1_->Set(key1_, val1_->DeepCopy());
+ dict3_->Set(key3_, val3_->DeepCopy());
dict12_->Set(key1_, val1_->DeepCopy());
dict12_->Set(key2_, val2_->DeepCopy());
dict123_->Set(key1_, val1_->DeepCopy());
@@ -131,179 +171,179 @@ void ExtensionSettingsStorageTest::TearDown() {
}
TEST_P(ExtensionSettingsStorageTest, GetWhenEmpty) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, GetWithSingleValue) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), &set1_, storage_->Set(key1_, *val1_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key2_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key3_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), empty_dict_.get(), &set1_, storage_->Set(key1_, *val1_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key2_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key3_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, GetWithMultipleValues) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), &set12_, storage_->Set(*dict12_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key3_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), empty_dict_.get(), &set12_, storage_->Set(*dict12_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key3_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, RemoveWhenEmpty) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Remove(key1_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Remove(key1_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, RemoveWithSingleValue) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), &set1_, storage_->Set(*dict1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set1_, storage_->Remove(key1_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key2_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), empty_dict_.get(), &set1_, storage_->Set(*dict1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, dict1_.get(), &set1_, storage_->Remove(key1_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key2_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, RemoveWithMultipleValues) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict123_.get(), &set123_, storage_->Set(*dict123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set3_, storage_->Remove(key3_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key3_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(list1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get(list12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(list13_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get());
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set12_, storage_->Remove(list12_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key3_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list13_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict123_.get(), empty_dict_.get(), &set123_, storage_->Set(*dict123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, dict3_.get(), &set3_, storage_->Remove(key3_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key3_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(list1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(list13_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get());
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, dict12_.get(), &set12_, storage_->Remove(list12_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key3_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list13_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, SetWhenOverwriting) {
DictionaryValue key1_val2;
key1_val2.Set(key1_, val2_->DeepCopy());
- EXPECT_PRED_FORMAT3(SettingsEq,
- &key1_val2, &set1_, storage_->Set(key1_, *val2_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), &set12_, storage_->Set(*dict12_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key3_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(list1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get(list12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), NULL, storage_->Get(list13_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &key1_val2, empty_dict_.get(), &set1_, storage_->Set(key1_, *val2_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), &key1_val2, &set12_, storage_->Set(*dict12_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key3_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(list1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), NULL, NULL, storage_->Get(list13_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, ClearWhenEmpty) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Clear());
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Clear());
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, ClearWhenNotEmpty) {
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), &set12_, storage_->Set(*dict12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set12_, storage_->Clear());
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(empty_list_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(list123_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), empty_dict_.get(), &set12_, storage_->Set(*dict12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, dict12_.get(), &set12_, storage_->Clear());
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(empty_list_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(list123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
// Dots should be allowed in key names; they shouldn't be interpreted as
@@ -318,33 +358,35 @@ TEST_P(ExtensionSettingsStorageTest, DotsInKeyNames) {
DictionaryValue dot_dict;
dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy());
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(dot_key));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, &dot_set, storage_->Set(dot_key, dot_value));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, &empty_set_, storage_->Set(dot_key, dot_value));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, NULL, storage_->Get(dot_key));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &dot_set, storage_->Remove(dot_key));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Remove(dot_key));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, &dot_set, storage_->Set(dot_dict));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, NULL, storage_->Get(dot_list));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &dot_dict, NULL, storage_->Get());
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &dot_set, storage_->Remove(dot_list));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get(dot_key));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(dot_key));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, empty_dict_.get(), &dot_set,
+ storage_->Set(dot_key, dot_value));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, &dot_dict, &empty_set_,
+ storage_->Set(dot_key, dot_value));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, NULL, NULL, storage_->Get(dot_key));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, &dot_dict, &dot_set, storage_->Remove(dot_key));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Remove(dot_key));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, empty_dict_.get(), &dot_set, storage_->Set(dot_dict));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, NULL, NULL, storage_->Get(dot_list));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &dot_dict, NULL, NULL, storage_->Get());
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, &dot_dict, &dot_set, storage_->Remove(dot_list));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get(dot_key));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get());
}
TEST_P(ExtensionSettingsStorageTest, DotsInKeyNamesWithDicts) {
@@ -355,12 +397,12 @@ TEST_P(ExtensionSettingsStorageTest, DotsInKeyNamesWithDicts) {
std::set<std::string> changed_keys;
changed_keys.insert("foo");
- EXPECT_PRED_FORMAT3(SettingsEq,
- &outer_dict, &changed_keys, storage_->Set(outer_dict));
- EXPECT_PRED_FORMAT3(SettingsEq,
- &outer_dict, NULL, storage_->Get("foo"));
- EXPECT_PRED_FORMAT3(SettingsEq,
- empty_dict_.get(), NULL, storage_->Get("foo.bar"));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &outer_dict, empty_dict_.get(), &changed_keys, storage_->Set(outer_dict));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &outer_dict, NULL, NULL, storage_->Get("foo"));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ empty_dict_.get(), NULL, NULL, storage_->Get("foo.bar"));
}
TEST_P(ExtensionSettingsStorageTest, ComplexChangedKeysScenarios) {
@@ -371,66 +413,82 @@ TEST_P(ExtensionSettingsStorageTest, ComplexChangedKeysScenarios) {
std::vector<std::string> complex_list;
std::set<std::string> complex_set;
DictionaryValue complex_dict;
+ DictionaryValue complex_changed_dict;
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), &set1_, storage_->Set(key1_, *val1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), &empty_set_, storage_->Set(key1_, *val1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), empty_dict_.get(), &set1_, storage_->Set(key1_, *val1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), dict1_.get(), &empty_set_, storage_->Set(key1_, *val1_));
complex_dict.Clear();
complex_dict.Set(key1_, val2_->DeepCopy());
- EXPECT_PRED_FORMAT3(SettingsEq,
- &complex_dict, &set1_, storage_->Set(key1_, *val2_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set1_, storage_->Remove(key1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Remove(key1_));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict1_.get(), &set1_, storage_->Set(key1_, *val1_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set1_, storage_->Clear());
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Clear());
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), &set12_, storage_->Set(*dict12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict12_.get(), &empty_set_, storage_->Set(*dict12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- dict123_.get(), &set3_, storage_->Set(*dict123_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &complex_dict, dict1_.get(), &set1_, storage_->Set(key1_, *val2_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, &complex_dict, &set1_, storage_->Remove(key1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Remove(key1_));
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict1_.get(), empty_dict_.get(), &set1_, storage_->Set(key1_, *val1_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, dict1_.get(), &set1_, storage_->Clear());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Clear());
+
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), empty_dict_.get(), &set12_, storage_->Set(*dict12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict12_.get(), dict12_.get(), &empty_set_, storage_->Set(*dict12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ dict123_.get(), dict12_.get(), &set3_, storage_->Set(*dict123_));
complex_dict.Clear();
complex_dict.Set(key1_, val2_->DeepCopy());
complex_dict.Set(key2_, val2_->DeepCopy());
complex_dict.Set("asdf", val1_->DeepCopy());
complex_dict.Set("qwerty", val3_->DeepCopy());
+ complex_changed_dict.Clear();
+ complex_changed_dict.Set(key1_, val1_->DeepCopy());
+ complex_changed_dict.Set(key2_, val2_->DeepCopy());
complex_set.clear();
complex_set.insert(key1_);
complex_set.insert("asdf");
complex_set.insert("qwerty");
- EXPECT_PRED_FORMAT3(SettingsEq,
- &complex_dict, &complex_set, storage_->Set(complex_dict));
-
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &set12_, storage_->Remove(list12_));
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Remove(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ &complex_dict, &complex_changed_dict, &complex_set,
+ storage_->Set(complex_dict));
+
+ complex_changed_dict.Clear();
+ complex_changed_dict.Set(key1_, val2_->DeepCopy());
+ complex_changed_dict.Set(key2_, val2_->DeepCopy());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, &complex_changed_dict, &set12_, storage_->Remove(list12_));
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Remove(list12_));
complex_list.clear();
complex_list.push_back(key1_);
complex_list.push_back("asdf");
+ complex_changed_dict.Clear();
+ complex_changed_dict.Set("asdf", val1_->DeepCopy());
complex_set.clear();
complex_set.insert("asdf");
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &complex_set, storage_->Remove(complex_list));
-
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL,
+ &complex_changed_dict,
+ &complex_set,
+ storage_->Remove(complex_list));
+
+ complex_changed_dict.Clear();
+ complex_changed_dict.Set(key3_, val3_->DeepCopy());
+ complex_changed_dict.Set("qwerty", val3_->DeepCopy());
complex_set.clear();
complex_set.insert(key3_);
complex_set.insert("qwerty");
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &complex_set, storage_->Clear());
- EXPECT_PRED_FORMAT3(SettingsEq,
- NULL, &empty_set_, storage_->Clear());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, &complex_changed_dict, &complex_set, storage_->Clear());
+ EXPECT_PRED_FORMAT4(SettingsEq,
+ NULL, empty_dict_.get(), &empty_set_, storage_->Clear());
}