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

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

Issue 184043024: Limit scope of settings API configuration and proxy permission (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Bernhard's comments Created 6 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/prefs/pref_store_observer_mock.h" 8 #include "base/prefs/pref_store_observer_mock.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "extensions/browser/extension_pref_value_map.h" 10 #include "extensions/browser/extension_pref_value_map.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 // Returns an empty string if the key is not set. 45 // Returns an empty string if the key is not set.
46 std::string GetValue(const char * key, bool incognito) const { 46 std::string GetValue(const char * key, bool incognito) const {
47 const base::Value *value = 47 const base::Value *value =
48 epvm_.GetEffectivePrefValue(key, incognito, NULL); 48 epvm_.GetEffectivePrefValue(key, incognito, NULL);
49 std::string string_value; 49 std::string string_value;
50 if (value) 50 if (value)
51 value->GetAsString(&string_value); 51 value->GetAsString(&string_value);
52 return string_value; 52 return string_value;
53 } 53 }
54 54
55 // Registers the extension as enabled but without incognito permission.
56 void RegisterExtension(const std::string& ext_id,
57 const base::Time& install_time) {
58 epvm_.RegisterExtension(
59 ext_id, install_time, true /*enabled*/, false /*incognito*/);
60 }
61
55 protected: 62 protected:
56 ExtensionPrefValueMap epvm_; 63 ExtensionPrefValueMap epvm_;
57 }; 64 };
58 65
59 class ExtensionPrefValueMapTest 66 class ExtensionPrefValueMapTest
60 : public ExtensionPrefValueMapTestBase<testing::Test> { 67 : public ExtensionPrefValueMapTestBase<testing::Test> {
61 }; 68 };
62 69
63 // A gmock-ified implementation of PrefStore::Observer. 70 // A gmock-ified implementation of PrefStore::Observer.
64 class ExtensionPrefValueMapObserverMock 71 class ExtensionPrefValueMapObserverMock
65 : public ExtensionPrefValueMap::Observer { 72 : public ExtensionPrefValueMap::Observer {
66 public: 73 public:
67 ExtensionPrefValueMapObserverMock() {} 74 ExtensionPrefValueMapObserverMock() {}
68 virtual ~ExtensionPrefValueMapObserverMock() {} 75 virtual ~ExtensionPrefValueMapObserverMock() {}
69 76
70 MOCK_METHOD1(OnPrefValueChanged, void(const std::string&)); 77 MOCK_METHOD1(OnPrefValueChanged, void(const std::string&));
71 MOCK_METHOD0(OnInitializationCompleted, void()); 78 MOCK_METHOD0(OnInitializationCompleted, void());
72 MOCK_METHOD0(OnExtensionPrefValueMapDestruction, void()); 79 MOCK_METHOD0(OnExtensionPrefValueMapDestruction, void());
73 80
74 private: 81 private:
75 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMapObserverMock); 82 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefValueMapObserverMock);
76 }; 83 };
77 84
78 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) { 85 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValue) {
79 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 86 RegisterExtension(kExt1, CreateTime(10));
80 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 87 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
81 EXPECT_EQ("val1", GetValue(kPref1, false)); 88 EXPECT_EQ("val1", GetValue(kPref1, false));
82 }; 89 };
83 90
84 TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) { 91 TEST_F(ExtensionPrefValueMapTest, GetNotSetPrefValue) {
85 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 92 RegisterExtension(kExt1, CreateTime(10));
86 EXPECT_EQ("", GetValue(kPref1, false)); 93 EXPECT_EQ(std::string(), GetValue(kPref1, false));
87 }; 94 };
88 95
89 // Make sure the last-installed extension wins for each preference. 96 // Make sure the last-installed extension wins for each preference.
90 TEST_F(ExtensionPrefValueMapTest, Override) { 97 TEST_F(ExtensionPrefValueMapTest, Override) {
91 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 98 RegisterExtension(kExt1, CreateTime(10));
92 epvm_.RegisterExtension(kExt2, CreateTime(20), true); 99 RegisterExtension(kExt2, CreateTime(20));
93 epvm_.RegisterExtension(kExt3, CreateTime(30), true); 100 RegisterExtension(kExt3, CreateTime(30));
94 101
95 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 102 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
96 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); 103 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
97 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); 104 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
98 105
99 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); 106 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
100 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5")); 107 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5"));
101 108
102 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val6")); 109 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val6"));
103 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val7")); 110 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val7"));
104 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val8")); 111 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val8"));
105 112
106 EXPECT_EQ("val3", GetValue(kPref1, false)); 113 EXPECT_EQ("val3", GetValue(kPref1, false));
107 EXPECT_EQ("val5", GetValue(kPref2, false)); 114 EXPECT_EQ("val5", GetValue(kPref2, false));
108 EXPECT_EQ("val8", GetValue(kPref3, false)); 115 EXPECT_EQ("val8", GetValue(kPref3, false));
109 } 116 }
110 117
111 TEST_F(ExtensionPrefValueMapTest, OverrideChecks) { 118 TEST_F(ExtensionPrefValueMapTest, OverrideChecks) {
112 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 119 RegisterExtension(kExt1, CreateTime(10));
113 epvm_.RegisterExtension(kExt2, CreateTime(20), true); 120 RegisterExtension(kExt2, CreateTime(20));
114 epvm_.RegisterExtension(kExt3, CreateTime(30), true); 121 RegisterExtension(kExt3, CreateTime(30));
115 122
116 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL)); 123 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL));
117 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL)); 124 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL));
118 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL)); 125 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL));
119 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); 126 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt1, kPref1, false));
120 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); 127 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false));
121 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); 128 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false));
122 129
123 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val1")); 130 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val1"));
124 131
125 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL)); 132 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt1, kPref1, NULL));
126 EXPECT_TRUE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL)); 133 EXPECT_TRUE(epvm_.DoesExtensionControlPref(kExt2, kPref1, NULL));
127 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL)); 134 EXPECT_FALSE(epvm_.DoesExtensionControlPref(kExt3, kPref1, NULL));
128 EXPECT_FALSE(epvm_.CanExtensionControlPref(kExt1, kPref1, false)); 135 EXPECT_FALSE(epvm_.CanExtensionControlPref(kExt1, kPref1, false));
129 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false)); 136 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt2, kPref1, false));
130 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false)); 137 EXPECT_TRUE(epvm_.CanExtensionControlPref(kExt3, kPref1, false));
131 } 138 }
132 139
133 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) { 140 TEST_F(ExtensionPrefValueMapTest, SetAndGetPrefValueIncognito) {
134 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 141 RegisterExtension(kExt1, CreateTime(10));
135 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 142 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
143 // Check that the value is not propagated until the extension gets incognito
144 // permission.
145 EXPECT_EQ(std::string(), GetValue(kPref1, true));
146 epvm_.SetExtensionIncognitoState(kExt1, true);
136 EXPECT_EQ("val1", GetValue(kPref1, true)); 147 EXPECT_EQ("val1", GetValue(kPref1, true));
148 epvm_.SetExtensionIncognitoState(kExt1, false);
149 EXPECT_EQ(std::string(), GetValue(kPref1, true));
137 } 150 }
138 151
139 TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) { 152 TEST_F(ExtensionPrefValueMapTest, UninstallOnlyExtension) {
140 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 153 RegisterExtension(kExt1, CreateTime(10));
141 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 154 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
142 epvm_.UnregisterExtension(kExt1); 155 epvm_.UnregisterExtension(kExt1);
143 156
144 EXPECT_EQ("", GetValue(kPref1, false)); 157 EXPECT_EQ(std::string(), GetValue(kPref1, false));
145 } 158 }
146 159
147 // Tests uninstalling an extension that wasn't winning for any preferences. 160 // Tests uninstalling an extension that wasn't winning for any preferences.
148 TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) { 161 TEST_F(ExtensionPrefValueMapTest, UninstallIrrelevantExtension) {
149 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 162 RegisterExtension(kExt1, CreateTime(10));
150 epvm_.RegisterExtension(kExt2, CreateTime(10), true); 163 RegisterExtension(kExt2, CreateTime(10));
151 164
152 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 165 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
153 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); 166 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
154 167
155 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val3")); 168 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val3"));
156 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val4")); 169 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val4"));
157 170
158 epvm_.UnregisterExtension(kExt1); 171 epvm_.UnregisterExtension(kExt1);
159 172
160 EXPECT_EQ("val2", GetValue(kPref1, false)); 173 EXPECT_EQ("val2", GetValue(kPref1, false));
161 EXPECT_EQ("val4", GetValue(kPref2, false)); 174 EXPECT_EQ("val4", GetValue(kPref2, false));
162 } 175 }
163 176
164 // Tests uninstalling an extension that was winning for all preferences. 177 // Tests uninstalling an extension that was winning for all preferences.
165 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) { 178 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromTop) {
166 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 179 RegisterExtension(kExt1, CreateTime(10));
167 epvm_.RegisterExtension(kExt2, CreateTime(20), true); 180 RegisterExtension(kExt2, CreateTime(20));
168 epvm_.RegisterExtension(kExt3, CreateTime(30), true); 181 RegisterExtension(kExt3, CreateTime(30));
169 182
170 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 183 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
171 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); 184 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
172 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); 185 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
173 186
174 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); 187 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
175 epvm_.SetExtensionPref(kExt3, kPref2, kRegular, CreateVal("val5")); 188 epvm_.SetExtensionPref(kExt3, kPref2, kRegular, CreateVal("val5"));
176 189
177 epvm_.UnregisterExtension(kExt3); 190 epvm_.UnregisterExtension(kExt3);
178 191
179 EXPECT_EQ("val2", GetValue(kPref1, false)); 192 EXPECT_EQ("val2", GetValue(kPref1, false));
180 EXPECT_EQ("val4", GetValue(kPref2, false)); 193 EXPECT_EQ("val4", GetValue(kPref2, false));
181 } 194 }
182 195
183 // Tests uninstalling an extension that was winning for only some preferences. 196 // Tests uninstalling an extension that was winning for only some preferences.
184 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) { 197 TEST_F(ExtensionPrefValueMapTest, UninstallExtensionFromMiddle) {
185 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 198 RegisterExtension(kExt1, CreateTime(10));
186 epvm_.RegisterExtension(kExt2, CreateTime(20), true); 199 RegisterExtension(kExt2, CreateTime(20));
187 epvm_.RegisterExtension(kExt3, CreateTime(30), true); 200 RegisterExtension(kExt3, CreateTime(30));
188 201
189 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 202 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
190 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2")); 203 epvm_.SetExtensionPref(kExt2, kPref1, kRegular, CreateVal("val2"));
191 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3")); 204 epvm_.SetExtensionPref(kExt3, kPref1, kRegular, CreateVal("val3"));
192 205
193 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4")); 206 epvm_.SetExtensionPref(kExt1, kPref2, kRegular, CreateVal("val4"));
194 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5")); 207 epvm_.SetExtensionPref(kExt2, kPref2, kRegular, CreateVal("val5"));
195 208
196 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val6")); 209 epvm_.SetExtensionPref(kExt1, kPref3, kRegular, CreateVal("val6"));
197 210
198 epvm_.SetExtensionPref(kExt2, kPref4, kRegular, CreateVal("val7")); 211 epvm_.SetExtensionPref(kExt2, kPref4, kRegular, CreateVal("val7"));
199 212
200 epvm_.UnregisterExtension(kExt2); 213 epvm_.UnregisterExtension(kExt2);
201 214
202 EXPECT_EQ("val3", GetValue(kPref1, false)); 215 EXPECT_EQ("val3", GetValue(kPref1, false));
203 EXPECT_EQ("val4", GetValue(kPref2, false)); 216 EXPECT_EQ("val4", GetValue(kPref2, false));
204 EXPECT_EQ("val6", GetValue(kPref3, false)); 217 EXPECT_EQ("val6", GetValue(kPref3, false));
205 EXPECT_EQ("", GetValue(kPref4, false)); 218 EXPECT_EQ(std::string(), GetValue(kPref4, false));
206 } 219 }
207 220
208 // Tests triggering of notifications to registered observers. 221 // Tests triggering of notifications to registered observers.
209 TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) { 222 TEST_F(ExtensionPrefValueMapTest, NotifyWhenNeeded) {
210 using testing::Mock; 223 using testing::Mock;
211 using testing::StrEq; 224 using testing::StrEq;
212 225
213 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 226 RegisterExtension(kExt1, CreateTime(10));
214 227
215 ExtensionPrefValueMapObserverMock observer; 228 ExtensionPrefValueMapObserverMock observer;
216 epvm_.AddObserver(&observer); 229 epvm_.AddObserver(&observer);
217 230
218 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); 231 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
219 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 232 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
220 Mock::VerifyAndClearExpectations(&observer); 233 Mock::VerifyAndClearExpectations(&observer);
221 234
222 // Write the same value again. 235 // Write the same value again.
223 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); 236 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0);
(...skipping 22 matching lines...) Expand all
246 259
247 // Uninstall 260 // Uninstall
248 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))); 261 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1)));
249 epvm_.UnregisterExtension(kExt1); 262 epvm_.UnregisterExtension(kExt1);
250 Mock::VerifyAndClearExpectations(&observer); 263 Mock::VerifyAndClearExpectations(&observer);
251 264
252 epvm_.RemoveObserver(&observer); 265 epvm_.RemoveObserver(&observer);
253 266
254 // Write new value --> no notification after removing observer. 267 // Write new value --> no notification after removing observer.
255 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0); 268 EXPECT_CALL(observer, OnPrefValueChanged(std::string(kPref1))).Times(0);
256 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 269 RegisterExtension(kExt1, CreateTime(10));
257 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val4")); 270 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val4"));
258 Mock::VerifyAndClearExpectations(&observer); 271 Mock::VerifyAndClearExpectations(&observer);
259 } 272 }
260 273
261 // Tests disabling an extension. 274 // Tests disabling an extension.
262 TEST_F(ExtensionPrefValueMapTest, DisableExt) { 275 TEST_F(ExtensionPrefValueMapTest, DisableExt) {
263 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 276 RegisterExtension(kExt1, CreateTime(10));
264 277
265 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 278 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
266 epvm_.SetExtensionState(kExt1, false); 279 epvm_.SetExtensionState(kExt1, false);
267 EXPECT_EQ("", GetValue(kPref1, false)); 280 EXPECT_EQ(std::string(), GetValue(kPref1, false));
268 } 281 }
269 282
270 // Tests disabling and reenabling an extension. 283 // Tests disabling and reenabling an extension.
271 TEST_F(ExtensionPrefValueMapTest, ReenableExt) { 284 TEST_F(ExtensionPrefValueMapTest, ReenableExt) {
272 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 285 RegisterExtension(kExt1, CreateTime(10));
273 286
274 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1")); 287 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, CreateVal("val1"));
275 epvm_.SetExtensionState(kExt1, false); 288 epvm_.SetExtensionState(kExt1, false);
276 epvm_.SetExtensionState(kExt1, true); 289 epvm_.SetExtensionState(kExt1, true);
277 EXPECT_EQ("val1", GetValue(kPref1, false)); 290 EXPECT_EQ("val1", GetValue(kPref1, false));
278 } 291 }
279 292
280 struct OverrideIncognitoTestCase { 293 struct OverrideIncognitoTestCase {
281 OverrideIncognitoTestCase(int val_ext1_regular, 294 OverrideIncognitoTestCase(bool enable_ext1_in_incognito,
295 bool enable_ext2_in_incognito,
296 int val_ext1_regular,
282 int val_ext1_regular_only, 297 int val_ext1_regular_only,
283 int val_ext1_incognito_pers, 298 int val_ext1_incognito_pers,
284 int val_ext1_incognito_sess, 299 int val_ext1_incognito_sess,
285 int val_ext2_regular, 300 int val_ext2_regular,
286 int val_ext2_regular_only, 301 int val_ext2_regular_only,
287 int val_ext2_incognito_pers, 302 int val_ext2_incognito_pers,
288 int val_ext2_incognito_sess, 303 int val_ext2_incognito_sess,
289 int effective_value_regular, 304 int effective_value_regular,
290 int effective_value_incognito) 305 int effective_value_incognito)
291 : val_ext1_regular_(val_ext1_regular), 306 : enable_ext1_in_incognito_(enable_ext1_in_incognito),
307 enable_ext2_in_incognito_(enable_ext2_in_incognito),
308 val_ext1_regular_(val_ext1_regular),
292 val_ext1_regular_only_(val_ext1_regular_only), 309 val_ext1_regular_only_(val_ext1_regular_only),
293 val_ext1_incognito_pers_(val_ext1_incognito_pers), 310 val_ext1_incognito_pers_(val_ext1_incognito_pers),
294 val_ext1_incognito_sess_(val_ext1_incognito_sess), 311 val_ext1_incognito_sess_(val_ext1_incognito_sess),
295 val_ext2_regular_(val_ext2_regular), 312 val_ext2_regular_(val_ext2_regular),
296 val_ext2_regular_only_(val_ext2_regular_only), 313 val_ext2_regular_only_(val_ext2_regular_only),
297 val_ext2_incognito_pers_(val_ext2_incognito_pers), 314 val_ext2_incognito_pers_(val_ext2_incognito_pers),
298 val_ext2_incognito_sess_(val_ext2_incognito_sess), 315 val_ext2_incognito_sess_(val_ext2_incognito_sess),
299 effective_value_regular_(effective_value_regular), 316 effective_value_regular_(effective_value_regular),
300 effective_value_incognito_(effective_value_incognito) {} 317 effective_value_incognito_(effective_value_incognito) {}
301 318
319 bool enable_ext1_in_incognito_;
320 bool enable_ext2_in_incognito_;
321
302 // pers. = persistent 322 // pers. = persistent
303 // sess. = session only 323 // sess. = session only
304 int val_ext1_regular_; // pref value of extension 1 324 int val_ext1_regular_; // pref value of extension 1
305 int val_ext1_regular_only_; // pref value of extension 1 regular-only. 325 int val_ext1_regular_only_; // pref value of extension 1 regular-only.
306 int val_ext1_incognito_pers_; // pref value of extension 1 incognito pers. 326 int val_ext1_incognito_pers_; // pref value of extension 1 incognito pers.
307 int val_ext1_incognito_sess_; // pref value of extension 1 incognito sess. 327 int val_ext1_incognito_sess_; // pref value of extension 1 incognito sess.
308 int val_ext2_regular_; // pref value of extension 2 328 int val_ext2_regular_; // pref value of extension 2
309 int val_ext2_regular_only_; // pref value of extension 2 regular-only. 329 int val_ext2_regular_only_; // pref value of extension 2 regular-only.
310 int val_ext2_incognito_pers_; // pref value of extension 2 incognito pers. 330 int val_ext2_incognito_pers_; // pref value of extension 2 incognito pers.
311 int val_ext2_incognito_sess_; // pref value of extension 2 incognito sess. 331 int val_ext2_incognito_sess_; // pref value of extension 2 incognito sess.
312 int effective_value_regular_; // desired winner regular 332 int effective_value_regular_; // desired winner regular
313 int effective_value_incognito_; // desired winner incognito 333 int effective_value_incognito_; // desired winner incognito
314 }; 334 };
315 335
316 class ExtensionPrefValueMapTestIncognitoTests 336 class ExtensionPrefValueMapTestIncognitoTests
317 : public ExtensionPrefValueMapTestBase< 337 : public ExtensionPrefValueMapTestBase<
318 testing::TestWithParam<OverrideIncognitoTestCase> > { 338 testing::TestWithParam<OverrideIncognitoTestCase> > {
319 }; 339 };
320 340
321 TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) { 341 TEST_P(ExtensionPrefValueMapTestIncognitoTests, OverrideIncognito) {
322 OverrideIncognitoTestCase test = GetParam(); 342 OverrideIncognitoTestCase test = GetParam();
323 const char* strings[] = { 343 const char* strings[] = {
324 "undefined", 344 "", // undefined
325 "val1", 345 "val1",
326 "val2", 346 "val2",
327 "val3", 347 "val3",
328 "val4", 348 "val4",
329 "val5", 349 "val5",
330 "val6", 350 "val6",
331 "val7", 351 "val7",
332 "val8", 352 "val8",
333 }; 353 };
334 354
335 epvm_.RegisterExtension(kExt1, CreateTime(10), true); 355 const bool kEnabled = true;
336 epvm_.RegisterExtension(kExt2, CreateTime(20), true); 356 epvm_.RegisterExtension(
357 kExt1, CreateTime(10), kEnabled, test.enable_ext1_in_incognito_);
358 epvm_.RegisterExtension(
359 kExt2, CreateTime(20), kEnabled, test.enable_ext2_in_incognito_);
337 if (test.val_ext1_regular_) { 360 if (test.val_ext1_regular_) {
338 epvm_.SetExtensionPref(kExt1, kPref1, kRegular, 361 epvm_.SetExtensionPref(kExt1, kPref1, kRegular,
339 CreateVal(strings[test.val_ext1_regular_])); 362 CreateVal(strings[test.val_ext1_regular_]));
340 } 363 }
341 if (test.val_ext1_regular_only_) { 364 if (test.val_ext1_regular_only_) {
342 epvm_.SetExtensionPref(kExt1, kPref1, kRegularOnly, 365 epvm_.SetExtensionPref(kExt1, kPref1, kRegularOnly,
343 CreateVal(strings[test.val_ext1_regular_only_])); 366 CreateVal(strings[test.val_ext1_regular_only_]));
344 } 367 }
345 if (test.val_ext1_incognito_pers_) { 368 if (test.val_ext1_incognito_pers_) {
346 epvm_.SetExtensionPref(kExt1, kPref1, kIncognitoPersistent, 369 epvm_.SetExtensionPref(kExt1, kPref1, kIncognitoPersistent,
(...skipping 23 matching lines...) Expand all
370 EXPECT_EQ(strings[test.effective_value_regular_], GetValue(kPref1, false)); 393 EXPECT_EQ(strings[test.effective_value_regular_], GetValue(kPref1, false));
371 EXPECT_EQ(strings[test.effective_value_incognito_], GetValue(kPref1, true)); 394 EXPECT_EQ(strings[test.effective_value_incognito_], GetValue(kPref1, true));
372 epvm_.UnregisterExtension(kExt1); 395 epvm_.UnregisterExtension(kExt1);
373 epvm_.UnregisterExtension(kExt2); 396 epvm_.UnregisterExtension(kExt2);
374 } 397 }
375 398
376 INSTANTIATE_TEST_CASE_P( 399 INSTANTIATE_TEST_CASE_P(
377 ExtensionPrefValueMapTestIncognitoTestsInstance, 400 ExtensionPrefValueMapTestIncognitoTestsInstance,
378 ExtensionPrefValueMapTestIncognitoTests, 401 ExtensionPrefValueMapTestIncognitoTests,
379 testing::Values( 402 testing::Values(
380 // e.g. (1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means: 403 // e.g. (true, 1, 0, 0, 0, 0, 0, 7, 0, 1, 7), means:
381 // ext1 regular is set to "val1", ext2 incognito persistent is set to 404 // ext1 regular is set to "val1", ext2 incognito persistent is set to
382 // "val7" 405 // "val7"
383 // --> the winning regular value is "val1", the winning incognito 406 // --> the winning regular value is "val1", the winning incognito
384 // value is "val7". 407 // value is "val7".
385 OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 0, 0, 1, 1), 408 OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1),
386 OverrideIncognitoTestCase(1, 2, 0, 0, 0, 0, 0, 0, 2, 1), 409 OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1),
387 OverrideIncognitoTestCase(1, 0, 3, 0, 0, 0, 0, 0, 1, 3), 410 OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 0, 0, 0, 0, 1, 3),
388 OverrideIncognitoTestCase(1, 0, 0, 4, 0, 0, 0, 0, 1, 4), 411 OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 0, 0, 0, 0, 1, 4),
389 OverrideIncognitoTestCase(1, 0, 3, 4, 0, 0, 0, 0, 1, 4), 412 OverrideIncognitoTestCase(true, true, 1, 0, 3, 4, 0, 0, 0, 0, 1, 4),
390 OverrideIncognitoTestCase(1, 2, 3, 0, 0, 0, 0, 0, 2, 3), 413 OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 0, 0, 0, 2, 3),
391 OverrideIncognitoTestCase(1, 0, 0, 0, 5, 0, 0, 0, 5, 5), 414 OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 5, 0, 0, 0, 5, 5),
392 OverrideIncognitoTestCase(1, 2, 3, 0, 5, 0, 0, 0, 5, 5), 415 OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 5, 0, 0, 0, 5, 5),
393 OverrideIncognitoTestCase(1, 0, 0, 0, 0, 6, 0, 0, 6, 1), 416 OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 6, 0, 0, 6, 1),
394 OverrideIncognitoTestCase(1, 0, 3, 0, 5, 6, 0, 0, 6, 5), 417 OverrideIncognitoTestCase(true, true, 1, 0, 3, 0, 5, 6, 0, 0, 6, 5),
395 OverrideIncognitoTestCase(1, 0, 0, 4, 5, 6, 0, 0, 6, 5), 418 OverrideIncognitoTestCase(true, true, 1, 0, 0, 4, 5, 6, 0, 0, 6, 5),
396 OverrideIncognitoTestCase(1, 0, 0, 0, 0, 0, 7, 0, 1, 7), 419 OverrideIncognitoTestCase(true, true, 1, 0, 0, 0, 0, 0, 7, 0, 1, 7),
397 OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 0, 5, 7), 420 OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 0, 5, 7),
398 OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 0, 8, 5, 8), 421 OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 0, 8, 5, 8),
399 OverrideIncognitoTestCase(1, 2, 0, 0, 5, 0, 7, 8, 5, 8), 422 OverrideIncognitoTestCase(true, true, 1, 2, 0, 0, 5, 0, 7, 8, 5, 8),
400 OverrideIncognitoTestCase(1, 2, 3, 0, 0, 6, 7, 0, 6, 7))); 423 OverrideIncognitoTestCase(true, true, 1, 2, 3, 0, 0, 6, 7, 0, 6, 7),
424 // Same tests as above but w/o incognito permission.
425 OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0),
426 OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0),
427 OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 0, 0, 0, 0, 1, 0),
428 OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 0, 0, 0, 0, 1, 0),
429 OverrideIncognitoTestCase(false, false, 1, 0, 3, 4, 0, 0, 0, 0, 1, 0),
430 OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 0, 0, 0, 2, 0),
431 OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 5, 0, 0, 0, 5, 0),
432 OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 5, 0, 0, 0, 5, 0),
433 OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 6, 0, 0, 6, 0),
434 OverrideIncognitoTestCase(false, false, 1, 0, 3, 0, 5, 6, 0, 0, 6, 0),
435 OverrideIncognitoTestCase(false, false, 1, 0, 0, 4, 5, 6, 0, 0, 6, 0),
436 OverrideIncognitoTestCase(false, false, 1, 0, 0, 0, 0, 0, 7, 0, 1, 0),
437 OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 0, 5, 0),
438 OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 0, 8, 5, 0),
439 OverrideIncognitoTestCase(false, false, 1, 2, 0, 0, 5, 0, 7, 8, 5, 0),
440 OverrideIncognitoTestCase(false, false, 1, 2, 3, 0, 0, 6, 7, 0, 6, 0)
441 ));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698