Index: chrome/browser/extensions/extension_prefs_unittest.cc |
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc |
index 5a51d732490810d43291d0ade358a9ebfacd9d49..b26c5141bb674e82e8c0b6ddf4cf9b70c0696b53 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "base/stl_util.h" |
#include "base/string_number_conversions.h" |
#include "base/stringprintf.h" |
+#include "base/threading/sequenced_worker_pool.h" |
#include "base/values.h" |
#include "chrome/browser/api/prefs/pref_change_registrar.h" |
#include "chrome/browser/extensions/extension_pref_value_map.h" |
@@ -53,9 +54,14 @@ static void AddPattern(URLPatternSet* extent, const std::string& pattern) { |
ExtensionPrefsTest::ExtensionPrefsTest() |
: ui_thread_(BrowserThread::UI, &message_loop_), |
file_thread_(BrowserThread::FILE, &message_loop_) { |
+ blocking_pool_ = new base::SequencedWorkerPool(1, "ExtensionTestBlocking"); |
+ prefs_.reset(new TestExtensionPrefs(blocking_pool_)); |
} |
-ExtensionPrefsTest::~ExtensionPrefsTest() {} |
+ExtensionPrefsTest::~ExtensionPrefsTest() { |
+ prefs_.reset(NULL); |
+ blocking_pool_->Shutdown(); |
+} |
void ExtensionPrefsTest::RegisterPreferences() {} |
@@ -68,9 +74,11 @@ void ExtensionPrefsTest::TearDown() { |
Verify(); |
// Reset ExtensionPrefs, and re-verify. |
- prefs_.RecreateExtensionPrefs(); |
+ prefs_->RecreateExtensionPrefs(); |
RegisterPreferences(); |
Verify(); |
+ prefs_->pref_service()->CommitPendingWrite(); |
+ blocking_pool_->FlushForTesting(); |
} |
// Tests the LastPingDay/SetLastPingDay functions. |
@@ -81,7 +89,7 @@ class ExtensionPrefsLastPingDay : public ExtensionPrefsTest { |
blacklist_time_(Time::Now() - TimeDelta::FromHours(2)) {} |
virtual void Initialize() { |
- extension_id_ = prefs_.AddExtensionAndReturnId("last_ping_day"); |
+ extension_id_ = prefs_->AddExtensionAndReturnId("last_ping_day"); |
EXPECT_TRUE(prefs()->LastPingDay(extension_id_).is_null()); |
prefs()->SetLastPingDay(extension_id_, extension_time_); |
prefs()->SetBlacklistLastPingDay(blacklist_time_); |
@@ -119,11 +127,11 @@ void AddGalleryPermission(chrome::MediaGalleryPrefId gallery, bool has_access, |
class MediaGalleriesPermissions : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension1_id_ = prefs_.AddExtensionAndReturnId("test1"); |
- extension2_id_ = prefs_.AddExtensionAndReturnId("test2"); |
- extension3_id_ = prefs_.AddExtensionAndReturnId("test3"); |
+ extension1_id_ = prefs_->AddExtensionAndReturnId("test1"); |
+ extension2_id_ = prefs_->AddExtensionAndReturnId("test2"); |
+ extension3_id_ = prefs_->AddExtensionAndReturnId("test3"); |
// Id4 isn't used to ensure that an empty permission list is ok. |
- extension4_id_ = prefs_.AddExtensionAndReturnId("test4"); |
+ extension4_id_ = prefs_->AddExtensionAndReturnId("test4"); |
Verify(); |
prefs()->SetMediaGalleryPermission(extension1_id_, 1, false); |
@@ -203,9 +211,9 @@ TEST_F(MediaGalleriesPermissions, MediaGalleries) {} |
class ExtensionPrefsToolbarOrder : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- list_.push_back(prefs_.AddExtensionAndReturnId("1")); |
- list_.push_back(prefs_.AddExtensionAndReturnId("2")); |
- list_.push_back(prefs_.AddExtensionAndReturnId("3")); |
+ list_.push_back(prefs_->AddExtensionAndReturnId("1")); |
+ list_.push_back(prefs_->AddExtensionAndReturnId("2")); |
+ list_.push_back(prefs_->AddExtensionAndReturnId("3")); |
std::vector<std::string> before_list = prefs()->GetToolbarOrder(); |
EXPECT_TRUE(before_list.empty()); |
prefs()->SetToolbarOrder(list_); |
@@ -229,7 +237,7 @@ TEST_F(ExtensionPrefsToolbarOrder, ToolbarOrder) {} |
class ExtensionPrefsExtensionState : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension = prefs_.AddExtension("test"); |
+ extension = prefs_->AddExtension("test"); |
prefs()->SetExtensionState(extension->id(), Extension::DISABLED); |
} |
@@ -246,7 +254,7 @@ TEST_F(ExtensionPrefsExtensionState, ExtensionState) {} |
class ExtensionPrefsEscalatePermissions : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension = prefs_.AddExtension("test"); |
+ extension = prefs_->AddExtension("test"); |
prefs()->SetDidExtensionEscalatePermissions(extension.get(), true); |
} |
@@ -266,7 +274,7 @@ class ExtensionPrefsGrantedPermissions : public ExtensionPrefsTest { |
const APIPermissionInfo* permission_info = |
PermissionsInfo::GetInstance()->GetByID(APIPermission::kSocket); |
- extension_id_ = prefs_.AddExtensionAndReturnId("test"); |
+ extension_id_ = prefs_->AddExtensionAndReturnId("test"); |
api_perm_set1_.insert(APIPermission::kTab); |
api_perm_set1_.insert(APIPermission::kBookmark); |
@@ -414,7 +422,7 @@ TEST_F(ExtensionPrefsGrantedPermissions, GrantedPermissions) {} |
class ExtensionPrefsActivePermissions : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension_id_ = prefs_.AddExtensionAndReturnId("test"); |
+ extension_id_ = prefs_->AddExtensionAndReturnId("test"); |
APIPermissionSet api_perms; |
api_perms.insert(APIPermission::kTab); |
@@ -462,7 +470,7 @@ TEST_F(ExtensionPrefsActivePermissions, SetAndGetActivePermissions) {} |
class ExtensionPrefsVersionString : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension = prefs_.AddExtension("test"); |
+ extension = prefs_->AddExtension("test"); |
EXPECT_EQ("0.1", prefs()->GetVersionString(extension->id())); |
prefs()->OnExtensionUninstalled(extension->id(), |
Extension::INTERNAL, false); |
@@ -486,7 +494,7 @@ class ExtensionPrefsBlacklist : public ExtensionPrefsTest { |
// Install 5 extensions. |
for (int i = 0; i < 5; i++) { |
std::string name = "test" + base::IntToString(i); |
- extensions_.push_back(prefs_.AddExtension(name)); |
+ extensions_.push_back(prefs_->AddExtension(name)); |
} |
EXPECT_EQ(NULL, prefs()->GetInstalledExtensionInfo(not_installed_id_)); |
@@ -538,7 +546,7 @@ class ExtensionPrefsAcknowledgment : public ExtensionPrefsTest { |
// Install some extensions. |
for (int i = 0; i < 5; i++) { |
std::string name = "test" + base::IntToString(i); |
- extensions_.push_back(prefs_.AddExtension(name)); |
+ extensions_.push_back(prefs_->AddExtension(name)); |
} |
EXPECT_EQ(NULL, prefs()->GetInstalledExtensionInfo(not_installed_id_)); |
@@ -613,7 +621,7 @@ class ExtensionPrefsHidingBrowserActions : public ExtensionPrefsTest { |
// Install 5 extensions. |
for (int i = 0; i < 5; i++) { |
std::string name = "test" + base::IntToString(i); |
- extensions_.push_back(prefs_.AddExtension(name)); |
+ extensions_.push_back(prefs_->AddExtension(name)); |
} |
ExtensionList::const_iterator iter; |
@@ -670,10 +678,10 @@ class ExtensionPrefsIdleInstallInfo : public ExtensionPrefsTest { |
virtual void Initialize() { |
PathService::Get(chrome::DIR_TEST_DATA, &basedir_); |
now_ = Time::Now(); |
- id1_ = prefs_.AddExtensionAndReturnId("1"); |
- id2_ = prefs_.AddExtensionAndReturnId("2"); |
- id3_ = prefs_.AddExtensionAndReturnId("3"); |
- id4_ = prefs_.AddExtensionAndReturnId("4"); |
+ id1_ = prefs_->AddExtensionAndReturnId("1"); |
+ id2_ = prefs_->AddExtensionAndReturnId("2"); |
+ id3_ = prefs_->AddExtensionAndReturnId("3"); |
+ id4_ = prefs_->AddExtensionAndReturnId("4"); |
// Set info for two extensions, then remove it. |
SetIdleInfo(id1_, 1); |
@@ -737,7 +745,7 @@ TEST_F(ExtensionPrefsIdleInstallInfo, IdleInstallInfo) {} |
class ExtensionPrefsOnExtensionInstalled : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension_ = prefs_.AddExtension("on_extension_installed"); |
+ extension_ = prefs_->AddExtension("on_extension_installed"); |
EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); |
prefs()->OnExtensionInstalled( |
extension_.get(), Extension::DISABLED, |
@@ -757,7 +765,7 @@ TEST_F(ExtensionPrefsOnExtensionInstalled, |
class ExtensionPrefsAppDraggedByUser : public ExtensionPrefsTest { |
public: |
virtual void Initialize() { |
- extension_ = prefs_.AddExtension("on_extension_installed"); |
+ extension_ = prefs_->AddExtension("on_extension_installed"); |
EXPECT_FALSE(prefs()->WasAppDraggedByUser(extension_->id())); |
prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, |
syncer::StringOrdinal()); |
@@ -785,7 +793,7 @@ class ExtensionPrefsFlags : public ExtensionPrefsTest { |
base::DictionaryValue dictionary; |
dictionary.SetString(extension_manifest_keys::kName, "from_webstore"); |
dictionary.SetString(extension_manifest_keys::kVersion, "0.1"); |
- webstore_extension_ = prefs_.AddExtensionWithManifestAndFlags( |
+ webstore_extension_ = prefs_->AddExtensionWithManifestAndFlags( |
dictionary, Extension::INTERNAL, Extension::FROM_WEBSTORE); |
} |
@@ -793,7 +801,7 @@ class ExtensionPrefsFlags : public ExtensionPrefsTest { |
base::DictionaryValue dictionary; |
dictionary.SetString(extension_manifest_keys::kName, "from_bookmark"); |
dictionary.SetString(extension_manifest_keys::kVersion, "0.1"); |
- bookmark_extension_ = prefs_.AddExtensionWithManifestAndFlags( |
+ bookmark_extension_ = prefs_->AddExtensionWithManifestAndFlags( |
dictionary, Extension::INTERNAL, Extension::FROM_BOOKMARK); |
} |
@@ -802,7 +810,7 @@ class ExtensionPrefsFlags : public ExtensionPrefsTest { |
dictionary.SetString(extension_manifest_keys::kName, |
"was_installed_by_default"); |
dictionary.SetString(extension_manifest_keys::kVersion, "0.1"); |
- default_extension_ = prefs_.AddExtensionWithManifestAndFlags( |
+ default_extension_ = prefs_->AddExtensionWithManifestAndFlags( |
dictionary, |
Extension::INTERNAL, |
Extension::WAS_INSTALLED_BY_DEFAULT); |
@@ -842,16 +850,16 @@ ExtensionPrefsPrepopulatedTest::ExtensionPrefsPrepopulatedTest() |
simple_dict.SetString(keys::kName, "unused"); |
ext1_scoped_ = Extension::Create( |
- prefs_.temp_dir().AppendASCII("ext1_"), Extension::EXTERNAL_PREF, |
+ prefs_->temp_dir().AppendASCII("ext1_"), Extension::EXTERNAL_PREF, |
simple_dict, Extension::NO_FLAGS, &error); |
ext2_scoped_ = Extension::Create( |
- prefs_.temp_dir().AppendASCII("ext2_"), Extension::EXTERNAL_PREF, |
+ prefs_->temp_dir().AppendASCII("ext2_"), Extension::EXTERNAL_PREF, |
simple_dict, Extension::NO_FLAGS, &error); |
ext3_scoped_ = Extension::Create( |
- prefs_.temp_dir().AppendASCII("ext3_"), Extension::EXTERNAL_PREF, |
+ prefs_->temp_dir().AppendASCII("ext3_"), Extension::EXTERNAL_PREF, |
simple_dict, Extension::NO_FLAGS, &error); |
ext4_scoped_ = Extension::Create( |
- prefs_.temp_dir().AppendASCII("ext4_"), Extension::EXTERNAL_PREF, |
+ prefs_->temp_dir().AppendASCII("ext4_"), Extension::EXTERNAL_PREF, |
simple_dict, Extension::NO_FLAGS, &error); |
ext1_ = ext1_scoped_.get(); |
@@ -961,7 +969,7 @@ class ExtensionPrefsInstallIncognitoPersistent |
InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
InstallExtControlledPrefIncognito(ext1_, kPref1, |
Value::CreateStringValue("val2")); |
- scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
+ scoped_ptr<PrefService> incog_prefs(prefs_->CreateIncognitoPrefService()); |
std::string actual = incog_prefs->GetString(kPref1); |
EXPECT_EQ("val2", actual); |
} |
@@ -970,7 +978,7 @@ class ExtensionPrefsInstallIncognitoPersistent |
std::string actual = prefs()->pref_service()->GetString(kPref1); |
EXPECT_EQ("val1", actual); |
// Incognito pref service shall see incognito values. |
- scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
+ scoped_ptr<PrefService> incog_prefs(prefs_->CreateIncognitoPrefService()); |
actual = incog_prefs->GetString(kPref1); |
EXPECT_EQ("val2", actual); |
} |
@@ -988,7 +996,7 @@ class ExtensionPrefsInstallIncognitoSessionOnly |
InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
InstallExtControlledPrefIncognitoSessionOnly( |
ext1_, kPref1, Value::CreateStringValue("val2")); |
- scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
+ scoped_ptr<PrefService> incog_prefs(prefs_->CreateIncognitoPrefService()); |
std::string actual = incog_prefs->GetString(kPref1); |
EXPECT_EQ("val2", actual); |
} |
@@ -999,7 +1007,7 @@ class ExtensionPrefsInstallIncognitoSessionOnly |
// Incognito pref service shall see session-only incognito values only |
// during first run. Once the pref service was reloaded, all values shall be |
// discarded. |
- scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
+ scoped_ptr<PrefService> incog_prefs(prefs_->CreateIncognitoPrefService()); |
actual = incog_prefs->GetString(kPref1); |
if (iteration_ == 0) { |
EXPECT_EQ("val2", actual); |
@@ -1055,7 +1063,7 @@ class ExtensionPrefsNotifyWhenNeeded : public ExtensionPrefsPrepopulatedTest { |
registrar.Add(kPref1, &observer); |
content::MockNotificationObserver incognito_observer; |
- scoped_ptr<PrefService> incog_prefs(prefs_.CreateIncognitoPrefService()); |
+ scoped_ptr<PrefService> incog_prefs(prefs_->CreateIncognitoPrefService()); |
PrefChangeRegistrar incognito_registrar; |
incognito_registrar.Init(incog_prefs.get()); |
incognito_registrar.Add(kPref1, &incognito_observer); |
@@ -1181,7 +1189,7 @@ class ExtensionPrefsSetExtensionControlledPref |
EXPECT_CALL(*v2i, Die()).Times(1); |
InstallExtControlledPref(ext1_, kPref1, v2); |
InstallExtControlledPrefIncognito(ext1_, kPref1, v2i); |
- prefs_.RecreateExtensionPrefs(); |
+ prefs_->RecreateExtensionPrefs(); |
testing::Mock::VerifyAndClearExpectations(v1); |
testing::Mock::VerifyAndClearExpectations(v1i); |
testing::Mock::VerifyAndClearExpectations(v2); |
@@ -1204,7 +1212,7 @@ class ExtensionPrefsDisableExtensions : public ExtensionPrefsPrepopulatedTest { |
virtual void Initialize() { |
InstallExtControlledPref(ext1_, kPref1, Value::CreateStringValue("val1")); |
// This becomes only active in the second verification phase. |
- prefs_.set_extensions_disabled(true); |
+ prefs_->set_extensions_disabled(true); |
} |
virtual void Verify() { |
std::string actual = prefs()->pref_service()->GetString(kPref1); |