Index: chrome/browser/extensions/extension_service_unittest.cc |
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc |
index 7e3609eda2d783780d7327fa8bd438f65c778d54..ed7865ab23073edb9a31c5daf022ee0d1eca8f4d 100644 |
--- a/chrome/browser/extensions/extension_service_unittest.cc |
+++ b/chrome/browser/extensions/extension_service_unittest.cc |
@@ -8,7 +8,6 @@ |
#include <set> |
#include <vector> |
-#include "base/at_exit.h" |
#include "base/basictypes.h" |
#include "base/bind.h" |
#include "base/command_line.h" |
@@ -382,7 +381,7 @@ class ExtensionTestingProfile : public TestingProfile { |
ExtensionServiceTestBase::ExtensionServiceTestBase() |
: loop_(MessageLoop::TYPE_IO), |
service_(NULL), |
- total_successes_(0), |
+ expected_extensions_count_(0), |
ui_thread_(BrowserThread::UI, &loop_), |
db_thread_(BrowserThread::DB, &loop_), |
webkit_thread_(BrowserThread::WEBKIT, &loop_), |
@@ -435,7 +434,7 @@ void ExtensionServiceTestBase::InitializeExtensionService( |
// will register one specifically. |
service_->ClearProvidersForTesting(); |
- total_successes_ = 0; |
+ expected_extensions_count_ = 0; |
} |
void ExtensionServiceTestBase::InitializeInstalledExtensionService( |
@@ -557,19 +556,13 @@ class ExtensionServiceTest |
void TestExternalProvider(MockExtensionProvider* provider, |
Extension::Location location); |
- void PackAndInstallCrx(const FilePath& dir_path, |
- const FilePath& pem_path, |
- bool should_succeed) { |
- FilePath crx_path; |
- ScopedTempDir temp_dir; |
- ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
- crx_path = temp_dir_.path().AppendASCII("temp.crx"); |
- |
+ void PackCRX(const FilePath& dir_path, |
+ const FilePath& pem_path, |
+ const FilePath& crx_path) { |
// Use the existing pem key, if provided. |
FilePath pem_output_path; |
if (pem_path.value().empty()) { |
pem_output_path = crx_path.DirName().AppendASCII("temp.pem"); |
- ASSERT_TRUE(file_util::Delete(pem_output_path, false)); |
} else { |
ASSERT_TRUE(file_util::PathExists(pem_path)); |
} |
@@ -583,23 +576,17 @@ class ExtensionServiceTest |
pem_output_path)); |
ASSERT_TRUE(file_util::PathExists(crx_path)); |
- InstallCrx(crx_path, should_succeed); |
- } |
- |
- void PackAndInstallCrx(const FilePath& dir_path, |
- bool should_succeed) { |
- PackAndInstallCrx(dir_path, FilePath(), should_succeed); |
} |
// Create a CrxInstaller and start installation. To allow the install |
// to happen, use loop_.RunAllPending();. Most tests will not use this |
// method directly. Instead, use InstallCrx(), which waits for |
// the crx to be installed and does extra error checking. |
- void StartCrxInstall(const FilePath& crx_path) { |
- StartCrxInstall(crx_path, false); |
+ void StartCRXInstall(const FilePath& crx_path) { |
+ StartCRXInstall(crx_path, false); |
} |
- void StartCrxInstall(const FilePath& crx_path, bool from_webstore) { |
+ void StartCRXInstall(const FilePath& crx_path, bool from_webstore) { |
ASSERT_TRUE(file_util::PathExists(crx_path)) |
<< "Path does not exist: "<< crx_path.value().c_str(); |
scoped_refptr<CrxInstaller> installer(CrxInstaller::Create(service_, NULL)); |
@@ -608,16 +595,45 @@ class ExtensionServiceTest |
installer->InstallCrx(crx_path); |
} |
- void InstallCrx(const FilePath& path, |
- bool should_succeed) { |
- StartCrxInstall(path); |
- WaitForCrxInstall(path, should_succeed); |
+ enum InstallState { |
+ INSTALL_FAILED, |
+ INSTALL_UPDATED, |
+ INSTALL_NEW |
+ }; |
+ |
+ const Extension* PackAndInstallCRX(const FilePath& dir_path, |
+ const FilePath& pem_path, |
+ InstallState install_state) { |
+ FilePath crx_path; |
+ ScopedTempDir temp_dir; |
+ EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); |
+ crx_path = temp_dir.path().AppendASCII("temp.crx"); |
+ |
+ PackCRX(dir_path, pem_path, crx_path); |
+ return InstallCRX(crx_path, install_state); |
} |
- void InstallCrxWithLocation(const FilePath& crx_path, |
- Extension::Location install_location, |
- bool should_succeed) { |
- ASSERT_TRUE(file_util::PathExists(crx_path)) |
+ const Extension* PackAndInstallCRX(const FilePath& dir_path, |
+ InstallState install_state) { |
+ return PackAndInstallCRX(dir_path, FilePath(), install_state); |
+ } |
+ |
+ const Extension* InstallCRX(const FilePath& path, |
+ InstallState install_state) { |
+ StartCRXInstall(path); |
+ return WaitForCrxInstall(path, install_state); |
+ } |
+ |
+ const Extension* InstallCRXFromWebStore(const FilePath& path, |
+ InstallState install_state) { |
+ StartCRXInstall(path, true); |
+ return WaitForCrxInstall(path, install_state); |
+ } |
+ |
+ const Extension* InstallCRXWithLocation(const FilePath& crx_path, |
+ Extension::Location install_location, |
+ InstallState install_state) { |
+ EXPECT_TRUE(file_util::PathExists(crx_path)) |
<< "Path does not exist: "<< crx_path.value().c_str(); |
// no client (silent install) |
scoped_refptr<CrxInstaller> installer(CrxInstaller::Create(service_, NULL)); |
@@ -625,24 +641,28 @@ class ExtensionServiceTest |
installer->set_install_source(install_location); |
installer->InstallCrx(crx_path); |
- WaitForCrxInstall(crx_path, should_succeed); |
+ return WaitForCrxInstall(crx_path, install_state); |
} |
- // Wait for a CrxInstaller to finish. Used by InstallCrx. |
- void WaitForCrxInstall(const FilePath& path, |
- bool should_succeed) { |
+ // Wait for a CrxInstaller to finish. Used by InstallCRX. |
+ // Returns an Extension pointer if the install succeeded, NULL otherwise. |
+ const Extension* WaitForCrxInstall(const FilePath& path, |
+ InstallState install_state) { |
loop_.RunAllPending(); |
std::vector<std::string> errors = GetErrors(); |
- if (should_succeed) { |
- ++total_successes_; |
+ const Extension* extension = NULL; |
+ if (install_state != INSTALL_FAILED) { |
+ if (install_state == INSTALL_NEW) |
+ ++expected_extensions_count_; |
EXPECT_TRUE(installed_) << path.value(); |
- ASSERT_EQ(1u, loaded_.size()) << path.value(); |
+ EXPECT_EQ(1u, loaded_.size()) << path.value(); |
EXPECT_EQ(0u, errors.size()) << path.value(); |
- EXPECT_EQ(total_successes_, service_->extensions()->size()) << |
+ EXPECT_EQ(expected_extensions_count_, service_->extensions()->size()) << |
path.value(); |
- EXPECT_TRUE(service_->GetExtensionById(loaded_[0]->id(), false)) << |
+ extension = loaded_[0]; |
+ EXPECT_TRUE(service_->GetExtensionById(extension->id(), false)) << |
path.value(); |
for (std::vector<std::string>::iterator err = errors.begin(); |
err != errors.end(); ++err) { |
@@ -657,6 +677,7 @@ class ExtensionServiceTest |
installed_ = NULL; |
loaded_.clear(); |
ExtensionErrorReporter::GetInstance()->ClearErrors(); |
+ return extension; |
} |
enum UpdateState { |
@@ -749,7 +770,7 @@ class ExtensionServiceTest |
} else { |
EXPECT_TRUE(service_->UninstallExtension(id, false, NULL)); |
} |
- total_successes_ = 0; |
+ --expected_extensions_count_; |
// We should get an unload notification. |
EXPECT_FALSE(unloaded_id_.empty()); |
@@ -1101,7 +1122,6 @@ TEST_F(ExtensionServiceTest, LoadAllExtensionsFromDirectoryFail) { |
InitializeInstalledExtensionService(pref_path, source_install_dir); |
service_->Init(); |
- loop_.RunAllPending(); |
ASSERT_EQ(4u, GetErrors().size()); |
ASSERT_EQ(0u, loaded_.size()); |
@@ -1146,6 +1166,7 @@ TEST_F(ExtensionServiceTest, CleanupOnStartup) { |
} |
service_->Init(); |
+ // Wait for GarbageCollectExtensions task to complete. |
loop_.RunAllPending(); |
file_util::FileEnumerator dirs(extensions_install_dir_, false, |
@@ -1172,14 +1193,14 @@ TEST_F(ExtensionServiceTest, InstallExtension) { |
// Extensions not enabled. |
set_extensions_enabled(false); |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
set_extensions_enabled(true); |
ValidatePrefKeyCount(0); |
// A simple extension that should install without error. |
path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
// TODO(erikkay): verify the contents of the installed extension. |
int pref_count = 0; |
@@ -1189,24 +1210,24 @@ TEST_F(ExtensionServiceTest, InstallExtension) { |
// An extension with page actions. |
path = data_dir_.AppendASCII("page_action.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ValidateIntegerPref(page_action, "state", Extension::ENABLED); |
ValidateIntegerPref(page_action, "location", Extension::INTERNAL); |
// Bad signature. |
path = data_dir_.AppendASCII("bad_signature.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
// 0-length extension file. |
path = data_dir_.AppendASCII("not_an_extension.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
// Bad magic number. |
path = data_dir_.AppendASCII("bad_magic.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
// Extensions cannot have folders or files that have underscores except in |
@@ -1214,7 +1235,7 @@ TEST_F(ExtensionServiceTest, InstallExtension) { |
// class of validation that we do to the directory structure of the extension. |
// We did not used to handle this correctly for installation. |
path = data_dir_.AppendASCII("bad_underscore.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
// TODO(erikkay): add more tests for many of the failure cases. |
@@ -1312,7 +1333,6 @@ TEST_F(ExtensionServiceTest, UninstallingNotLoadedExtension) { |
InitializeInstalledExtensionService(pref_path, source_install_dir); |
service_->Init(); |
- loop_.RunAllPending(); |
// Check and try to uninstall it. |
// If we don't check whether the extension is loaded before we uninstall it |
@@ -1433,12 +1453,11 @@ TEST_F(ExtensionServiceTest, GrantedPermissions) { |
prefs->GetGrantedPermissions(permissions_crx)); |
EXPECT_FALSE(known_perms.get()); |
- PackAndInstallCrx(path, pem_path, true); |
+ const Extension* extension = PackAndInstallCRX(path, pem_path, INSTALL_NEW); |
EXPECT_EQ(0u, GetErrors().size()); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- std::string extension_id = service_->extensions()->at(0)->id(); |
- EXPECT_EQ(permissions_crx, extension_id); |
+ EXPECT_EQ(permissions_crx, extension->id()); |
// Verify that the valid API permissions have been recognized. |
expected_api_perms.insert(ExtensionAPIPermission::kTab); |
@@ -1448,7 +1467,7 @@ TEST_F(ExtensionServiceTest, GrantedPermissions) { |
AddPattern(&expected_host_perms, "http://*.google.com.hk/*"); |
AddPattern(&expected_host_perms, "http://www.example.com/*"); |
- known_perms = prefs->GetGrantedPermissions(extension_id); |
+ known_perms = prefs->GetGrantedPermissions(extension->id()); |
EXPECT_TRUE(known_perms.get()); |
EXPECT_FALSE(known_perms->IsEmpty()); |
EXPECT_EQ(expected_api_perms, known_perms->apis()); |
@@ -1472,15 +1491,13 @@ TEST_F(ExtensionServiceTest, GrantedFullAccessPermissions) { |
.AppendASCII("2"); |
ASSERT_TRUE(file_util::PathExists(path)); |
- PackAndInstallCrx(path, true); |
+ const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(0u, GetErrors().size()); |
EXPECT_EQ(1u, service_->extensions()->size()); |
- const Extension* extension = service_->extensions()->at(0); |
- std::string extension_id = extension->id(); |
ExtensionPrefs* prefs = service_->extension_prefs(); |
scoped_refptr<ExtensionPermissionSet> permissions( |
- prefs->GetGrantedPermissions(extension_id)); |
+ prefs->GetGrantedPermissions(extension->id())); |
EXPECT_FALSE(permissions->IsEmpty()); |
EXPECT_TRUE(permissions->HasEffectiveFullAccess()); |
EXPECT_FALSE(permissions->apis().empty()); |
@@ -1503,11 +1520,10 @@ TEST_F(ExtensionServiceTest, GrantedAPIAndHostPermissions) { |
ASSERT_TRUE(file_util::PathExists(path)); |
- PackAndInstallCrx(path, true); |
+ const Extension* extension = PackAndInstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(0u, GetErrors().size()); |
EXPECT_EQ(1u, service_->extensions()->size()); |
- const Extension* extension = service_->extensions()->at(0); |
std::string extension_id = extension->id(); |
ExtensionPrefs* prefs = service_->extension_prefs(); |
@@ -1531,7 +1547,7 @@ TEST_F(ExtensionServiceTest, GrantedAPIAndHostPermissions) { |
service_->ReloadExtensions(); |
EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
- extension = service_->disabled_extensions()->at(0); |
+ extension = *service_->disabled_extensions()->begin(); |
ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id)); |
ASSERT_FALSE(service_->IsExtensionEnabled(extension_id)); |
@@ -1574,7 +1590,7 @@ TEST_F(ExtensionServiceTest, GrantedAPIAndHostPermissions) { |
service_->ReloadExtensions(); |
EXPECT_EQ(1u, service_->disabled_extensions()->size()); |
- extension = service_->disabled_extensions()->at(0); |
+ extension = *service_->disabled_extensions()->begin(); |
ASSERT_TRUE(prefs->IsExtensionDisabled(extension_id)); |
ASSERT_FALSE(service_->IsExtensionEnabled(extension_id)); |
@@ -1615,7 +1631,7 @@ TEST_F(ExtensionServiceTest, PackExtension) { |
privkey_path)); |
ASSERT_TRUE(file_util::PathExists(privkey_path)); |
- InstallCrx(crx_path, true); |
+ InstallCRX(crx_path, INSTALL_NEW); |
// Try packing with invalid paths. |
creator.reset(new ExtensionCreator()); |
@@ -1706,7 +1722,7 @@ TEST_F(ExtensionServiceTest, PackPunctuatedExtension) { |
if (HasFatalFailure()) |
return; |
- InstallCrx(expected_crx_path, true); |
+ InstallCRX(expected_crx_path, INSTALL_NEW); |
} |
} |
@@ -1737,7 +1753,7 @@ TEST_F(ExtensionServiceTest, PackExtensionOpenSSLKey) { |
ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path, |
FilePath())); |
- InstallCrx(crx_path, true); |
+ InstallCRX(crx_path, INSTALL_NEW); |
} |
TEST_F(ExtensionServiceTest, InstallTheme) { |
@@ -1745,7 +1761,7 @@ TEST_F(ExtensionServiceTest, InstallTheme) { |
// A theme. |
FilePath path = data_dir_.AppendASCII("theme.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
int pref_count = 0; |
ValidatePrefKeyCount(++pref_count); |
ValidateIntegerPref(theme_crx, "state", Extension::ENABLED); |
@@ -1755,7 +1771,7 @@ TEST_F(ExtensionServiceTest, InstallTheme) { |
// extensions are disabled. |
set_extensions_enabled(false); |
path = data_dir_.AppendASCII("theme2.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ValidateIntegerPref(theme2_crx, "state", Extension::ENABLED); |
ValidateIntegerPref(theme2_crx, "location", Extension::INTERNAL); |
@@ -1764,12 +1780,12 @@ TEST_F(ExtensionServiceTest, InstallTheme) { |
// this test should fail. |
set_extensions_enabled(true); |
path = data_dir_.AppendASCII("theme_with_extension.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
// A theme with image resources missing (misspelt path). |
path = data_dir_.AppendASCII("theme_missing_image.crx"); |
- InstallCrx(path, false); |
+ InstallCRX(path, INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
} |
@@ -1784,8 +1800,9 @@ TEST_F(ExtensionServiceTest, LoadLocalizedTheme) { |
EXPECT_EQ(0u, GetErrors().size()); |
ASSERT_EQ(1u, loaded_.size()); |
EXPECT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ("name", service_->extensions()->at(0)->name()); |
- EXPECT_EQ("description", service_->extensions()->at(0)->description()); |
+ const Extension* theme = *service_->extensions()->begin(); |
+ EXPECT_EQ("name", theme->name()); |
+ EXPECT_EQ("description", theme->description()); |
} |
TEST_F(ExtensionServiceTest, InstallLocalizedTheme) { |
@@ -1793,45 +1810,46 @@ TEST_F(ExtensionServiceTest, InstallLocalizedTheme) { |
FilePath theme_path = data_dir_ |
.AppendASCII("theme_i18n"); |
- PackAndInstallCrx(theme_path, true); |
+ const Extension* theme = PackAndInstallCRX(theme_path, INSTALL_NEW); |
EXPECT_EQ(0u, GetErrors().size()); |
EXPECT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ("name", service_->extensions()->at(0)->name()); |
- EXPECT_EQ("description", service_->extensions()->at(0)->description()); |
+ EXPECT_EQ("name", theme->name()); |
+ EXPECT_EQ("description", theme->description()); |
} |
TEST_F(ExtensionServiceTest, InstallApps) { |
InitializeEmptyExtensionService(); |
// An empty app. |
- PackAndInstallCrx(data_dir_.AppendASCII("app1"), true); |
+ const Extension* app = PackAndInstallCRX(data_dir_.AppendASCII("app1"), |
+ INSTALL_NEW); |
int pref_count = 0; |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- std::string id = service_->extensions()->at(0)->id(); |
- ValidateIntegerPref(id, "state", Extension::ENABLED); |
- ValidateIntegerPref(id, "location", Extension::INTERNAL); |
+ ValidateIntegerPref(app->id(), "state", Extension::ENABLED); |
+ ValidateIntegerPref(app->id(), "location", Extension::INTERNAL); |
// Another app with non-overlapping extent. Should succeed. |
- PackAndInstallCrx(data_dir_.AppendASCII("app2"), true); |
+ PackAndInstallCRX(data_dir_.AppendASCII("app2"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
// A third app whose extent overlaps the first. Should fail. |
- PackAndInstallCrx(data_dir_.AppendASCII("app3"), false); |
+ PackAndInstallCRX(data_dir_.AppendASCII("app3"), INSTALL_FAILED); |
ValidatePrefKeyCount(pref_count); |
} |
// Tests that file access is OFF by default. |
TEST_F(ExtensionServiceTest, DefaultFileAccess) { |
InitializeEmptyExtensionService(); |
- PackAndInstallCrx(data_dir_.AppendASCII("permissions").AppendASCII("files"), |
- true); |
- |
+ const Extension* extension = |
+ PackAndInstallCRX(data_dir_ |
+ .AppendASCII("permissions") |
+ .AppendASCII("files"), |
+ INSTALL_NEW); |
EXPECT_EQ(0u, GetErrors().size()); |
EXPECT_EQ(1u, service_->extensions()->size()); |
- std::string id = service_->extensions()->at(0)->id(); |
- EXPECT_FALSE(service_->extension_prefs()->AllowFileAccess(id)); |
+ EXPECT_FALSE(service_->extension_prefs()->AllowFileAccess(extension->id())); |
} |
TEST_F(ExtensionServiceTest, UpdateApps) { |
@@ -1839,21 +1857,21 @@ TEST_F(ExtensionServiceTest, UpdateApps) { |
FilePath extensions_path = data_dir_.AppendASCII("app_update"); |
// First install v1 of a hosted app. |
- InstallCrx(extensions_path.AppendASCII("v1.crx"), true); |
+ const Extension* extension = |
+ InstallCRX(extensions_path.AppendASCII("v1.crx"), INSTALL_NEW); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- std::string id = service_->extensions()->at(0)->id(); |
- ASSERT_EQ(std::string("1"), |
- service_->extensions()->at(0)->version()->GetString()); |
+ std::string id = extension->id(); |
+ ASSERT_EQ(std::string("1"), extension->version()->GetString()); |
// Now try updating to v2. |
UpdateExtension(id, |
extensions_path.AppendASCII("v2.crx"), |
ENABLED); |
ASSERT_EQ(std::string("2"), |
- service_->extensions()->at(0)->version()->GetString()); |
+ service_->GetExtensionById(id, false)->version()->GetString()); |
} |
-TEST_F(ExtensionServiceTest, InstallAppsWithUnlimtedStorage) { |
+TEST_F(ExtensionServiceTest, InstallAppsWithUnlimitedStorage) { |
InitializeEmptyExtensionService(); |
InitializeRequestContext(); |
EXPECT_TRUE(service_->extensions()->empty()); |
@@ -1861,10 +1879,10 @@ TEST_F(ExtensionServiceTest, InstallAppsWithUnlimtedStorage) { |
int pref_count = 0; |
// Install app1 with unlimited storage. |
- PackAndInstallCrx(data_dir_.AppendASCII("app1"), true); |
+ const Extension* extension = |
+ PackAndInstallCRX(data_dir_.AppendASCII("app1"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- const Extension* extension = service_->extensions()->at(0); |
const std::string id1 = extension->id(); |
EXPECT_TRUE(extension->HasAPIPermission( |
ExtensionAPIPermission::kUnlimitedStorage)); |
@@ -1875,10 +1893,9 @@ TEST_F(ExtensionServiceTest, InstallAppsWithUnlimtedStorage) { |
IsStorageUnlimited(origin1)); |
// Install app2 from the same origin with unlimited storage. |
- PackAndInstallCrx(data_dir_.AppendASCII("app2"), true); |
+ extension = PackAndInstallCRX(data_dir_.AppendASCII("app2"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(2u, service_->extensions()->size()); |
- extension = service_->extensions()->at(1); |
const std::string id2 = extension->id(); |
EXPECT_TRUE(extension->HasAPIPermission( |
ExtensionAPIPermission::kUnlimitedStorage)); |
@@ -1912,10 +1929,10 @@ TEST_F(ExtensionServiceTest, InstallAppsAndCheckStorageProtection) { |
int pref_count = 0; |
- PackAndInstallCrx(data_dir_.AppendASCII("app1"), true); |
+ const Extension* extension = |
+ PackAndInstallCRX(data_dir_.AppendASCII("app1"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- const Extension* extension = service_->extensions()->at(0); |
EXPECT_TRUE(extension->is_app()); |
const std::string id1 = extension->id(); |
const GURL origin1(extension->GetFullLaunchURL().GetOrigin()); |
@@ -1923,10 +1940,9 @@ TEST_F(ExtensionServiceTest, InstallAppsAndCheckStorageProtection) { |
IsStorageProtected(origin1)); |
// App 4 has a different origin (maps.google.com). |
- PackAndInstallCrx(data_dir_.AppendASCII("app4"), true); |
+ extension = PackAndInstallCRX(data_dir_.AppendASCII("app4"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(2u, service_->extensions()->size()); |
- extension = service_->extensions()->at(1); |
const std::string id2 = extension->id(); |
const GURL origin2(extension->GetFullLaunchURL().GetOrigin()); |
ASSERT_NE(origin1, origin2); |
@@ -1951,27 +1967,15 @@ TEST_F(ExtensionServiceTest, Reinstall) { |
// A simple extension that should install without error. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_NEW); |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(0u, GetErrors().size()); |
ValidatePrefKeyCount(1); |
ValidateIntegerPref(good_crx, "state", Extension::ENABLED); |
ValidateIntegerPref(good_crx, "location", Extension::INTERNAL); |
- installed_ = NULL; |
- loaded_.clear(); |
- ExtensionErrorReporter::GetInstance()->ClearErrors(); |
- |
// Reinstall the same version, it should overwrite the previous one. |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_UPDATED); |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(0u, GetErrors().size()); |
ValidatePrefKeyCount(1); |
ValidateIntegerPref(good_crx, "state", Extension::ENABLED); |
ValidateIntegerPref(good_crx, "location", Extension::INTERNAL); |
@@ -1984,35 +1988,23 @@ TEST_F(ExtensionServiceTest, FromWebStore) { |
// A simple extension that should install without error. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path, false); // Not from web store. |
- loop_.RunAllPending(); |
+ // Not from web store. |
+ const Extension* extension = InstallCRX(path, INSTALL_NEW); |
+ std::string id = extension->id(); |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(0u, GetErrors().size()); |
ValidatePrefKeyCount(1); |
ValidateBooleanPref(good_crx, "from_webstore", false); |
- |
- const Extension* extension = service_->extensions()->at(0); |
ASSERT_FALSE(extension->from_webstore()); |
- installed_ = NULL; |
- loaded_.clear(); |
- ExtensionErrorReporter::GetInstance()->ClearErrors(); |
- |
// Test install from web store. |
- StartCrxInstall(path, true); // From web store. |
- loop_.RunAllPending(); |
+ InstallCRXFromWebStore(path, INSTALL_UPDATED); // From web store. |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(0u, GetErrors().size()); |
ValidatePrefKeyCount(1); |
ValidateBooleanPref(good_crx, "from_webstore", true); |
// Reload so extension gets reinitialized with new value. |
service_->ReloadExtensions(); |
- extension = service_->extensions()->at(0); |
+ extension = service_->GetExtensionById(id, false); |
ASSERT_TRUE(extension->from_webstore()); |
// Upgrade to version 2.0 |
@@ -2027,22 +2019,18 @@ TEST_F(ExtensionServiceTest, UpgradeSignedGood) { |
InitializeEmptyExtensionService(); |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ const Extension* extension = InstallCRX(path, INSTALL_NEW); |
+ std::string id = extension->id(); |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ("1.0.0.0", loaded_[0]->version()->GetString()); |
+ ASSERT_EQ("1.0.0.0", extension->version()->GetString()); |
ASSERT_EQ(0u, GetErrors().size()); |
- // Upgrade to version 2.0 |
+ // Upgrade to version 1.0.0.1 |
path = data_dir_.AppendASCII("good2.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_UPDATED); |
+ extension = service_->GetExtensionById(id, false); |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString()); |
+ ASSERT_EQ("1.0.0.1", extension->version()->GetString()); |
ASSERT_EQ(0u, GetErrors().size()); |
} |
@@ -2051,23 +2039,12 @@ TEST_F(ExtensionServiceTest, UpgradeSignedBad) { |
InitializeEmptyExtensionService(); |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
- |
- ASSERT_TRUE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(0u, GetErrors().size()); |
- installed_ = NULL; |
+ InstallCRX(path, INSTALL_NEW); |
// Try upgrading with a bad signature. This should fail during the unpack, |
// because the key will not match the signature. |
path = data_dir_.AppendASCII("bad_signature.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
- |
- ASSERT_FALSE(installed_); |
- ASSERT_EQ(1u, loaded_.size()); |
- ASSERT_EQ(1u, GetErrors().size()); |
+ InstallCRX(path, INSTALL_FAILED); |
} |
// Test a normal update via the UpdateExtension API |
@@ -2076,14 +2053,15 @@ TEST_F(ExtensionServiceTest, UpdateExtension) { |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ("1.0.0.0", good->VersionString()); |
ASSERT_EQ(good_crx, good->id()); |
path = data_dir_.AppendASCII("good2.crx"); |
UpdateExtension(good_crx, path, ENABLED); |
- ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString()); |
+ ASSERT_EQ("1.0.0.1", |
+ service_->GetExtensionById(good_crx, false)-> |
+ version()->GetString()); |
} |
// Test updating a not-already-installed extension - this should fail |
@@ -2105,15 +2083,16 @@ TEST_F(ExtensionServiceTest, UpdateWillNotDowngrade) { |
FilePath path = data_dir_.AppendASCII("good2.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ("1.0.0.1", good->VersionString()); |
ASSERT_EQ(good_crx, good->id()); |
// Change path from good2.crx -> good.crx |
path = data_dir_.AppendASCII("good.crx"); |
UpdateExtension(good_crx, path, FAILED); |
- ASSERT_EQ("1.0.0.1", service_->extensions()->at(0)->VersionString()); |
+ ASSERT_EQ("1.0.0.1", |
+ service_->GetExtensionById(good_crx, false)-> |
+ version()->GetString()); |
} |
// Make sure calling update with an identical version does nothing |
@@ -2122,8 +2101,7 @@ TEST_F(ExtensionServiceTest, UpdateToSameVersionIsNoop) { |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ(good_crx, good->id()); |
UpdateExtension(good_crx, path, FAILED_SILENTLY); |
} |
@@ -2134,8 +2112,7 @@ TEST_F(ExtensionServiceTest, UpdateExtensionPreservesState) { |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ("1.0.0.0", good->VersionString()); |
ASSERT_EQ(good_crx, good->id()); |
@@ -2147,7 +2124,7 @@ TEST_F(ExtensionServiceTest, UpdateExtensionPreservesState) { |
path = data_dir_.AppendASCII("good2.crx"); |
UpdateExtension(good_crx, path, INSTALLED); |
ASSERT_EQ(1u, service_->disabled_extensions()->size()); |
- const Extension* good2 = service_->disabled_extensions()->at(0); |
+ const Extension* good2 = service_->GetExtensionById(good_crx, true); |
ASSERT_EQ("1.0.0.1", good2->version()->GetString()); |
EXPECT_TRUE(service_->IsIncognitoEnabled(good2->id())); |
} |
@@ -2158,8 +2135,7 @@ TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ("1.0.0.0", good->VersionString()); |
ASSERT_EQ(good_crx, good->id()); |
@@ -2169,7 +2145,7 @@ TEST_F(ExtensionServiceTest, UpdateExtensionPreservesLocation) { |
path = data_dir_.AppendASCII("good2.crx"); |
UpdateExtension(good_crx, path, ENABLED); |
- const Extension* good2 = service_->extensions()->at(0); |
+ const Extension* good2 = service_->GetExtensionById(good_crx, false); |
ASSERT_EQ("1.0.0.1", good2->version()->GetString()); |
EXPECT_EQ(good2->location(), Extension::EXTERNAL_PREF); |
} |
@@ -2428,9 +2404,8 @@ TEST_F(ExtensionServiceTest, UpdatePendingExtensionAlreadyInstalled) { |
InitializeEmptyExtensionService(); |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- const Extension* good = service_->extensions()->at(0); |
EXPECT_FALSE(good->is_theme()); |
@@ -2478,8 +2453,7 @@ TEST_F(ExtensionServiceTest, UnloadBlacklistedExtension) { |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* good = service_->extensions()->at(0); |
+ const Extension* good = InstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(good_crx, good->id()); |
UpdateExtension(good_crx, path, FAILED_SILENTLY); |
@@ -2516,8 +2490,7 @@ TEST_F(ExtensionServiceTest, BlacklistedExtensionWillNotInstall) { |
// We can not install good_crx. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_FAILED); |
EXPECT_EQ(0u, service_->extensions()->size()); |
ValidateBooleanPref(good_crx, "blacklist", true); |
} |
@@ -2545,7 +2518,6 @@ TEST_F(ExtensionServiceTest, WillNotLoadBlacklistedExtensionsFromDirectory) { |
// Load extensions. |
service_->Init(); |
- loop_.RunAllPending(); |
std::vector<std::string> errors = GetErrors(); |
for (std::vector<std::string>::iterator err = errors.begin(); |
@@ -2554,8 +2526,7 @@ TEST_F(ExtensionServiceTest, WillNotLoadBlacklistedExtensionsFromDirectory) { |
} |
ASSERT_EQ(2u, loaded_.size()); |
- EXPECT_NE(std::string(good1), loaded_[0]->id()); |
- EXPECT_NE(std::string(good1), loaded_[1]->id()); |
+ EXPECT_FALSE(service_->GetExtensionById(good1, true)); |
} |
// Will not install extension blacklisted by policy. |
@@ -2572,8 +2543,7 @@ TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { |
// Blacklist prevents us from installing good_crx. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_FAILED); |
EXPECT_EQ(0u, service_->extensions()->size()); |
// Now whitelist this particular extension. |
@@ -2584,10 +2554,8 @@ TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { |
whitelist->Append(Value::CreateStringValue(good_crx)); |
} |
- |
// Ensure we can now install good_crx. |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(1u, service_->extensions()->size()); |
} |
@@ -2597,8 +2565,7 @@ TEST_F(ExtensionServiceTest, BlacklistedByPolicyRemovedIfRunning) { |
// Install good_crx. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- StartCrxInstall(path); |
- loop_.RunAllPending(); |
+ InstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(1u, service_->extensions()->size()); |
{ // Scope for pref update notification. |
@@ -2643,12 +2610,12 @@ TEST_F(ExtensionServiceTest, ComponentExtensionWhitelisted) { |
// Extension should be installed despite blacklist. |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(good0, service_->extensions()->at(0)->id()); |
+ EXPECT_TRUE(service_->GetExtensionById(good0, false)); |
// Poke external providers and make sure the extension is still present. |
service_->CheckForExternalUpdates(); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(good0, service_->extensions()->at(0)->id()); |
+ EXPECT_TRUE(service_->GetExtensionById(good0, false)); |
// Extension should not be uninstalled on blacklist changes. |
{ |
@@ -2659,7 +2626,7 @@ TEST_F(ExtensionServiceTest, ComponentExtensionWhitelisted) { |
} |
loop_.RunAllPending(); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(good0, service_->extensions()->at(0)->id()); |
+ EXPECT_TRUE(service_->GetExtensionById(good0, false)); |
} |
// Tests that policy-installed extensions are not blacklisted by policy. |
@@ -2689,7 +2656,7 @@ TEST_F(ExtensionServiceTest, PolicyInstalledExtensionsWhitelisted) { |
// Extension should be installed despite blacklist. |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(good_crx, service_->extensions()->at(0)->id()); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
// Blacklist update should not uninstall the extension. |
{ |
@@ -2700,32 +2667,32 @@ TEST_F(ExtensionServiceTest, PolicyInstalledExtensionsWhitelisted) { |
} |
loop_.RunAllPending(); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(good_crx, service_->extensions()->at(0)->id()); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
} |
// Tests disabling extensions |
TEST_F(ExtensionServiceTest, DisableExtension) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
EXPECT_FALSE(service_->extensions()->empty()); |
- EXPECT_TRUE(service_->GetExtensionById(good_crx, true) != NULL); |
- EXPECT_TRUE(service_->GetExtensionById(good_crx, false) != NULL); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, false)); |
EXPECT_TRUE(service_->disabled_extensions()->empty()); |
// Disable it. |
service_->DisableExtension(good_crx); |
EXPECT_TRUE(service_->extensions()->empty()); |
- EXPECT_TRUE(service_->GetExtensionById(good_crx, true) != NULL); |
- EXPECT_FALSE(service_->GetExtensionById(good_crx, false) != NULL); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
+ EXPECT_FALSE(service_->GetExtensionById(good_crx, false)); |
EXPECT_FALSE(service_->disabled_extensions()->empty()); |
} |
TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
TerminateExtension(good_crx); |
EXPECT_TRUE(service_->GetTerminatedExtension(good_crx)); |
@@ -2733,7 +2700,7 @@ TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { |
service_->DisableExtension(good_crx); |
EXPECT_FALSE(service_->GetTerminatedExtension(good_crx)); |
- EXPECT_TRUE(service_->GetExtensionById(good_crx, true) != NULL); |
+ EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
EXPECT_FALSE(service_->disabled_extensions()->empty()); |
} |
@@ -2741,9 +2708,8 @@ TEST_F(ExtensionServiceTest, DisableTerminatedExtension) { |
TEST_F(ExtensionServiceTest, DisableAllExtensions) { |
InitializeEmptyExtensionService(); |
- |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
EXPECT_EQ(1u, service_->extensions()->size()); |
EXPECT_EQ(0u, service_->disabled_extensions()->size()); |
@@ -2772,13 +2738,13 @@ TEST_F(ExtensionServiceTest, DisableAllExtensions) { |
EXPECT_EQ(0u, service_->disabled_extensions()->size()); |
} |
-// Tests reloading extensions |
+// Tests reloading extensions. |
TEST_F(ExtensionServiceTest, ReloadExtensions) { |
InitializeEmptyExtensionService(); |
// Simple extension that should install without error. |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
const char* extension_id = good_crx; |
service_->DisableExtension(extension_id); |
@@ -2816,13 +2782,13 @@ TEST_F(ExtensionServiceTest, ReloadExtensions) { |
#endif |
TEST_F(ExtensionServiceTest, MAYBE_UninstallExtension) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
UninstallExtension(good_crx, false); |
} |
TEST_F(ExtensionServiceTest, UninstallTerminatedExtension) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
TerminateExtension(good_crx); |
UninstallExtension(good_crx, false); |
} |
@@ -2830,13 +2796,13 @@ TEST_F(ExtensionServiceTest, UninstallTerminatedExtension) { |
// Tests the uninstaller helper. |
TEST_F(ExtensionServiceTest, UninstallExtensionHelper) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
UninstallExtension(good_crx, true); |
} |
TEST_F(ExtensionServiceTest, UninstallExtensionHelperTerminated) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
TerminateExtension(good_crx); |
UninstallExtension(good_crx, true); |
} |
@@ -2873,8 +2839,7 @@ TEST_F(ExtensionServiceTest, ClearExtensionData) { |
// Load a test extension. |
FilePath path = data_dir_; |
path = path.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
- const Extension* extension = service_->GetExtensionById(good_crx, false); |
+ const Extension* extension = InstallCRX(path, INSTALL_NEW); |
ASSERT_TRUE(extension); |
GURL ext_url(extension->url()); |
string16 origin_id = |
@@ -2962,10 +2927,10 @@ TEST_F(ExtensionServiceTest, ClearAppData) { |
int pref_count = 0; |
// Install app1 with unlimited storage. |
- PackAndInstallCrx(data_dir_.AppendASCII("app1"), true); |
+ const Extension* extension = |
+ PackAndInstallCRX(data_dir_.AppendASCII("app1"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- const Extension* extension = service_->extensions()->at(0); |
const std::string id1 = extension->id(); |
EXPECT_TRUE(extension->HasAPIPermission( |
ExtensionAPIPermission::kUnlimitedStorage)); |
@@ -2976,10 +2941,9 @@ TEST_F(ExtensionServiceTest, ClearAppData) { |
webkit_database::DatabaseUtil::GetOriginIdentifier(origin1); |
// Install app2 from the same origin with unlimited storage. |
- PackAndInstallCrx(data_dir_.AppendASCII("app2"), true); |
+ extension = PackAndInstallCRX(data_dir_.AppendASCII("app2"), INSTALL_NEW); |
ValidatePrefKeyCount(++pref_count); |
ASSERT_EQ(2u, service_->extensions()->size()); |
- extension = service_->extensions()->at(1); |
const std::string id2 = extension->id(); |
EXPECT_TRUE(extension->HasAPIPermission( |
ExtensionAPIPermission::kUnlimitedStorage)); |
@@ -3124,7 +3088,6 @@ TEST_F(ExtensionServiceTest, LoadExtension) { |
TEST_F(ExtensionServiceTest, GenerateID) { |
InitializeEmptyExtensionService(); |
- |
FilePath no_id_ext = data_dir_.AppendASCII("no_id"); |
extensions::UnpackedInstaller::Create(service_)->Load(no_id_ext); |
loop_.RunAllPending(); |
@@ -3148,7 +3111,6 @@ void ExtensionServiceTest::TestExternalProvider( |
MockExtensionProvider* provider, Extension::Location location) { |
// Verify that starting with no providers loads no extensions. |
service_->Init(); |
- loop_.RunAllPending(); |
ASSERT_EQ(0u, loaded_.size()); |
provider->set_visit_count(0); |
@@ -3358,7 +3320,6 @@ TEST_F(ExtensionServiceTest, ExternalUninstall) { |
set_extensions_enabled(false); |
service_->Init(); |
- loop_.RunAllPending(); |
ASSERT_EQ(0u, GetErrors().size()); |
ASSERT_EQ(0u, loaded_.size()); |
@@ -3383,7 +3344,6 @@ TEST_F(ExtensionServiceTest, MultipleExternalUpdateCheck) { |
// Verify that starting with no providers loads no extensions. |
service_->Init(); |
- loop_.RunAllPending(); |
ASSERT_EQ(0u, loaded_.size()); |
// Start two checks for updates. |
@@ -3584,7 +3544,6 @@ TEST_F(ExtensionServiceTest, LoadAndRelocalizeExtensions) { |
InitializeInstalledExtensionService(pref_path, source_install_dir); |
service_->Init(); |
- loop_.RunAllPending(); |
ASSERT_EQ(3u, loaded_.size()); |
@@ -3766,11 +3725,11 @@ TEST_F(ExtensionServiceTest, ComponentExtensions) { |
ValidatePrefKeyCount(0); |
// Reload all extensions, and make sure it comes back. |
- std::string extension_id = service_->extensions()->at(0)->id(); |
+ std::string extension_id = (*service_->extensions()->begin())->id(); |
loaded_.clear(); |
service_->ReloadExtensions(); |
ASSERT_EQ(1u, service_->extensions()->size()); |
- EXPECT_EQ(extension_id, service_->extensions()->at(0)->id()); |
+ EXPECT_EQ(extension_id, (*service_->extensions()->begin())->id()); |
} |
namespace { |
@@ -3785,7 +3744,7 @@ namespace { |
TEST_F(ExtensionServiceTest, GetSyncData) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
const Extension* extension = service_->GetInstalledExtension(good_crx); |
ASSERT_TRUE(extension); |
@@ -3807,7 +3766,7 @@ TEST_F(ExtensionServiceTest, GetSyncData) { |
TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
TerminateExtension(good_crx); |
const Extension* extension = service_->GetInstalledExtension(good_crx); |
ASSERT_TRUE(extension); |
@@ -3830,7 +3789,7 @@ TEST_F(ExtensionServiceTest, GetSyncDataTerminated) { |
TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
const Extension* extension = service_->GetInstalledExtension(good_crx); |
ASSERT_TRUE(extension); |
@@ -3844,7 +3803,7 @@ TEST_F(ExtensionServiceTest, GetSyncDataFilter) { |
TEST_F(ExtensionServiceTest, GetSyncDataUserSettings) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
const Extension* extension = service_->GetInstalledExtension(good_crx); |
ASSERT_TRUE(extension); |
@@ -3890,10 +3849,10 @@ TEST_F(ExtensionServiceTest, GetSyncDataUserSettings) { |
TEST_F(ExtensionServiceTest, GetSyncDataList) { |
InitializeEmptyExtensionService(); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
- InstallCrx(data_dir_.AppendASCII("page_action.crx"), true); |
- InstallCrx(data_dir_.AppendASCII("theme.crx"), true); |
- InstallCrx(data_dir_.AppendASCII("theme2.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
+ InstallCRX(data_dir_.AppendASCII("page_action.crx"), INSTALL_NEW); |
+ InstallCRX(data_dir_.AppendASCII("theme.crx"), INSTALL_NEW); |
+ InstallCRX(data_dir_.AppendASCII("theme2.crx"), INSTALL_NEW); |
TestSyncProcessorStub processor; |
service_->MergeDataAndStartSyncing(syncable::APPS, SyncDataList(), |
@@ -3930,7 +3889,7 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataUninstall) { |
// Install the extension. |
FilePath extension_path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(extension_path, true); |
+ InstallCRX(extension_path, INSTALL_NEW); |
EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
// Should uninstall the extension. |
@@ -3947,7 +3906,7 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataWrongType) { |
// Install the extension. |
FilePath extension_path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(extension_path, true); |
+ InstallCRX(extension_path, INSTALL_NEW); |
EXPECT_TRUE(service_->GetExtensionById(good_crx, true)); |
sync_pb::EntitySpecifics specifics; |
@@ -3991,7 +3950,7 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataSettings) { |
service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
&processor); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
@@ -4046,7 +4005,7 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataTerminatedExtension) { |
service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
&processor); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
TerminateExtension(good_crx); |
EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
@@ -4077,7 +4036,7 @@ TEST_F(ExtensionServiceTest, ProcessSyncDataVersionCheck) { |
service_->MergeDataAndStartSyncing(syncable::EXTENSIONS, SyncDataList(), |
&processor); |
- InstallCrx(data_dir_.AppendASCII("good.crx"), true); |
+ InstallCRX(data_dir_.AppendASCII("good.crx"), INSTALL_NEW); |
EXPECT_TRUE(service_->IsExtensionEnabled(good_crx)); |
EXPECT_FALSE(service_->IsIncognitoEnabled(good_crx)); |
@@ -4169,7 +4128,7 @@ TEST_F(ExtensionServiceTest, HigherPriorityInstall) { |
InitializeEmptyExtensionService(); |
FilePath path = data_dir_.AppendASCII("good.crx"); |
- InstallCrx(path, true); |
+ InstallCRX(path, INSTALL_NEW); |
ValidatePrefKeyCount(1u); |
ValidateIntegerPref(good_crx, "state", Extension::ENABLED); |
ValidateIntegerPref(good_crx, "location", Extension::INTERNAL); |
@@ -4294,7 +4253,7 @@ TEST_F(ExtensionSourcePriorityTest, PendingExternalFileOverSync) { |
ASSERT_EQ(Extension::EXTERNAL_PREF, GetPendingLocation()); |
ASSERT_FALSE(IsCrxInstalled()); |
- WaitForCrxInstall(crx_path_, true); |
+ WaitForCrxInstall(crx_path_, INSTALL_NEW); |
ASSERT_TRUE(IsCrxInstalled()); |
} |
@@ -4337,7 +4296,7 @@ TEST_F(ExtensionSourcePriorityTest, InstallExternalBlocksSyncRequest) { |
ASSERT_FALSE(AddPendingSyncInstall()); |
// Wait for the external source to install. |
- WaitForCrxInstall(crx_path_, true); |
+ WaitForCrxInstall(crx_path_, INSTALL_NEW); |
ASSERT_TRUE(IsCrxInstalled()); |
// Now that the extension is installed, sync request should fail |