| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/memory/ref_counted.h" | 6 #include "base/memory/ref_counted.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/extensions/extension_pref_value_map.h" | 9 #include "chrome/browser/extensions/extension_pref_value_map.h" |
| 10 #include "chrome/common/pref_store_observer_mock.h" | 10 #include "chrome/common/pref_store_observer_mock.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 | 59 |
| 60 MOCK_METHOD1(OnPrefValueChanged, void(const std::string&)); | 60 MOCK_METHOD1(OnPrefValueChanged, void(const std::string&)); |
| 61 MOCK_METHOD0(OnInitializationCompleted, void()); | 61 MOCK_METHOD0(OnInitializationCompleted, void()); |
| 62 MOCK_METHOD0(OnExtensionPrefValueMapDestruction, void()); | 62 MOCK_METHOD0(OnExtensionPrefValueMapDestruction, void()); |
| 63 | 63 |
| 64 private: | 64 private: |
| 65 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMapObserverMock); | 65 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMapObserverMock); |
| 66 }; | 66 }; |
| 67 | 67 |
| 68 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) { | 68 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) { |
| 69 using namespace extension_prefs_scope; |
| 69 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 70 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 70 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 71 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 71 EXPECT_EQ("val1", GetValue(kPref1, false)); | 72 EXPECT_EQ("val1", GetValue(kPref1, false)); |
| 72 }; | 73 }; |
| 73 | 74 |
| 74 TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) { | 75 TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) { |
| 75 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 76 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 76 EXPECT_EQ("", GetValue(kPref1, false)); | 77 EXPECT_EQ("", GetValue(kPref1, false)); |
| 77 }; | 78 }; |
| 78 | 79 |
| 79 // Make sure the last-installed extension wins for each preference. | 80 // Make sure the last-installed extension wins for each preference. |
| 80 TEST_F(ExtensionPrefValueMapTest, Override) { | 81 TEST_F(ExtensionPrefValueMapTest, Override) { |
| 82 using namespace extension_prefs_scope; |
| 81 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 83 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 82 epvm_.RegisterExtension(kExt2, CreateTime(20), true); | 84 epvm_.RegisterExtension(kExt2, CreateTime(20), true); |
| 83 epvm_.RegisterExtension(kExt3, CreateTime(30), true); | 85 epvm_.RegisterExtension(kExt3, CreateTime(30), true); |
| 84 | 86 |
| 85 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 87 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 86 epvm_.SetExtensionPref(kExt2, kPref1, false, CreateVal("val2")); | 88 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); |
| 87 epvm_.SetExtensionPref(kExt3, kPref1, false, CreateVal("val3")); | 89 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); |
| 88 | 90 |
| 89 epvm_.SetExtensionPref(kExt1, kPref2, false, CreateVal("val4")); | 91 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); |
| 90 epvm_.SetExtensionPref(kExt2, kPref2, false, CreateVal("val5")); | 92 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5")); |
| 91 | 93 |
| 92 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val6")); | 94 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val6")); |
| 93 epvm_.SetExtensionPref(kExt1, kPref2, false, CreateVal("val7")); | 95 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val7")); |
| 94 epvm_.SetExtensionPref(kExt1, kPref3, false, CreateVal("val8")); | 96 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val8")); |
| 95 | 97 |
| 96 EXPECT_EQ("val3", GetValue(kPref1, false)); | 98 EXPECT_EQ("val3", GetValue(kPref1, false)); |
| 97 EXPECT_EQ("val5", GetValue(kPref2, false)); | 99 EXPECT_EQ("val5", GetValue(kPref2, false)); |
| 98 EXPECT_EQ("val8", GetValue(kPref3, false)); | 100 EXPECT_EQ("val8", GetValue(kPref3, false)); |
| 99 } | 101 } |
| 100 | 102 |
| 101 TEST_F(ExtensionPrefValueMapTest, OverrideChecks) { | 103 TEST_F(ExtensionPrefValueMapTest, OverrideChecks) { |
| 104 using namespace extension_prefs_scope; |
| 102 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 105 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 103 epvm_.RegisterExtension(kExt2, CreateTime(20), true); | 106 epvm_.RegisterExtension(kExt2, CreateTime(20), true); |
| 104 epvm_.RegisterExtension(kExt3, CreateTime(30), true); | 107 epvm_.RegisterExtension(kExt3, CreateTime(30), true); |
| 105 | 108 |
| 106 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, false)); | 109 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, false)); |
| 107 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, false)); | 110 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, false)); |
| 108 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, false)); | 111 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, false)); |
| 109 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); | 112 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); |
| 110 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); | 113 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); |
| 111 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); | 114 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); |
| 112 | 115 |
| 113 epvm_.SetExtensionPref(kExt2, kPref1, false, CreateVal("val1")); | 116 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val1")); |
| 114 | 117 |
| 115 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, false)); | 118 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, false)); |
| 116 EXPECT_TRUE(epvm_.DoesExtensionControlPref(kExt2, kPref1, false)); | 119 EXPECT_TRUE(epvm_.DoesExtensionControlPref(kExt2, kPref1, false)); |
| 117 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, false)); | 120 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, false)); |
| 118 EXPECT_FALSE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); | 121 EXPECT_FALSE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); |
| 119 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); | 122 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); |
| 120 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); | 123 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); |
| 121 } | 124 } |
| 122 | 125 |
| 123 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) { | 126 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) { |
| 127 using namespace extension_prefs_scope; |
| 124 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 128 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 125 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 129 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 126 EXPECT_EQ("val1", GetValue(kPref1, true)); | 130 EXPECT_EQ("val1", GetValue(kPref1, true)); |
| 127 } | 131 } |
| 128 | 132 |
| 129 TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) { | 133 TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) { |
| 134 using namespace extension_prefs_scope; |
| 130 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 135 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 131 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 136 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 132 epvm_.UnregisterExtension(kExt1); | 137 epvm_.UnregisterExtension(kExt1); |
| 133 | 138 |
| 134 EXPECT_EQ("", GetValue(kPref1, false)); | 139 EXPECT_EQ("", GetValue(kPref1, false)); |
| 135 } | 140 } |
| 136 | 141 |
| 137 // Tests uninstalling an extension that wasn't winning for any preferences. | 142 // Tests uninstalling an extension that wasn't winning for any preferences. |
| 138 TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) { | 143 TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) { |
| 144 using namespace extension_prefs_scope; |
| 139 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 145 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 140 epvm_.RegisterExtension(kExt2, CreateTime(10), true); | 146 epvm_.RegisterExtension(kExt2, CreateTime(10), true); |
| 141 | 147 |
| 142 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 148 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 143 epvm_.SetExtensionPref(kExt2, kPref1, false, CreateVal("val2")); | 149 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); |
| 144 | 150 |
| 145 epvm_.SetExtensionPref(kExt1, kPref2, false, CreateVal("val3")); | 151 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val3")); |
| 146 epvm_.SetExtensionPref(kExt2, kPref2, false, CreateVal("val4")); | 152 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val4")); |
| 147 | 153 |
| 148 epvm_.UnregisterExtension(kExt1); | 154 epvm_.UnregisterExtension(kExt1); |
| 149 | 155 |
| 150 EXPECT_EQ("val2", GetValue(kPref1, false)); | 156 EXPECT_EQ("val2", GetValue(kPref1, false)); |
| 151 EXPECT_EQ("val4", GetValue(kPref2, false)); | 157 EXPECT_EQ("val4", GetValue(kPref2, false)); |
| 152 } | 158 } |
| 153 | 159 |
| 154 // Tests uninstalling an extension that was winning for all preferences. | 160 // Tests uninstalling an extension that was winning for all preferences. |
| 155 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) { | 161 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) { |
| 162 using namespace extension_prefs_scope; |
| 156 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 163 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 157 epvm_.RegisterExtension(kExt2, CreateTime(20), true); | 164 epvm_.RegisterExtension(kExt2, CreateTime(20), true); |
| 158 epvm_.RegisterExtension(kExt3, CreateTime(30), true); | 165 epvm_.RegisterExtension(kExt3, CreateTime(30), true); |
| 159 | 166 |
| 160 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 167 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 161 epvm_.SetExtensionPref(kExt2, kPref1, false, CreateVal("val2")); | 168 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); |
| 162 epvm_.SetExtensionPref(kExt3, kPref1, false, CreateVal("val3")); | 169 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); |
| 163 | 170 |
| 164 epvm_.SetExtensionPref(kExt1, kPref2, false, CreateVal("val4")); | 171 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); |
| 165 epvm_.SetExtensionPref(kExt3, kPref2, false, CreateVal("val5")); | 172 epvm_.SetExtensionPref(kExt3, kPref2, kRegular, CreateVal("val5")); |
| 166 | 173 |
| 167 epvm_.UnregisterExtension(kExt3); | 174 epvm_.UnregisterExtension(kExt3); |
| 168 | 175 |
| 169 EXPECT_EQ("val2", GetValue(kPref1, false)); | 176 EXPECT_EQ("val2", GetValue(kPref1, false)); |
| 170 EXPECT_EQ("val4", GetValue(kPref2, false)); | 177 EXPECT_EQ("val4", GetValue(kPref2, false)); |
| 171 } | 178 } |
| 172 | 179 |
| 173 // Tests uninstalling an extension that was winning for only some preferences. | 180 // Tests uninstalling an extension that was winning for only some preferences. |
| 174 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) { | 181 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) { |
| 182 using namespace extension_prefs_scope; |
| 175 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 183 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 176 epvm_.RegisterExtension(kExt2, CreateTime(20), true); | 184 epvm_.RegisterExtension(kExt2, CreateTime(20), true); |
| 177 epvm_.RegisterExtension(kExt3, CreateTime(30), true); | 185 epvm_.RegisterExtension(kExt3, CreateTime(30), true); |
| 178 | 186 |
| 179 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 187 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 180 epvm_.SetExtensionPref(kExt2, kPref1, false, CreateVal("val2")); | 188 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); |
| 181 epvm_.SetExtensionPref(kExt3, kPref1, false, CreateVal("val3")); | 189 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); |
| 182 | 190 |
| 183 epvm_.SetExtensionPref(kExt1, kPref2, false, CreateVal("val4")); | 191 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); |
| 184 epvm_.SetExtensionPref(kExt2, kPref2, false, CreateVal("val5")); | 192 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5")); |
| 185 | 193 |
| 186 epvm_.SetExtensionPref(kExt1, kPref3, false, CreateVal("val6")); | 194 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val6")); |
| 187 | 195 |
| 188 epvm_.SetExtensionPref(kExt2, kPref4, false, CreateVal("val7")); | 196 epvm_.SetExtensionPref(kExt2, kPref4, kRegular, CreateVal("val7")); |
| 189 | 197 |
| 190 epvm_.UnregisterExtension(kExt2); | 198 epvm_.UnregisterExtension(kExt2); |
| 191 | 199 |
| 192 EXPECT_EQ("val3", GetValue(kPref1, false)); | 200 EXPECT_EQ("val3", GetValue(kPref1, false)); |
| 193 EXPECT_EQ("val4", GetValue(kPref2, false)); | 201 EXPECT_EQ("val4", GetValue(kPref2, false)); |
| 194 EXPECT_EQ("val6", GetValue(kPref3, false)); | 202 EXPECT_EQ("val6", GetValue(kPref3, false)); |
| 195 EXPECT_EQ("", GetValue(kPref4, false)); | 203 EXPECT_EQ("", GetValue(kPref4, false)); |
| 196 } | 204 } |
| 197 | 205 |
| 198 // Tests triggering of notifications to registered observers. | 206 // Tests triggering of notifications to registered observers. |
| 199 TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) { | 207 TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) { |
| 200 using testing::_; | 208 using testing::_; |
| 201 using testing::Mock; | 209 using testing::Mock; |
| 202 using testing::StrEq; | 210 using testing::StrEq; |
| 211 using namespace extension_prefs_scope; |
| 203 | 212 |
| 204 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 213 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 205 | 214 |
| 206 ExtensionPrefValueMapObserverMock observer; | 215 ExtensionPrefValueMapObserverMock observer; |
| 207 epvm_.AddObserver(&observer); | 216 epvm_.AddObserver(&observer); |
| 208 | 217 |
| 209 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 218 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 210 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 219 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 211 Mock::VerifyAndClearExpectations(&observer); | 220 Mock::VerifyAndClearExpectations(&observer); |
| 212 | 221 |
| 213 // Write the same value again. | 222 // Write the same value again. |
| 214 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); | 223 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); |
| 215 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 224 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 216 Mock::VerifyAndClearExpectations(&observer); | 225 Mock::VerifyAndClearExpectations(&observer); |
| 217 | 226 |
| 218 // Override incognito value. | 227 // Override incognito value. |
| 219 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 228 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 220 epvm_.SetExtensionPref(kExt1, kPref1, true, CreateVal("val2")); | 229 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val2")); |
| 221 Mock::VerifyAndClearExpectations(&observer); | 230 Mock::VerifyAndClearExpectations(&observer); |
| 222 | 231 |
| 223 // Override non-incognito value. | 232 // Override non-incognito value. |
| 224 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 233 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 225 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val3")); | 234 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val3")); |
| 226 Mock::VerifyAndClearExpectations(&observer); | 235 Mock::VerifyAndClearExpectations(&observer); |
| 227 | 236 |
| 228 // Disable. | 237 // Disable. |
| 229 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 238 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 230 epvm_.SetExtensionState(kExt1, false); | 239 epvm_.SetExtensionState(kExt1, false); |
| 231 Mock::VerifyAndClearExpectations(&observer); | 240 Mock::VerifyAndClearExpectations(&observer); |
| 232 | 241 |
| 233 // Enable. | 242 // Enable. |
| 234 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 243 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 235 epvm_.SetExtensionState(kExt1, true); | 244 epvm_.SetExtensionState(kExt1, true); |
| 236 Mock::VerifyAndClearExpectations(&observer); | 245 Mock::VerifyAndClearExpectations(&observer); |
| 237 | 246 |
| 238 // Uninstall | 247 // Uninstall |
| 239 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); | 248 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); |
| 240 epvm_.UnregisterExtension(kExt1); | 249 epvm_.UnregisterExtension(kExt1); |
| 241 Mock::VerifyAndClearExpectations(&observer); | 250 Mock::VerifyAndClearExpectations(&observer); |
| 242 | 251 |
| 243 epvm_.RemoveObserver(&observer); | 252 epvm_.RemoveObserver(&observer); |
| 244 | 253 |
| 245 // Write new value --> no notification after removing observer. | 254 // Write new value --> no notification after removing observer. |
| 246 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); | 255 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); |
| 247 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 256 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 248 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val4")); | 257 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val4")); |
| 249 Mock::VerifyAndClearExpectations(&observer); | 258 Mock::VerifyAndClearExpectations(&observer); |
| 250 } | 259 } |
| 251 | 260 |
| 252 // Tests disabling an extension. | 261 // Tests disabling an extension. |
| 253 TEST_F(ExtensionPrefValueMapTest, DisableExt) { | 262 TEST_F(ExtensionPrefValueMapTest, DisableExt) { |
| 263 using namespace extension_prefs_scope; |
| 254 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 264 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 255 | 265 |
| 256 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 266 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 257 epvm_.SetExtensionState(kExt1, false); | 267 epvm_.SetExtensionState(kExt1, false); |
| 258 EXPECT_EQ("", GetValue(kPref1, false)); | 268 EXPECT_EQ("", GetValue(kPref1, false)); |
| 259 } | 269 } |
| 260 | 270 |
| 261 // Tests disabling and reenabling an extension. | 271 // Tests disabling and reenabling an extension. |
| 262 TEST_F(ExtensionPrefValueMapTest, ReenableExt) { | 272 TEST_F(ExtensionPrefValueMapTest, ReenableExt) { |
| 273 using namespace extension_prefs_scope; |
| 263 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 274 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 264 | 275 |
| 265 epvm_.SetExtensionPref(kExt1, kPref1, false, CreateVal("val1")); | 276 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); |
| 266 epvm_.SetExtensionState(kExt1, false); | 277 epvm_.SetExtensionState(kExt1, false); |
| 267 epvm_.SetExtensionState(kExt1, true); | 278 epvm_.SetExtensionState(kExt1, true); |
| 268 EXPECT_EQ("val1", GetValue(kPref1, false)); | 279 EXPECT_EQ("val1", GetValue(kPref1, false)); |
| 269 } | 280 } |
| 270 | 281 |
| 271 struct OverrideIncognitoTestCase { | 282 struct OverrideIncognitoTestCase { |
| 272 OverrideIncognitoTestCase(int val_ext1_regular, | 283 OverrideIncognitoTestCase(int val_ext1_regular, |
| 273 int val_ext1_incognito, | 284 int val_ext1_incognito, |
| 274 int val_ext2_regular, | 285 int val_ext2_regular, |
| 275 int val_ext2_incognito, | 286 int val_ext2_incognito, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 289 int effective_value_regular_; // desired winner regular | 300 int effective_value_regular_; // desired winner regular |
| 290 int effective_value_incognito_; // desired winner incognito | 301 int effective_value_incognito_; // desired winner incognito |
| 291 }; | 302 }; |
| 292 | 303 |
| 293 class ExtensionPrefValueMapTestIncognitoTests | 304 class ExtensionPrefValueMapTestIncognitoTests |
| 294 : public ExtensionPrefValueMapTestBase< | 305 : public ExtensionPrefValueMapTestBase< |
| 295 testing::TestWithParam<OverrideIncognitoTestCase> > { | 306 testing::TestWithParam<OverrideIncognitoTestCase> > { |
| 296 }; | 307 }; |
| 297 | 308 |
| 298 TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) { | 309 TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) { |
| 310 using namespace extension_prefs_scope; |
| 299 OverrideIncognitoTestCase test = GetParam(); | 311 OverrideIncognitoTestCase test = GetParam(); |
| 300 const char* strings[] = { | 312 const char* strings[] = { |
| 301 "undefined", | 313 "undefined", |
| 302 "val1", | 314 "val1", |
| 303 "val2", | 315 "val2", |
| 304 "val3", | 316 "val3", |
| 305 "val4" | 317 "val4" |
| 306 }; | 318 }; |
| 307 | 319 |
| 308 epvm_.RegisterExtension(kExt1, CreateTime(10), true); | 320 epvm_.RegisterExtension(kExt1, CreateTime(10), true); |
| 309 epvm_.RegisterExtension(kExt2, CreateTime(20), true); | 321 epvm_.RegisterExtension(kExt2, CreateTime(20), true); |
| 310 if (test.val_ext1_regular_) { | 322 if (test.val_ext1_regular_) { |
| 311 epvm_.SetExtensionPref(kExt1, kPref1, false, | 323 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, |
| 312 CreateVal(strings[test.val_ext1_regular_])); | 324 CreateVal(strings[test.val_ext1_regular_])); |
| 313 } | 325 } |
| 314 if (test.val_ext1_incognito_) { | 326 if (test.val_ext1_incognito_) { |
| 315 epvm_.SetExtensionPref(kExt1, kPref1, true, | 327 epvm_.SetExtensionPref(kExt1, kPref1, kIncognitoPersistent, |
| 316 CreateVal(strings[test.val_ext1_incognito_])); | 328 CreateVal(strings[test.val_ext1_incognito_])); |
| 317 } | 329 } |
| 318 if (test.val_ext2_regular_) { | 330 if (test.val_ext2_regular_) { |
| 319 epvm_.SetExtensionPref(kExt2, kPref1, false, | 331 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, |
| 320 CreateVal(strings[test.val_ext2_regular_])); | 332 CreateVal(strings[test.val_ext2_regular_])); |
| 321 } | 333 } |
| 322 if (test.val_ext2_incognito_) { | 334 if (test.val_ext2_incognito_) { |
| 323 epvm_.SetExtensionPref(kExt2, kPref1, true, | 335 epvm_.SetExtensionPref(kExt2, kPref1, kIncognitoPersistent, |
| 324 CreateVal(strings[test.val_ext2_incognito_])); | 336 CreateVal(strings[test.val_ext2_incognito_])); |
| 325 } | 337 } |
| 326 std::string actual; | 338 std::string actual; |
| 327 EXPECT_EQ(strings[test.effective_value_regular_], GetValue(kPref1, false)); | 339 EXPECT_EQ(strings[test.effective_value_regular_], GetValue(kPref1, false)); |
| 328 EXPECT_EQ(strings[test.effective_value_incognito_], GetValue(kPref1, true)); | 340 EXPECT_EQ(strings[test.effective_value_incognito_], GetValue(kPref1, true)); |
| 329 epvm_.UnregisterExtension(kExt1); | 341 epvm_.UnregisterExtension(kExt1); |
| 330 epvm_.UnregisterExtension(kExt2); | 342 epvm_.UnregisterExtension(kExt2); |
| 331 } | 343 } |
| 332 | 344 |
| 333 INSTANTIATE_TEST_CASE_P( | 345 INSTANTIATE_TEST_CASE_P( |
| 334 ExtensionPrefValueMapTestIncognitoTestsInstance, | 346 ExtensionPrefValueMapTestIncognitoTestsInstance, |
| 335 ExtensionPrefValueMapTestIncognitoTests, | 347 ExtensionPrefValueMapTestIncognitoTests, |
| 336 testing::Values( | 348 testing::Values( |
| 337 // e.g. (1, 0, 0, 4, 1, 4), means: | 349 // e.g. (1, 0, 0, 4, 1, 4), means: |
| 338 // ext1 regular is set to "val1", ext2 incognito is set to "val4" | 350 // ext1 regular is set to "val1", ext2 incognito is set to "val4" |
| 339 // --> the winning regular value is "val1", the winning incognito | 351 // --> the winning regular value is "val1", the winning incognito |
| 340 // value is "val4". | 352 // value is "val4". |
| 341 OverrideIncognitoTestCase(1, 0, 0, 0, 1, 1), | 353 OverrideIncognitoTestCase(1, 0, 0, 0, 1, 1), |
| 342 OverrideIncognitoTestCase(1, 2, 0, 0, 1, 2), | 354 OverrideIncognitoTestCase(1, 2, 0, 0, 1, 2), |
| 343 OverrideIncognitoTestCase(1, 0, 3, 0, 3, 3), | 355 OverrideIncognitoTestCase(1, 0, 3, 0, 3, 3), |
| 344 OverrideIncognitoTestCase(1, 0, 0, 4, 1, 4), | 356 OverrideIncognitoTestCase(1, 0, 0, 4, 1, 4), |
| 345 // The last 3 in the following line is intentional! | 357 // The last 3 in the following line is intentional! |
| 346 OverrideIncognitoTestCase(1, 2, 3, 0, 3, 3), | 358 OverrideIncognitoTestCase(1, 2, 3, 0, 3, 3), |
| 347 OverrideIncognitoTestCase(1, 2, 0, 4, 1, 4), | 359 OverrideIncognitoTestCase(1, 2, 0, 4, 1, 4), |
| 348 OverrideIncognitoTestCase(1, 2, 3, 4, 3, 4))); | 360 OverrideIncognitoTestCase(1, 2, 3, 4, 3, 4))); |
| OLD | NEW |