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

Unified Diff: chrome/browser/extensions/extension_management_browsertest.cc

Issue 8725013: Improve ExtensionBrowserTest. Part of moving ExtensionService to use ExtensionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix tests Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_management_browsertest.cc
diff --git a/chrome/browser/extensions/extension_management_browsertest.cc b/chrome/browser/extensions/extension_management_browsertest.cc
index 41031e128087f6a2e7538f4f63b6af5f424c2462..221f347ec3bdf45a7a037cb51c012055212bce8e 100644
--- a/chrome/browser/extensions/extension_management_browsertest.cc
+++ b/chrome/browser/extensions/extension_management_browsertest.cc
@@ -68,17 +68,18 @@ class ExtensionManagementTest : public ExtensionBrowserTest {
size_t size_before = service->extensions()->size();
// Install the initial version, which should happen just fine.
- if (!InstallExtension(
- test_data_dir_.AppendASCII("permissions-low-v1.crx"), 1))
+ const Extension* extension = InstallExtension(
+ test_data_dir_.AppendASCII("permissions-low-v1.crx"), 1);
+ if (!extension)
+ return false;
+ if (service->extensions()->size() != size_before + 1)
return false;
// Upgrade to a version that wants more permissions. We should disable the
// extension and prompt the user to reenable.
- if (service->extensions()->size() != size_before + 1)
- return false;
- if (!UpdateExtension(
- service->extensions()->at(size_before)->id(),
- test_data_dir_.AppendASCII("permissions-high-v2.crx"), -1))
+ if (UpdateExtension(
+ extension->id(),
+ test_data_dir_.AppendASCII("permissions-high-v2.crx"), -1))
return false;
EXPECT_EQ(size_before, service->extensions()->size());
if (service->disabled_extensions()->size() != 1u)
@@ -96,56 +97,55 @@ class ExtensionManagementTest : public ExtensionBrowserTest {
// Tests that installing the same version overwrites.
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, MAYBE_InstallSameVersion) {
- ExtensionService* service = browser()->profile()->GetExtensionService();
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(InstallExtension(
- test_data_dir_.AppendASCII("install/install.crx"), 1));
- FilePath old_path = service->extensions()->back()->path();
+ const Extension* extension = InstallExtension(
+ test_data_dir_.AppendASCII("install/install.crx"), 1);
+ ASSERT_TRUE(extension);
+ FilePath old_path = extension->path();
// Install an extension with the same version. The previous install should be
// overwritten.
- ASSERT_TRUE(InstallExtension(
- test_data_dir_.AppendASCII("install/install_same_version.crx"), 0));
- FilePath new_path = service->extensions()->back()->path();
+ extension = InstallExtension(
+ test_data_dir_.AppendASCII("install/install_same_version.crx"), 0);
+ ASSERT_TRUE(extension);
+ FilePath new_path = extension->path();
- EXPECT_FALSE(IsExtensionAtVersion(service->extensions()->at(size_before),
- "1.0"));
+ EXPECT_FALSE(IsExtensionAtVersion(extension, "1.0"));
EXPECT_NE(old_path.value(), new_path.value());
}
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, InstallOlderVersion) {
- ExtensionService* service = browser()->profile()->GetExtensionService();
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(InstallExtension(
- test_data_dir_.AppendASCII("install/install.crx"), 1));
- ASSERT_TRUE(InstallExtension(
+ const Extension* extension = InstallExtension(
+ test_data_dir_.AppendASCII("install/install.crx"), 1);
+ ASSERT_TRUE(extension);
+ ASSERT_FALSE(InstallExtension(
test_data_dir_.AppendASCII("install/install_older_version.crx"), 0));
- EXPECT_TRUE(IsExtensionAtVersion(service->extensions()->at(size_before),
- "1.0"));
+ EXPECT_TRUE(IsExtensionAtVersion(extension, "1.0"));
}
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, InstallThenCancel) {
- ExtensionService* service = browser()->profile()->GetExtensionService();
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(InstallExtension(
- test_data_dir_.AppendASCII("install/install.crx"), 1));
+ const Extension* extension = InstallExtension(
+ test_data_dir_.AppendASCII("install/install.crx"), 1);
+ ASSERT_TRUE(extension);
// Cancel this install.
- StartInstallButCancel(test_data_dir_.AppendASCII("install/install_v2.crx"));
- EXPECT_TRUE(IsExtensionAtVersion(service->extensions()->at(size_before),
- "1.0"));
+ ASSERT_FALSE(StartInstallButCancel(
+ test_data_dir_.AppendASCII("install/install_v2.crx")));
+ EXPECT_TRUE(IsExtensionAtVersion(extension, "1.0"));
}
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, InstallRequiresConfirm) {
- // Installing the extension without an auto confirming UI should fail
- // since good.crx has permissions that require approval.
- ASSERT_TRUE(InstallExtension(test_data_dir_.AppendASCII("good.crx"), 0));
- UninstallExtension("ldnnhddmnhbkjipkidpdiheffobcpfmf");
+ // Installing the extension without an auto confirming UI should result in
+ // it being disabled, since good.crx has permissions that require approval.
+ ExtensionService* service = browser()->profile()->GetExtensionService();
+ std::string id = "ldnnhddmnhbkjipkidpdiheffobcpfmf";
+ ASSERT_FALSE(InstallExtension(test_data_dir_.AppendASCII("good.crx"), 0));
+ ASSERT_TRUE(service->GetExtensionById(id, true));
+ UninstallExtension(id);
// And the install should succeed when the permissions are accepted.
ASSERT_TRUE(InstallExtensionWithUIAutoConfirm(
test_data_dir_.AppendASCII("good.crx"), 1, browser()->profile()));
- UninstallExtension("ldnnhddmnhbkjipkidpdiheffobcpfmf");
+ UninstallExtension(id);
}
// Tests the process of updating an extension to one that requires higher
@@ -156,7 +156,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, UpdatePermissions) {
const size_t size_before = service->extensions()->size();
// Now try reenabling it.
- service->EnableExtension(service->disabled_extensions()->at(0)->id());
+ const std::string id = (*service->disabled_extensions()->begin())->id();
+ service->EnableExtension(id);
EXPECT_EQ(size_before + 1, service->extensions()->size());
EXPECT_EQ(0u, service->disabled_extensions()->size());
}
@@ -173,7 +174,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, UpdatePermissionsAndUninstall) {
// Uninstall, and check that the infobar went away.
ExtensionService* service = browser()->profile()->GetExtensionService();
- std::string id = service->disabled_extensions()->at(0)->id();
+ std::string id = (*service->disabled_extensions()->begin())->id();
UninstallExtension(id);
ASSERT_EQ(0U, infobar_helper->infobar_count());
@@ -194,7 +195,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, UninstallDisabled) {
const size_t size_before = service->extensions()->size();
// Now try uninstalling it.
- UninstallExtension(service->disabled_extensions()->at(0)->id());
+ UninstallExtension((*service->disabled_extensions()->begin())->id());
EXPECT_EQ(size_before, service->extensions()->size());
EXPECT_EQ(0u, service->disabled_extensions()->size());
}
@@ -314,13 +315,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, AutoUpdate) {
ExtensionService* service = browser()->profile()->GetExtensionService();
const size_t size_before = service->extensions()->size();
ASSERT_TRUE(service->disabled_extensions()->empty());
- ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v1.crx"), 1));
+ const Extension* extension =
+ InstallExtension(basedir.AppendASCII("v1.crx"), 1);
+ ASSERT_TRUE(extension);
listener1.WaitUntilSatisfied();
- const ExtensionList* extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf",
- extensions->at(size_before)->id());
- ASSERT_EQ("1.0", extensions->at(size_before)->VersionString());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf", extension->id());
+ ASSERT_EQ("1.0", extension->VersionString());
// We don't want autoupdate blacklist checks.
service->updater()->set_blacklist_checks_enabled(false);
@@ -330,11 +331,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, AutoUpdate) {
service->updater()->CheckNow();
ASSERT_TRUE(WaitForExtensionInstall());
listener2.WaitUntilSatisfied();
- extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf",
- extensions->at(size_before)->id());
- ASSERT_EQ("2.0", extensions->at(size_before)->VersionString());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ extension = service->GetExtensionById(
+ "ogjcoiohnmldgjemafoockdghcjciccf", false);
+ ASSERT_TRUE(extension);
+ ASSERT_EQ("2.0", extension->VersionString());
ASSERT_TRUE(notification_listener.started());
ASSERT_TRUE(notification_listener.finished());
ASSERT_TRUE(ContainsKey(notification_listener.updates(),
@@ -356,11 +357,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, AutoUpdate) {
"ogjcoiohnmldgjemafoockdghcjciccf"));
// Make sure the extension state is the same as before.
- extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf",
- extensions->at(size_before)->id());
- ASSERT_EQ("2.0", extensions->at(size_before)->VersionString());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ extension = service->GetExtensionById(
+ "ogjcoiohnmldgjemafoockdghcjciccf", false);
+ ASSERT_TRUE(extension);
+ ASSERT_EQ("2.0", extension->VersionString());
}
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalUrlUpdate) {
@@ -398,10 +399,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalUrlUpdate) {
// Run autoupdate and make sure version 2 of the extension was installed.
service->updater()->CheckNow();
ASSERT_TRUE(WaitForExtensionInstall());
- const ExtensionList* extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- ASSERT_EQ(kExtensionId, extensions->at(size_before)->id());
- ASSERT_EQ("2.0", extensions->at(size_before)->VersionString());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ const Extension* extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
+ ASSERT_EQ("2.0", extension->VersionString());
// Uninstalling the extension should set a pref that keeps the extension from
// being installed again the next time external_extensions.json is read.
@@ -483,14 +484,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
// Check if the extension got installed.
ASSERT_TRUE(WaitForExtensionInstall());
- const ExtensionList* extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- ASSERT_EQ(kExtensionId, extensions->at(size_before)->id());
- EXPECT_EQ("2.0", extensions->at(size_before)->VersionString());
- EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD,
- extensions->at(size_before)->location());
-
- // Try to disable and unstall the extension which should fail.
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ const Extension* extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
+ ASSERT_EQ("2.0", extension->VersionString());
+ EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, extension->location());
+
+ // Try to disable and uninstall the extension which should fail.
service->DisableExtension(kExtensionId);
EXPECT_EQ(size_before + 1, service->extensions()->size());
EXPECT_EQ(0u, service->disabled_extensions()->size());
@@ -498,7 +498,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
EXPECT_EQ(size_before + 1, service->extensions()->size());
EXPECT_EQ(0u, service->disabled_extensions()->size());
- // Now try to disable it through the management api.
+ // Now try to disable it through the management api, again failing.
ExtensionTestMessageListener listener1("ready", false);
ASSERT_TRUE(LoadExtension(
test_data_dir_.AppendASCII("management/uninstall_extension")));
@@ -510,10 +510,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, ExternalPolicyRefresh) {
{
prefs->ClearPref(prefs::kExtensionInstallForceList);
}
- EXPECT_EQ(size_before + 1, extensions->size());
- ExtensionList::const_iterator i;
- for (i = extensions->begin(); i != extensions->end(); ++i)
- EXPECT_NE(kExtensionId, (*i)->id());
+ EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_FALSE(service->GetExtensionById(kExtensionId, true));
}
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, PolicyOverridesUserInstall) {
@@ -541,10 +539,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, PolicyOverridesUserInstall) {
// User install of the extension.
ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
- const ExtensionList* extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- const Extension* extension = extensions->at(size_before);
- ASSERT_EQ(kExtensionId, extension->id());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ const Extension* extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
EXPECT_EQ(Extension::INTERNAL, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
@@ -557,10 +554,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, PolicyOverridesUserInstall) {
std::string(kExtensionId) + ";http://localhost/autoupdate/manifest"));
}
ASSERT_TRUE(WaitForExtensionInstall());
- extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- extension = extensions->at(size_before);
- ASSERT_EQ(kExtensionId, extension->id());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
@@ -574,24 +570,23 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, PolicyOverridesUserInstall) {
ASSERT_TRUE(!forcelist->empty());
forcelist->Clear();
}
- extensions = service->extensions();
- ASSERT_EQ(size_before, extensions->size());
+ ASSERT_EQ(size_before, service->extensions()->size());
extension = service->GetExtensionById(kExtensionId, true);
- EXPECT_TRUE(extension == NULL);
+ EXPECT_FALSE(extension);
// User install again, but have it disabled too before setting the policy.
ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
- extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- extension = extensions->at(size_before);
- ASSERT_EQ(kExtensionId, extension->id());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
EXPECT_EQ(Extension::INTERNAL, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
EXPECT_TRUE(service->disabled_extensions()->empty());
service->DisableExtension(kExtensionId);
EXPECT_EQ(1u, service->disabled_extensions()->size());
- EXPECT_EQ(kExtensionId, service->disabled_extensions()->at(0)->id());
+ extension = service->GetExtensionById(kExtensionId, true);
+ EXPECT_TRUE(extension);
EXPECT_FALSE(service->IsExtensionEnabled(kExtensionId));
// Install the policy again. It should overwrite the extension's location,
@@ -604,10 +599,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, PolicyOverridesUserInstall) {
std::string(kExtensionId) + ";http://localhost/autoupdate/manifest"));
}
ASSERT_TRUE(WaitForExtensionInstall());
- extensions = service->extensions();
- ASSERT_EQ(size_before + 1, extensions->size());
- extension = extensions->at(size_before);
- ASSERT_EQ(kExtensionId, extension->id());
+ ASSERT_EQ(size_before + 1, service->extensions()->size());
+ extension = service->GetExtensionById(kExtensionId, false);
+ ASSERT_TRUE(extension);
EXPECT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
EXPECT_TRUE(service->disabled_extensions()->empty());

Powered by Google App Engine
This is Rietveld 408576698