Index: components/prefs/overlay_user_pref_store_unittest.cc |
diff --git a/components/prefs/overlay_user_pref_store_unittest.cc b/components/prefs/overlay_user_pref_store_unittest.cc |
index d722aeab6e01002dd4276c81c96c0db751a833c5..ec06185323c81b15cf1c5e0d70caf0401ffb5814 100644 |
--- a/components/prefs/overlay_user_pref_store_unittest.cc |
+++ b/components/prefs/overlay_user_pref_store_unittest.cc |
@@ -19,9 +19,11 @@ namespace { |
const char kBrowserWindowPlacement[] = "browser.window_placement"; |
const char kShowBookmarkBar[] = "bookmark_bar.show_on_all_tabs"; |
+const char kSharedKey[] = "sync_promo.show_on_first_run_allowed"; |
const char* const overlay_key = kBrowserWindowPlacement; |
const char* const regular_key = kShowBookmarkBar; |
+const char* const shared_key = kSharedKey; |
// With the removal of the kWebKitGlobalXXX prefs, we'll no longer have real |
// prefs using the overlay pref store, so make up keys here. |
const char mapped_overlay_key[] = "test.per_tab.javascript_enabled"; |
@@ -35,6 +37,7 @@ class OverlayUserPrefStoreTest : public testing::Test { |
: underlay_(new TestingPrefStore()), |
overlay_(new OverlayUserPrefStore(underlay_.get())) { |
overlay_->RegisterOverlayPref(overlay_key); |
+ overlay_->RegisterOverlayPref(shared_key); |
overlay_->RegisterOverlayPref(mapped_overlay_key, mapped_underlay_key); |
} |
@@ -309,4 +312,31 @@ TEST_F(OverlayUserPrefStoreTest, ClearMutableValues) { |
EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); |
} |
+TEST_F(OverlayUserPrefStoreTest, GetValues) { |
+ // To check merge behavior, create underlay and overlay so each has a key the |
Sam McNally
2017/02/21 01:58:25
Can you test with mapped_overlay_key and mapped_un
tibell
2017/02/21 02:11:07
Done.
|
+ // other doesn't have and they have one key in common. |
+ underlay_->SetValue(regular_key, base::WrapUnique(new FundamentalValue(42)), |
+ WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
+ overlay_->SetValue(overlay_key, base::WrapUnique(new FundamentalValue(43)), |
+ WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
+ underlay_->SetValue(shared_key, base::WrapUnique(new FundamentalValue(42)), |
+ WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
+ overlay_->SetValue(shared_key, base::WrapUnique(new FundamentalValue(43)), |
+ WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS); |
+ |
+ auto values = overlay_->GetValues(); |
+ const Value* value = nullptr; |
+ // Check that an overlay preference is returned. |
+ ASSERT_TRUE(values->Get(overlay_key, &value)); |
+ EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); |
+ |
+ // Check that an underlay preference is returned. |
+ ASSERT_TRUE(values->Get(regular_key, &value)); |
+ EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); |
+ |
+ // Check that the overlay is preferred. |
+ ASSERT_TRUE(values->Get(shared_key, &value)); |
+ EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); |
+} |
+ |
} // namespace base |