Index: base/prefs/overlay_user_pref_store_unittest.cc |
diff --git a/base/prefs/overlay_user_pref_store_unittest.cc b/base/prefs/overlay_user_pref_store_unittest.cc |
index c4e980bbae3e0c8b9877c6b265a64984c998930f..0ff0aa1b03e56c111c2e5198ada514bce620c6c1 100644 |
--- a/base/prefs/overlay_user_pref_store_unittest.cc |
+++ b/base/prefs/overlay_user_pref_store_unittest.cc |
@@ -26,6 +26,15 @@ const char* regular_key = kShowBookmarkBar; |
const char* mapped_overlay_key = "test.per_tab.javascript_enabled"; |
const char* mapped_underlay_key = "test.per_profile.javascript_enabled"; |
+void ExpectAndPopOneValue(const std::string& value, |
Mattias Nissler (ping if slow)
2014/03/27 20:28:05
It'd probably make sense to turn this into:
void
|
+ std::vector<std::string>* collection) { |
+ EXPECT_EQ(1u, collection->size()); |
+ if (collection->size() >= 1) { |
+ EXPECT_EQ(value, collection->front()); |
+ collection->erase(collection->begin()); |
+ } |
+} |
+ |
} // namespace |
class OverlayUserPrefStoreTest : public testing::Test { |
@@ -48,47 +57,39 @@ TEST_F(OverlayUserPrefStoreTest, Observer) { |
overlay_->AddObserver(&obs); |
// Check that underlay first value is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(1); |
underlay_->SetValue(overlay_key, new FundamentalValue(42)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(overlay_key, &obs.changed_keys); |
// Check that underlay overwriting is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(1); |
underlay_->SetValue(overlay_key, new FundamentalValue(43)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(overlay_key, &obs.changed_keys); |
// Check that overwriting change in overlay is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(1); |
overlay_->SetValue(overlay_key, new FundamentalValue(44)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(overlay_key, &obs.changed_keys); |
// Check that hidden underlay change is not reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(0); |
underlay_->SetValue(overlay_key, new FundamentalValue(45)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
// Check that overlay remove is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(1); |
overlay_->RemoveValue(overlay_key); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(overlay_key, &obs.changed_keys); |
// Check that underlay remove is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(1); |
underlay_->RemoveValue(overlay_key); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(overlay_key, &obs.changed_keys); |
// Check respecting of silence. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(0); |
overlay_->SetValueSilently(overlay_key, new FundamentalValue(46)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
overlay_->RemoveObserver(&obs); |
// Check successful unsubscription. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(overlay_key))).Times(0); |
underlay_->SetValue(overlay_key, new FundamentalValue(47)); |
overlay_->SetValue(overlay_key, new FundamentalValue(48)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
} |
TEST_F(OverlayUserPrefStoreTest, GetAndSet) { |
@@ -154,23 +155,20 @@ TEST_F(OverlayUserPrefStoreTest, GlobalPref) { |
const Value* value = NULL; |
// Check that underlay first value is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); |
underlay_->SetValue(regular_key, new FundamentalValue(42)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(regular_key, &obs.changed_keys); |
// Check that underlay overwriting is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); |
underlay_->SetValue(regular_key, new FundamentalValue(43)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(regular_key, &obs.changed_keys); |
// Check that we get this value from the overlay |
EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); |
EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); |
// Check that overwriting change in overlay is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); |
overlay_->SetValue(regular_key, new FundamentalValue(44)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(regular_key, &obs.changed_keys); |
// Check that we get this value from the overlay and the underlay. |
EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); |
@@ -179,26 +177,23 @@ TEST_F(OverlayUserPrefStoreTest, GlobalPref) { |
EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); |
// Check that overlay remove is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(1); |
overlay_->RemoveValue(regular_key); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(regular_key, &obs.changed_keys); |
// Check that value was removed from overlay and underlay |
EXPECT_FALSE(overlay_->GetValue(regular_key, &value)); |
EXPECT_FALSE(underlay_->GetValue(regular_key, &value)); |
// Check respecting of silence. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0); |
overlay_->SetValueSilently(regular_key, new FundamentalValue(46)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
overlay_->RemoveObserver(&obs); |
// Check successful unsubscription. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(regular_key))).Times(0); |
underlay_->SetValue(regular_key, new FundamentalValue(47)); |
overlay_->SetValue(regular_key, new FundamentalValue(48)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
} |
// Check that names mapping works correctly. |
@@ -210,14 +205,12 @@ TEST_F(OverlayUserPrefStoreTest, NamesMapping) { |
// Check that if there is no override in the overlay, changing underlay value |
// is reported as changing an overlay value. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); |
underlay_->SetValue(mapped_underlay_key, new FundamentalValue(42)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(mapped_overlay_key, &obs.changed_keys); |
// Check that underlay overwriting is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); |
underlay_->SetValue(mapped_underlay_key, new FundamentalValue(43)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(mapped_overlay_key, &obs.changed_keys); |
// Check that we get this value from the overlay with both keys |
EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); |
@@ -227,9 +220,8 @@ TEST_F(OverlayUserPrefStoreTest, NamesMapping) { |
EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); |
// Check that overwriting change in overlay is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); |
overlay_->SetValue(mapped_overlay_key, new FundamentalValue(44)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(mapped_overlay_key, &obs.changed_keys); |
// Check that we get an overriden value from overlay, while reading the |
// value from underlay still holds an old value. |
@@ -241,38 +233,31 @@ TEST_F(OverlayUserPrefStoreTest, NamesMapping) { |
EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); |
// Check that hidden underlay change is not reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); |
underlay_->SetValue(mapped_underlay_key, new FundamentalValue(45)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
// Check that overlay remove is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); |
overlay_->RemoveValue(mapped_overlay_key); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(mapped_overlay_key, &obs.changed_keys); |
// Check that underlay remove is reported. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(1); |
underlay_->RemoveValue(mapped_underlay_key); |
- Mock::VerifyAndClearExpectations(&obs); |
+ ExpectAndPopOneValue(mapped_overlay_key, &obs.changed_keys); |
// Check that value was removed. |
EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value)); |
EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value)); |
// Check respecting of silence. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0); |
overlay_->SetValueSilently(mapped_overlay_key, new FundamentalValue(46)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
overlay_->RemoveObserver(&obs); |
// Check successful unsubscription. |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_overlay_key))).Times(0); |
- EXPECT_CALL(obs, OnPrefValueChanged(StrEq(mapped_underlay_key))).Times(0); |
underlay_->SetValue(mapped_underlay_key, new FundamentalValue(47)); |
overlay_->SetValue(mapped_overlay_key, new FundamentalValue(48)); |
- Mock::VerifyAndClearExpectations(&obs); |
+ EXPECT_TRUE(obs.changed_keys.empty()); |
} |
} // namespace base |