Index: chrome/browser/extensions/extension_settings_storage_unittest.cc |
diff --git a/chrome/browser/extensions/extension_settings_storage_unittest.cc b/chrome/browser/extensions/extension_settings_storage_unittest.cc |
index a36bed9c0e109d8be33c6611f65cd0ad9b45c6f2..f3080aca0dff9d6d7bef28cb79c12564cc031ff2 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()); |
} |