Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: chrome/browser/extensions/extension_pref_value_map_unittest.cc

Issue 7065033: Support persistent incognito preferences (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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)));
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_pref_value_map.cc ('k') | chrome/browser/extensions/extension_preference_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698