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

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

Issue 160311: Pull CrxInstaller out of ExtensionsService. (Closed)
Patch Set: Fix leak of SandboxedExtensionUnpacker Created 11 years, 5 months 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/extensions_service_unittest.cc
diff --git a/chrome/browser/extensions/extensions_service_unittest.cc b/chrome/browser/extensions/extensions_service_unittest.cc
index 4c3f587ab33811ae8beac7b199aae45e0af16482..9480ccce4a63532b7adb98cb18feb1253f327441 100644
--- a/chrome/browser/extensions/extensions_service_unittest.cc
+++ b/chrome/browser/extensions/extensions_service_unittest.cc
@@ -99,7 +99,7 @@ class MockExtensionProvider : public ExternalExtensionProvider {
version.reset(Version::GetVersionFromString(i->second.first));
visitor->OnExternalExtensionFound(
- i->first, version.get(), i->second.second);
+ i->first, version.get(), i->second.second, location_);
}
}
@@ -160,7 +160,8 @@ class MockProviderVisitor : public ExternalExtensionProvider::Visitor {
virtual void OnExternalExtensionFound(const std::string& id,
const Version* version,
- const FilePath& path) {
+ const FilePath& path,
+ Extension::Location unused) {
++ids_found_;
DictionaryValue* pref;
// This tests is to make sure that the provider only notifies us of the
@@ -217,7 +218,7 @@ class ExtensionsServiceTest
&loop_,
&loop_,
false);
- service_->SetExtensionsEnabled(true);
+ service_->set_extensions_enabled(true);
service_->set_show_extensions_prompts(false);
// When we start up, we want to make sure there is no external provider,
@@ -308,8 +309,8 @@ class ExtensionsServiceTest
}
}
- void SetExtensionsEnabled(bool enabled) {
- service_->SetExtensionsEnabled(enabled);
+ void set_extensions_enabled(bool enabled) {
+ service_->set_extensions_enabled(enabled);
}
void SetMockExternalProvider(Extension::Location location,
@@ -318,28 +319,6 @@ class ExtensionsServiceTest
}
protected:
- // A class to record whether a ExtensionInstallCallback has fired, and
- // to remember the args it was called with.
- class CallbackRecorder {
- public:
- CallbackRecorder() : was_called_(false), path_(NULL), extension_(NULL) {}
-
- void CallbackFunc(const FilePath& path, Extension* extension) {
- was_called_ = true;
- path_.reset(new FilePath(path));
- extension_ = extension;
- }
-
- bool was_called() { return was_called_; }
- const FilePath* path() { return path_.get(); }
- Extension* extension() { return extension_; }
-
- private:
- bool was_called_;
- scoped_ptr<FilePath> path_;
- Extension* extension_;
- };
-
void InstallExtension(const FilePath& path,
bool should_succeed) {
ASSERT_TRUE(file_util::PathExists(path));
@@ -373,40 +352,24 @@ class ExtensionsServiceTest
}
void UpdateExtension(const std::string& id, const FilePath& path,
- bool should_succeed, bool use_callback,
- bool expect_report_on_failure) {
+ bool should_succeed, bool expect_report_on_failure) {
ASSERT_TRUE(file_util::PathExists(path));
- CallbackRecorder callback_recorder;
- ExtensionInstallCallback* callback = NULL;
- if (use_callback) {
- callback = NewCallback(&callback_recorder,
- &CallbackRecorder::CallbackFunc);
- }
-
- service_->UpdateExtension(id, path, false, callback);
+ service_->UpdateExtension(id, path);
loop_.RunAllPending();
std::vector<std::string> errors = GetErrors();
- if (use_callback) {
- EXPECT_TRUE(callback_recorder.was_called());
- EXPECT_TRUE(path == *callback_recorder.path());
- }
-
if (should_succeed) {
EXPECT_EQ(0u, errors.size()) << path.value();
EXPECT_EQ(1u, service_->extensions()->size());
- if (use_callback) {
- EXPECT_EQ(service_->extensions()->at(0), callback_recorder.extension());
- }
} else {
if (expect_report_on_failure) {
EXPECT_EQ(1u, errors.size()) << path.value();
}
- if (use_callback) {
- EXPECT_EQ(NULL, callback_recorder.extension());
- }
}
+
+ // Update() should delete the temporary input file.
+ EXPECT_FALSE(file_util::PathExists(path));
}
void ValidatePrefKeyCount(size_t count) {
@@ -676,10 +639,10 @@ TEST_F(ExtensionsServiceTest, InstallExtension) {
extensions_path = extensions_path.AppendASCII("extensions");
// Extensions not enabled.
- SetExtensionsEnabled(false);
+ set_extensions_enabled(false);
FilePath path = extensions_path.AppendASCII("good.crx");
InstallExtension(path, false);
- SetExtensionsEnabled(true);
+ set_extensions_enabled(true);
ValidatePrefKeyCount(0);
@@ -801,7 +764,7 @@ TEST_F(ExtensionsServiceTest, InstallTheme) {
// A theme when extensions are disabled. Themes can be installed, even when
// extensions are disabled.
- SetExtensionsEnabled(false);
+ set_extensions_enabled(false);
path = extensions_path.AppendASCII("theme2.crx");
InstallExtension(path, true);
ValidatePrefKeyCount(++pref_count);
@@ -810,7 +773,7 @@ TEST_F(ExtensionsServiceTest, InstallTheme) {
// A theme with extension elements. Themes cannot have extension elements so
// this test should fail.
- SetExtensionsEnabled(true);
+ set_extensions_enabled(true);
path = extensions_path.AppendASCII("theme_with_extension.crx");
InstallExtension(path, false);
ValidatePrefKeyCount(pref_count);
@@ -925,26 +888,7 @@ TEST_F(ExtensionsServiceTest, UpdateExtension) {
ASSERT_EQ(good_crx, good->id());
path = extensions_path.AppendASCII("good2.crx");
- UpdateExtension(good_crx, path, true, true, true);
- ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString());
-}
-
-// Test doing an update without passing a completion callback
-TEST_F(ExtensionsServiceTest, UpdateWithoutCallback) {
- InitializeEmptyExtensionsService();
- FilePath extensions_path;
- ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
- extensions_path = extensions_path.AppendASCII("extensions");
-
- FilePath path = extensions_path.AppendASCII("good.crx");
-
- InstallExtension(path, true);
- Extension* good = service_->extensions()->at(0);
- ASSERT_EQ("1.0.0.0", good->VersionString());
- ASSERT_EQ(good_crx, good->id());
-
- path = extensions_path.AppendASCII("good2.crx");
- UpdateExtension(good_crx, path, true, false, true);
+ UpdateExtension(good_crx, path, true, true);
ASSERT_EQ("1.0.0.1", loaded_[0]->version()->GetString());
}
@@ -956,7 +900,7 @@ TEST_F(ExtensionsServiceTest, UpdateNotInstalledExtension) {
extensions_path = extensions_path.AppendASCII("extensions");
FilePath path = extensions_path.AppendASCII("good.crx");
- service_->UpdateExtension(good_crx, path, false, NULL);
+ service_->UpdateExtension(good_crx, path);
loop_.RunAllPending();
ASSERT_EQ(0u, service_->extensions()->size());
@@ -980,7 +924,7 @@ TEST_F(ExtensionsServiceTest, UpdateWillNotDowngrade) {
// Change path from good2.crx -> good.crx
path = extensions_path.AppendASCII("good.crx");
- UpdateExtension(good_crx, path, false, true, true);
+ UpdateExtension(good_crx, path, false, true);
ASSERT_EQ("1.0.0.1", service_->extensions()->at(0)->VersionString());
}
@@ -996,7 +940,7 @@ TEST_F(ExtensionsServiceTest, UpdateToSameVersionIsNoop) {
InstallExtension(path, true);
Extension* good = service_->extensions()->at(0);
ASSERT_EQ(good_crx, good->id());
- UpdateExtension(good_crx, path, false, true, false);
+ UpdateExtension(good_crx, path, false, false);
}
// Tests uninstalling normal extensions
@@ -1135,7 +1079,7 @@ TEST_F(ExtensionsServiceTest, GenerateID) {
TEST_F(ExtensionsServiceTest, ExternalInstallRegistry) {
// This should all work, even when normal extension installation is disabled.
InitializeEmptyExtensionsService();
- SetExtensionsEnabled(false);
+ set_extensions_enabled(false);
// Verify that starting with no providers loads no extensions.
service_->Init();
loop_.RunAllPending();
@@ -1340,7 +1284,7 @@ TEST_F(ExtensionsServiceTest, ExternalInstallPref) {
// It should still work if extensions are disabled (disableness doesn't
// apply to externally registered extensions).
- SetExtensionsEnabled(false);
+ set_extensions_enabled(false);
pref_provider->UpdateOrAddExtension(good_crx, "1.0", source_path);
service_->CheckForExternalUpdates();
« no previous file with comments | « chrome/browser/extensions/extensions_service.cc ('k') | chrome/browser/extensions/external_extension_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698