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

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

Issue 217233004: Revert of Remove ExtensionService Garbage-Collecting methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 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/extension_garbage_collector_unittest.cc
diff --git a/chrome/browser/extensions/extension_garbage_collector_unittest.cc b/chrome/browser/extensions/extension_garbage_collector_unittest.cc
deleted file mode 100644
index dc922563ef495e336b84e682d3832f67917ba9d7..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/extension_garbage_collector_unittest.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/file_util.h"
-#include "base/files/file_enumerator.h"
-#include "base/files/file_path.h"
-#include "base/prefs/scoped_user_pref_update.h"
-#include "base/values.h"
-#include "chrome/browser/extensions/extension_garbage_collector.h"
-#include "chrome/browser/extensions/extension_service_unittest.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/chrome_constants.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/browser/plugin_service.h"
-
-namespace extensions {
-
-class ExtensionGarbageCollectorUnitTest : public ExtensionServiceTestBase {
- protected:
- void InitPluginService() {
-#if defined(ENABLE_PLUGINS)
- content::PluginService::GetInstance()->Init();
-#endif
- }
-
- // A delayed task to call GarbageCollectExtensions is posted by
- // ExtensionGarbageCollector's constructor. But, as the test won't wait for
- // the delayed task to be called, we have to call it manually instead.
- void GarbageCollectExtensions() {
- service_->garbage_collector()->GarbageCollectExtensionsForTest();
- // Wait for GarbageCollectExtensions task to complete.
- base::RunLoop().RunUntilIdle();
- }
-};
-
-// Test that partially deleted extensions are cleaned up during startup
-// Test loading bad extensions from the profile directory.
-TEST_F(ExtensionGarbageCollectorUnitTest, CleanupOnStartup) {
- const std::string kExtensionId = "behllobkkfkfnphdnhnkndlbkcpglgmj";
-
- InitPluginService();
- InitializeGoodInstalledExtensionService();
-
- // Simulate that one of them got partially deleted by clearing its pref.
- {
- DictionaryPrefUpdate update(profile_->GetPrefs(), "extensions.settings");
- base::DictionaryValue* dict = update.Get();
- ASSERT_TRUE(dict != NULL);
- dict->Remove(kExtensionId, NULL);
- }
-
- service_->Init();
- GarbageCollectExtensions();
-
- base::FileEnumerator dirs(extensions_install_dir_,
- false, // not recursive
- base::FileEnumerator::DIRECTORIES);
- size_t count = 0;
- while (!dirs.Next().empty())
- count++;
-
- // We should have only gotten two extensions now.
- EXPECT_EQ(2u, count);
-
- // And extension1 dir should now be toast.
- base::FilePath extension_dir =
- extensions_install_dir_.AppendASCII(kExtensionId);
- ASSERT_FALSE(base::PathExists(extension_dir));
-}
-
-// Test that GarbageCollectExtensions deletes the right versions of an
-// extension.
-TEST_F(ExtensionGarbageCollectorUnitTest, GarbageCollectWithPendingUpdates) {
- InitPluginService();
-
- base::FilePath source_install_dir =
- data_dir_.AppendASCII("pending_updates").AppendASCII("Extensions");
- base::FilePath pref_path =
- source_install_dir.DirName().Append(chrome::kPreferencesFilename);
-
- InitializeInstalledExtensionService(pref_path, source_install_dir);
-
- // This is the directory that is going to be deleted, so make sure it actually
- // is there before the garbage collection.
- ASSERT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/3")));
-
- GarbageCollectExtensions();
-
- // Verify that the pending update for the first extension didn't get
- // deleted.
- EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
- EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0")));
- EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/2")));
- EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/3")));
-}
-
-// Test that pending updates are properly handled on startup.
-TEST_F(ExtensionGarbageCollectorUnitTest, UpdateOnStartup) {
- InitPluginService();
-
- base::FilePath source_install_dir =
- data_dir_.AppendASCII("pending_updates").AppendASCII("Extensions");
- base::FilePath pref_path =
- source_install_dir.DirName().Append(chrome::kPreferencesFilename);
-
- InitializeInstalledExtensionService(pref_path, source_install_dir);
-
- // This is the directory that is going to be deleted, so make sure it actually
- // is there before the garbage collection.
- ASSERT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/3")));
-
- service_->Init();
- GarbageCollectExtensions();
-
- // Verify that the pending update for the first extension got installed.
- EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
- "bjafgdebaacbbbecmhlhpofkepfkgcpa/1.0")));
- EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "bjafgdebaacbbbecmhlhpofkepfkgcpa/2.0")));
- EXPECT_TRUE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/2")));
- EXPECT_FALSE(base::PathExists(extensions_install_dir_.AppendASCII(
- "hpiknbiabeeppbpihjehijgoemciehgk/3")));
-
- // Make sure update information got deleted.
- ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_.get());
- EXPECT_FALSE(
- prefs->GetDelayedInstallInfo("bjafgdebaacbbbecmhlhpofkepfkgcpa"));
-}
-
-} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/extension_garbage_collector.cc ('k') | chrome/browser/extensions/extension_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698