OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/prefs/mock_pref_change_callback.h" | 9 #include "base/prefs/mock_pref_change_callback.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 class TestPreferenceAPI : public PreferenceAPIBase { | 42 class TestPreferenceAPI : public PreferenceAPIBase { |
43 public: | 43 public: |
44 explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs, | 44 explicit TestPreferenceAPI(TestExtensionPrefs* test_extension_prefs, |
45 ContentSettingsService* content_settings) | 45 ContentSettingsService* content_settings) |
46 : test_extension_prefs_(test_extension_prefs), | 46 : test_extension_prefs_(test_extension_prefs), |
47 content_settings_(content_settings) {} | 47 content_settings_(content_settings) {} |
48 ~TestPreferenceAPI() {} | 48 ~TestPreferenceAPI() {} |
49 | 49 |
50 private: | 50 private: |
51 // PreferenceAPIBase implementation. | 51 // PreferenceAPIBase implementation. |
52 virtual ExtensionPrefs* extension_prefs() override { | 52 ExtensionPrefs* extension_prefs() override { |
53 return test_extension_prefs_->prefs(); | 53 return test_extension_prefs_->prefs(); |
54 } | 54 } |
55 virtual ExtensionPrefValueMap* extension_pref_value_map() override { | 55 ExtensionPrefValueMap* extension_pref_value_map() override { |
56 return test_extension_prefs_->extension_pref_value_map(); | 56 return test_extension_prefs_->extension_pref_value_map(); |
57 } | 57 } |
58 virtual scoped_refptr<ContentSettingsStore> content_settings_store() | 58 scoped_refptr<ContentSettingsStore> content_settings_store() override { |
59 override { | |
60 return content_settings_->content_settings_store(); | 59 return content_settings_->content_settings_store(); |
61 } | 60 } |
62 | 61 |
63 TestExtensionPrefs* test_extension_prefs_; | 62 TestExtensionPrefs* test_extension_prefs_; |
64 ContentSettingsService* content_settings_; | 63 ContentSettingsService* content_settings_; |
65 | 64 |
66 DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); | 65 DISALLOW_COPY_AND_ASSIGN(TestPreferenceAPI); |
67 }; | 66 }; |
68 | 67 |
69 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { | 68 class ExtensionControlledPrefsTest : public PrefsPrepopulatedTestBase { |
70 public: | 69 public: |
71 ExtensionControlledPrefsTest(); | 70 ExtensionControlledPrefsTest(); |
72 virtual ~ExtensionControlledPrefsTest(); | 71 virtual ~ExtensionControlledPrefsTest(); |
73 | 72 |
74 virtual void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) | 73 void RegisterPreferences(user_prefs::PrefRegistrySyncable* registry) override; |
75 override; | |
76 void InstallExtensionControlledPref(Extension* extension, | 74 void InstallExtensionControlledPref(Extension* extension, |
77 const std::string& key, | 75 const std::string& key, |
78 base::Value* value); | 76 base::Value* value); |
79 void InstallExtensionControlledPrefIncognito(Extension* extension, | 77 void InstallExtensionControlledPrefIncognito(Extension* extension, |
80 const std::string& key, | 78 const std::string& key, |
81 base::Value* value); | 79 base::Value* value); |
82 void InstallExtensionControlledPrefIncognitoSessionOnly( | 80 void InstallExtensionControlledPrefIncognitoSessionOnly( |
83 Extension* extension, | 81 Extension* extension, |
84 const std::string& key, | 82 const std::string& key, |
85 base::Value* value); | 83 base::Value* value); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 if (extensions[i]->id() == extension_id) { | 185 if (extensions[i]->id() == extension_id) { |
188 installed_[i] = false; | 186 installed_[i] = false; |
189 break; | 187 break; |
190 } | 188 } |
191 } | 189 } |
192 prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false); | 190 prefs()->OnExtensionUninstalled(extension_id, Manifest::INTERNAL, false); |
193 } | 191 } |
194 | 192 |
195 class ControlledPrefsInstallOneExtension | 193 class ControlledPrefsInstallOneExtension |
196 : public ExtensionControlledPrefsTest { | 194 : public ExtensionControlledPrefsTest { |
197 virtual void Initialize() override { | 195 void Initialize() override { |
198 InstallExtensionControlledPref(extension1(), | 196 InstallExtensionControlledPref(extension1(), |
199 kPref1, | 197 kPref1, |
200 new base::StringValue("val1")); | 198 new base::StringValue("val1")); |
201 } | 199 } |
202 virtual void Verify() override { | 200 void Verify() override { |
203 std::string actual = prefs()->pref_service()->GetString(kPref1); | 201 std::string actual = prefs()->pref_service()->GetString(kPref1); |
204 EXPECT_EQ("val1", actual); | 202 EXPECT_EQ("val1", actual); |
205 } | 203 } |
206 }; | 204 }; |
207 TEST_F(ControlledPrefsInstallOneExtension, | 205 TEST_F(ControlledPrefsInstallOneExtension, |
208 ControlledPrefsInstallOneExtension) { } | 206 ControlledPrefsInstallOneExtension) { } |
209 | 207 |
210 // Check that we do not forget persistent incognito values after a reload. | 208 // Check that we do not forget persistent incognito values after a reload. |
211 class ControlledPrefsInstallIncognitoPersistent | 209 class ControlledPrefsInstallIncognitoPersistent |
212 : public ExtensionControlledPrefsTest { | 210 : public ExtensionControlledPrefsTest { |
213 public: | 211 public: |
214 virtual void Initialize() override { | 212 void Initialize() override { |
215 InstallExtensionControlledPref( | 213 InstallExtensionControlledPref( |
216 extension1(), kPref1, new base::StringValue("val1")); | 214 extension1(), kPref1, new base::StringValue("val1")); |
217 InstallExtensionControlledPrefIncognito( | 215 InstallExtensionControlledPrefIncognito( |
218 extension1(), kPref1, new base::StringValue("val2")); | 216 extension1(), kPref1, new base::StringValue("val2")); |
219 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 217 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
220 std::string actual = incog_prefs->GetString(kPref1); | 218 std::string actual = incog_prefs->GetString(kPref1); |
221 EXPECT_EQ("val2", actual); | 219 EXPECT_EQ("val2", actual); |
222 } | 220 } |
223 | 221 |
224 virtual void Verify() override { | 222 void Verify() override { |
225 // Main pref service shall see only non-incognito settings. | 223 // Main pref service shall see only non-incognito settings. |
226 std::string actual = prefs()->pref_service()->GetString(kPref1); | 224 std::string actual = prefs()->pref_service()->GetString(kPref1); |
227 EXPECT_EQ("val1", actual); | 225 EXPECT_EQ("val1", actual); |
228 // Incognito pref service shall see incognito values. | 226 // Incognito pref service shall see incognito values. |
229 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 227 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
230 actual = incog_prefs->GetString(kPref1); | 228 actual = incog_prefs->GetString(kPref1); |
231 EXPECT_EQ("val2", actual); | 229 EXPECT_EQ("val2", actual); |
232 } | 230 } |
233 }; | 231 }; |
234 TEST_F(ControlledPrefsInstallIncognitoPersistent, | 232 TEST_F(ControlledPrefsInstallIncognitoPersistent, |
235 ControlledPrefsInstallIncognitoPersistent) { } | 233 ControlledPrefsInstallIncognitoPersistent) { } |
236 | 234 |
237 // Check that we forget 'session only' incognito values after a reload. | 235 // Check that we forget 'session only' incognito values after a reload. |
238 class ControlledPrefsInstallIncognitoSessionOnly | 236 class ControlledPrefsInstallIncognitoSessionOnly |
239 : public ExtensionControlledPrefsTest { | 237 : public ExtensionControlledPrefsTest { |
240 public: | 238 public: |
241 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} | 239 ControlledPrefsInstallIncognitoSessionOnly() : iteration_(0) {} |
242 | 240 |
243 virtual void Initialize() override { | 241 void Initialize() override { |
244 InstallExtensionControlledPref( | 242 InstallExtensionControlledPref( |
245 extension1(), kPref1, new base::StringValue("val1")); | 243 extension1(), kPref1, new base::StringValue("val1")); |
246 InstallExtensionControlledPrefIncognitoSessionOnly( | 244 InstallExtensionControlledPrefIncognitoSessionOnly( |
247 extension1(), kPref1, new base::StringValue("val2")); | 245 extension1(), kPref1, new base::StringValue("val2")); |
248 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 246 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
249 std::string actual = incog_prefs->GetString(kPref1); | 247 std::string actual = incog_prefs->GetString(kPref1); |
250 EXPECT_EQ("val2", actual); | 248 EXPECT_EQ("val2", actual); |
251 } | 249 } |
252 virtual void Verify() override { | 250 void Verify() override { |
253 // Main pref service shall see only non-incognito settings. | 251 // Main pref service shall see only non-incognito settings. |
254 std::string actual = prefs()->pref_service()->GetString(kPref1); | 252 std::string actual = prefs()->pref_service()->GetString(kPref1); |
255 EXPECT_EQ("val1", actual); | 253 EXPECT_EQ("val1", actual); |
256 // Incognito pref service shall see session-only incognito values only | 254 // Incognito pref service shall see session-only incognito values only |
257 // during first run. Once the pref service was reloaded, all values shall be | 255 // during first run. Once the pref service was reloaded, all values shall be |
258 // discarded. | 256 // discarded. |
259 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); | 257 scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
260 actual = incog_prefs->GetString(kPref1); | 258 actual = incog_prefs->GetString(kPref1); |
261 if (iteration_ == 0) { | 259 if (iteration_ == 0) { |
262 EXPECT_EQ("val2", actual); | 260 EXPECT_EQ("val2", actual); |
263 } else { | 261 } else { |
264 EXPECT_EQ("val1", actual); | 262 EXPECT_EQ("val1", actual); |
265 } | 263 } |
266 ++iteration_; | 264 ++iteration_; |
267 } | 265 } |
268 int iteration_; | 266 int iteration_; |
269 }; | 267 }; |
270 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, | 268 TEST_F(ControlledPrefsInstallIncognitoSessionOnly, |
271 ControlledPrefsInstallIncognitoSessionOnly) { } | 269 ControlledPrefsInstallIncognitoSessionOnly) { } |
272 | 270 |
273 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { | 271 class ControlledPrefsUninstallExtension : public ExtensionControlledPrefsTest { |
274 virtual void Initialize() override { | 272 void Initialize() override { |
275 InstallExtensionControlledPref( | 273 InstallExtensionControlledPref( |
276 extension1(), kPref1, new base::StringValue("val1")); | 274 extension1(), kPref1, new base::StringValue("val1")); |
277 InstallExtensionControlledPref( | 275 InstallExtensionControlledPref( |
278 extension1(), kPref2, new base::StringValue("val2")); | 276 extension1(), kPref2, new base::StringValue("val2")); |
279 scoped_refptr<ContentSettingsStore> store = content_settings_store(); | 277 scoped_refptr<ContentSettingsStore> store = content_settings_store(); |
280 ContentSettingsPattern pattern = | 278 ContentSettingsPattern pattern = |
281 ContentSettingsPattern::FromString("http://[*.]example.com"); | 279 ContentSettingsPattern::FromString("http://[*.]example.com"); |
282 store->SetExtensionContentSetting(extension1()->id(), | 280 store->SetExtensionContentSetting(extension1()->id(), |
283 pattern, pattern, | 281 pattern, pattern, |
284 CONTENT_SETTINGS_TYPE_IMAGES, | 282 CONTENT_SETTINGS_TYPE_IMAGES, |
285 std::string(), | 283 std::string(), |
286 CONTENT_SETTING_BLOCK, | 284 CONTENT_SETTING_BLOCK, |
287 kExtensionPrefsScopeRegular); | 285 kExtensionPrefsScopeRegular); |
288 | 286 |
289 UninstallExtension(extension1()->id()); | 287 UninstallExtension(extension1()->id()); |
290 } | 288 } |
291 virtual void Verify() override { | 289 void Verify() override { |
292 EXPECT_FALSE(prefs()->HasPrefForExtension(extension1()->id())); | 290 EXPECT_FALSE(prefs()->HasPrefForExtension(extension1()->id())); |
293 | 291 |
294 std::string actual; | 292 std::string actual; |
295 actual = prefs()->pref_service()->GetString(kPref1); | 293 actual = prefs()->pref_service()->GetString(kPref1); |
296 EXPECT_EQ(kDefaultPref1, actual); | 294 EXPECT_EQ(kDefaultPref1, actual); |
297 actual = prefs()->pref_service()->GetString(kPref2); | 295 actual = prefs()->pref_service()->GetString(kPref2); |
298 EXPECT_EQ(kDefaultPref2, actual); | 296 EXPECT_EQ(kDefaultPref2, actual); |
299 } | 297 } |
300 }; | 298 }; |
301 TEST_F(ControlledPrefsUninstallExtension, | 299 TEST_F(ControlledPrefsUninstallExtension, |
302 ControlledPrefsUninstallExtension) { } | 300 ControlledPrefsUninstallExtension) { } |
303 | 301 |
304 // Tests triggering of notifications to registered observers. | 302 // Tests triggering of notifications to registered observers. |
305 class ControlledPrefsNotifyWhenNeeded : public ExtensionControlledPrefsTest { | 303 class ControlledPrefsNotifyWhenNeeded : public ExtensionControlledPrefsTest { |
306 virtual void Initialize() override { | 304 void Initialize() override { |
307 using testing::_; | 305 using testing::_; |
308 using testing::Mock; | 306 using testing::Mock; |
309 using testing::StrEq; | 307 using testing::StrEq; |
310 | 308 |
311 MockPrefChangeCallback observer(prefs()->pref_service()); | 309 MockPrefChangeCallback observer(prefs()->pref_service()); |
312 PrefChangeRegistrar registrar; | 310 PrefChangeRegistrar registrar; |
313 registrar.Init(prefs()->pref_service()); | 311 registrar.Init(prefs()->pref_service()); |
314 registrar.Add(kPref1, observer.GetCallback()); | 312 registrar.Add(kPref1, observer.GetCallback()); |
315 | 313 |
316 MockPrefChangeCallback incognito_observer(prefs()->pref_service()); | 314 MockPrefChangeCallback incognito_observer(prefs()->pref_service()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 // Uninstall. | 359 // Uninstall. |
362 EXPECT_CALL(observer, OnPreferenceChanged(_)); | 360 EXPECT_CALL(observer, OnPreferenceChanged(_)); |
363 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); | 361 EXPECT_CALL(incognito_observer, OnPreferenceChanged(_)); |
364 UninstallExtension(extension1()->id()); | 362 UninstallExtension(extension1()->id()); |
365 Mock::VerifyAndClearExpectations(&observer); | 363 Mock::VerifyAndClearExpectations(&observer); |
366 Mock::VerifyAndClearExpectations(&incognito_observer); | 364 Mock::VerifyAndClearExpectations(&incognito_observer); |
367 | 365 |
368 registrar.Remove(kPref1); | 366 registrar.Remove(kPref1); |
369 incognito_registrar.Remove(kPref1); | 367 incognito_registrar.Remove(kPref1); |
370 } | 368 } |
371 virtual void Verify() override { | 369 void Verify() override { |
372 std::string actual = prefs()->pref_service()->GetString(kPref1); | 370 std::string actual = prefs()->pref_service()->GetString(kPref1); |
373 EXPECT_EQ(kDefaultPref1, actual); | 371 EXPECT_EQ(kDefaultPref1, actual); |
374 } | 372 } |
375 }; | 373 }; |
376 TEST_F(ControlledPrefsNotifyWhenNeeded, | 374 TEST_F(ControlledPrefsNotifyWhenNeeded, |
377 ControlledPrefsNotifyWhenNeeded) { } | 375 ControlledPrefsNotifyWhenNeeded) { } |
378 | 376 |
379 // Tests disabling an extension. | 377 // Tests disabling an extension. |
380 class ControlledPrefsDisableExtension : public ExtensionControlledPrefsTest { | 378 class ControlledPrefsDisableExtension : public ExtensionControlledPrefsTest { |
381 virtual void Initialize() override { | 379 void Initialize() override { |
382 InstallExtensionControlledPref( | 380 InstallExtensionControlledPref( |
383 extension1(), kPref1, new base::StringValue("val1")); | 381 extension1(), kPref1, new base::StringValue("val1")); |
384 std::string actual = prefs()->pref_service()->GetString(kPref1); | 382 std::string actual = prefs()->pref_service()->GetString(kPref1); |
385 EXPECT_EQ("val1", actual); | 383 EXPECT_EQ("val1", actual); |
386 prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 384 prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); |
387 } | 385 } |
388 virtual void Verify() override { | 386 void Verify() override { |
389 std::string actual = prefs()->pref_service()->GetString(kPref1); | 387 std::string actual = prefs()->pref_service()->GetString(kPref1); |
390 EXPECT_EQ(kDefaultPref1, actual); | 388 EXPECT_EQ(kDefaultPref1, actual); |
391 } | 389 } |
392 }; | 390 }; |
393 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsDisableExtension) { } | 391 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsDisableExtension) { } |
394 | 392 |
395 // Tests disabling and reenabling an extension. | 393 // Tests disabling and reenabling an extension. |
396 class ControlledPrefsReenableExtension : public ExtensionControlledPrefsTest { | 394 class ControlledPrefsReenableExtension : public ExtensionControlledPrefsTest { |
397 virtual void Initialize() override { | 395 void Initialize() override { |
398 InstallExtensionControlledPref( | 396 InstallExtensionControlledPref( |
399 extension1(), kPref1, new base::StringValue("val1")); | 397 extension1(), kPref1, new base::StringValue("val1")); |
400 prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); | 398 prefs()->SetExtensionState(extension1()->id(), Extension::DISABLED); |
401 prefs()->SetExtensionState(extension1()->id(), Extension::ENABLED); | 399 prefs()->SetExtensionState(extension1()->id(), Extension::ENABLED); |
402 } | 400 } |
403 virtual void Verify() override { | 401 void Verify() override { |
404 std::string actual = prefs()->pref_service()->GetString(kPref1); | 402 std::string actual = prefs()->pref_service()->GetString(kPref1); |
405 EXPECT_EQ("val1", actual); | 403 EXPECT_EQ("val1", actual); |
406 } | 404 } |
407 }; | 405 }; |
408 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsReenableExtension) { } | 406 TEST_F(ControlledPrefsDisableExtension, ControlledPrefsReenableExtension) { } |
409 | 407 |
410 // Mock class to test whether objects are deleted correctly. | 408 // Mock class to test whether objects are deleted correctly. |
411 class MockStringValue : public base::StringValue { | 409 class MockStringValue : public base::StringValue { |
412 public: | 410 public: |
413 explicit MockStringValue(const std::string& in_value) | 411 explicit MockStringValue(const std::string& in_value) |
414 : base::StringValue(in_value) { | 412 : base::StringValue(in_value) { |
415 } | 413 } |
416 virtual ~MockStringValue() { | 414 virtual ~MockStringValue() { |
417 Die(); | 415 Die(); |
418 } | 416 } |
419 MOCK_METHOD0(Die, void()); | 417 MOCK_METHOD0(Die, void()); |
420 }; | 418 }; |
421 | 419 |
422 class ControlledPrefsSetExtensionControlledPref | 420 class ControlledPrefsSetExtensionControlledPref |
423 : public ExtensionControlledPrefsTest { | 421 : public ExtensionControlledPrefsTest { |
424 public: | 422 public: |
425 virtual void Initialize() override { | 423 void Initialize() override { |
426 MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); | 424 MockStringValue* v1 = new MockStringValue("https://www.chromium.org"); |
427 MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); | 425 MockStringValue* v2 = new MockStringValue("https://www.chromium.org"); |
428 MockStringValue* v1i = new MockStringValue("https://www.chromium.org"); | 426 MockStringValue* v1i = new MockStringValue("https://www.chromium.org"); |
429 MockStringValue* v2i = new MockStringValue("https://www.chromium.org"); | 427 MockStringValue* v2i = new MockStringValue("https://www.chromium.org"); |
430 // Ownership is taken, value shall not be deleted. | 428 // Ownership is taken, value shall not be deleted. |
431 EXPECT_CALL(*v1, Die()).Times(0); | 429 EXPECT_CALL(*v1, Die()).Times(0); |
432 EXPECT_CALL(*v1i, Die()).Times(0); | 430 EXPECT_CALL(*v1i, Die()).Times(0); |
433 InstallExtensionControlledPref(extension1(), kPref1, v1); | 431 InstallExtensionControlledPref(extension1(), kPref1, v1); |
434 InstallExtensionControlledPrefIncognito(extension1(), kPref1, v1i); | 432 InstallExtensionControlledPrefIncognito(extension1(), kPref1, v1i); |
435 testing::Mock::VerifyAndClearExpectations(v1); | 433 testing::Mock::VerifyAndClearExpectations(v1); |
436 testing::Mock::VerifyAndClearExpectations(v1i); | 434 testing::Mock::VerifyAndClearExpectations(v1i); |
437 // Make sure there is no memory leak and both values are deleted. | 435 // Make sure there is no memory leak and both values are deleted. |
438 EXPECT_CALL(*v1, Die()).Times(1); | 436 EXPECT_CALL(*v1, Die()).Times(1); |
439 EXPECT_CALL(*v1i, Die()).Times(1); | 437 EXPECT_CALL(*v1i, Die()).Times(1); |
440 EXPECT_CALL(*v2, Die()).Times(1); | 438 EXPECT_CALL(*v2, Die()).Times(1); |
441 EXPECT_CALL(*v2i, Die()).Times(1); | 439 EXPECT_CALL(*v2i, Die()).Times(1); |
442 InstallExtensionControlledPref(extension1(), kPref1, v2); | 440 InstallExtensionControlledPref(extension1(), kPref1, v2); |
443 InstallExtensionControlledPrefIncognito(extension1(), kPref1, v2i); | 441 InstallExtensionControlledPrefIncognito(extension1(), kPref1, v2i); |
444 prefs_.RecreateExtensionPrefs(); | 442 prefs_.RecreateExtensionPrefs(); |
445 testing::Mock::VerifyAndClearExpectations(v1); | 443 testing::Mock::VerifyAndClearExpectations(v1); |
446 testing::Mock::VerifyAndClearExpectations(v1i); | 444 testing::Mock::VerifyAndClearExpectations(v1i); |
447 testing::Mock::VerifyAndClearExpectations(v2); | 445 testing::Mock::VerifyAndClearExpectations(v2); |
448 testing::Mock::VerifyAndClearExpectations(v2i); | 446 testing::Mock::VerifyAndClearExpectations(v2i); |
449 } | 447 } |
450 | 448 |
451 virtual void Verify() override { | 449 void Verify() override {} |
452 } | |
453 }; | 450 }; |
454 TEST_F(ControlledPrefsSetExtensionControlledPref, | 451 TEST_F(ControlledPrefsSetExtensionControlledPref, |
455 ControlledPrefsSetExtensionControlledPref) { } | 452 ControlledPrefsSetExtensionControlledPref) { } |
456 | 453 |
457 // Tests that the switches::kDisableExtensions command-line flag prevents | 454 // Tests that the switches::kDisableExtensions command-line flag prevents |
458 // extension controlled preferences from being enacted. | 455 // extension controlled preferences from being enacted. |
459 class ControlledPrefsDisableExtensions : public ExtensionControlledPrefsTest { | 456 class ControlledPrefsDisableExtensions : public ExtensionControlledPrefsTest { |
460 public: | 457 public: |
461 ControlledPrefsDisableExtensions() | 458 ControlledPrefsDisableExtensions() |
462 : iteration_(0) {} | 459 : iteration_(0) {} |
463 virtual ~ControlledPrefsDisableExtensions() {} | 460 virtual ~ControlledPrefsDisableExtensions() {} |
464 virtual void Initialize() override { | 461 void Initialize() override { |
465 InstallExtensionControlledPref( | 462 InstallExtensionControlledPref( |
466 extension1(), kPref1, new base::StringValue("val1")); | 463 extension1(), kPref1, new base::StringValue("val1")); |
467 // This becomes only active in the second verification phase. | 464 // This becomes only active in the second verification phase. |
468 prefs_.set_extensions_disabled(true); | 465 prefs_.set_extensions_disabled(true); |
469 } | 466 } |
470 virtual void Verify() override { | 467 void Verify() override { |
471 std::string actual = prefs()->pref_service()->GetString(kPref1); | 468 std::string actual = prefs()->pref_service()->GetString(kPref1); |
472 if (iteration_ == 0) { | 469 if (iteration_ == 0) { |
473 EXPECT_EQ("val1", actual); | 470 EXPECT_EQ("val1", actual); |
474 ++iteration_; | 471 ++iteration_; |
475 } else { | 472 } else { |
476 EXPECT_EQ(kDefaultPref1, actual); | 473 EXPECT_EQ(kDefaultPref1, actual); |
477 } | 474 } |
478 } | 475 } |
479 | 476 |
480 private: | 477 private: |
481 int iteration_; | 478 int iteration_; |
482 }; | 479 }; |
483 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } | 480 TEST_F(ControlledPrefsDisableExtensions, ControlledPrefsDisableExtensions) { } |
484 | 481 |
485 } // namespace extensions | 482 } // namespace extensions |
OLD | NEW |