| 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 |