diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-23 17:21:42 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-23 17:21:42 +0000 |
commit | 363f5272cc19dc56e7711d1ef0c3a0c0d52072ca (patch) | |
tree | a4361820bcd5d36e014fd595eb1c2de0d3825aac /chrome/browser/extensions | |
parent | 693ed9d8099c907890474e0ce5728ce1aa0906b1 (diff) | |
download | chromium_src-363f5272cc19dc56e7711d1ef0c3a0c0d52072ca.zip chromium_src-363f5272cc19dc56e7711d1ef0c3a0c0d52072ca.tar.gz chromium_src-363f5272cc19dc56e7711d1ef0c3a0c0d52072ca.tar.bz2 |
Revert 195811 "Explicitly construct/destruct UserManager and dep..."
> Explicitly construct/destruct UserManager and dependencies in tests
>
> The ScopedTestUserManager initializes and subsequently tears down the
> UserManager singleton only if it has not been initialized already. This
> allows ScopedTestUserManagers to be nested but also means that it is
> never clear which ScopedTestUserManager actually did end up initializing
> the singleton. The same goes for ScopedTestCrosSettings.
>
> This CL makes the initialization and teardown explicit. The helper classes
> now explicitly manage the initialization and teardown of their respective
> singletons and cannot be nested anymore.
>
> BUG=None
>
> For tests that need to instantiate a UserManager:
> TBR=sky,rkc,aa,thestig,asvitkine,davemoore,kinuko,pkotwicz,davemoore,akalin
>
> Review URL: https://codereview.chromium.org/14192040
TBR=bartfab@google.com
Review URL: https://codereview.chromium.org/14436007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195821 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
14 files changed, 34 insertions, 91 deletions
diff --git a/chrome/browser/extensions/activity_log_unittest.cc b/chrome/browser/extensions/activity_log_unittest.cc index 1ae2500..a5ecc95 100644 --- a/chrome/browser/extensions/activity_log_unittest.cc +++ b/chrome/browser/extensions/activity_log_unittest.cc @@ -18,10 +18,6 @@ #include "sql/statement.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - namespace extensions { class ActivityLogTest : public ChromeRenderViewHostTestHarness { @@ -79,10 +75,6 @@ class ActivityLogTest : public ChromeRenderViewHostTestHarness { content::TestBrowserThread ui_thread_; content::TestBrowserThread db_thread_; content::TestBrowserThread file_thread_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; TEST_F(ActivityLogTest, Enabled) { diff --git a/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc b/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc index 4e81379..95d4517 100644 --- a/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc +++ b/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc @@ -14,10 +14,6 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - namespace extensions { namespace { @@ -25,9 +21,6 @@ using base::test::ParseJson; using testing::HasSubstr; TEST(DeclarativeContentActionTest, InvalidCreation) { -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager user_manager; -#endif TestExtensionEnvironment env; std::string error; bool bad_message = false; @@ -59,9 +52,6 @@ TEST(DeclarativeContentActionTest, InvalidCreation) { } TEST(DeclarativeContentActionTest, ShowPageAction) { -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager user_manager; -#endif TestExtensionEnvironment env; std::string error; diff --git a/chrome/browser/extensions/api/declarative_content/content_rules_registry_unittest.cc b/chrome/browser/extensions/api/declarative_content/content_rules_registry_unittest.cc index 78b22948..350b423 100644 --- a/chrome/browser/extensions/api/declarative_content/content_rules_registry_unittest.cc +++ b/chrome/browser/extensions/api/declarative_content/content_rules_registry_unittest.cc @@ -16,10 +16,6 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - namespace extensions { using base::test::ParseJson; @@ -34,10 +30,6 @@ class DeclarativeContentRulesRegistryTest : public testing::Test { const ContentRulesRegistry& registry) { return registry.active_rules_; } - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; namespace { diff --git a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc index 416029f..f1fc7a0 100644 --- a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc +++ b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc @@ -25,10 +25,6 @@ #include "ui/gfx/skia_util.h" #include "webkit/glue/image_decoder.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using content::BrowserThread; namespace extensions { @@ -172,10 +168,6 @@ class ExtensionActionIconFactoryTest scoped_ptr<TestingProfile> profile_; ExtensionService* extension_service_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - DISALLOW_COPY_AND_ASSIGN(ExtensionActionIconFactoryTest); }; diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index c3e60a9..4bb9f97 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc @@ -111,7 +111,6 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/extensions/install_limiter.h" -#include "chrome/browser/chromeos/login/user_manager.h" #endif using content::BrowserContext; @@ -4619,10 +4618,6 @@ TEST(ExtensionServiceTestSimple, Enabledness) { MessageLoop loop; content::TestBrowserThread ui_thread(BrowserThread::UI, &loop); content::TestBrowserThread file_thread(BrowserThread::FILE, &loop); -#if defined OS_CHROMEOS - scoped_ptr<chromeos::ScopedTestUserManager> user_manager( - new chromeos::ScopedTestUserManager); -#endif scoped_ptr<CommandLine> command_line; base::FilePath install_dir = profile->GetPath() .AppendASCII(ExtensionService::kInstallDirectoryName); @@ -4644,9 +4639,6 @@ TEST(ExtensionServiceTestSimple, Enabledness) { service->Init(); loop.RunUntilIdle(); EXPECT_TRUE(recorder.ready()); -#if defined OS_CHROMEOS - user_manager.reset(); -#endif // If either the command line or pref is set, we are disabled. recorder.set_ready(false); diff --git a/chrome/browser/extensions/extension_service_unittest.h b/chrome/browser/extensions/extension_service_unittest.h index 86aa75b..dfdd049 100644 --- a/chrome/browser/extensions/extension_service_unittest.h +++ b/chrome/browser/extensions/extension_service_unittest.h @@ -17,10 +17,6 @@ #include "content/public/test/test_browser_thread.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - class TestingProfile; namespace extensions { @@ -76,10 +72,6 @@ class ExtensionServiceTestBase : public extensions::ExtensionTest { content::TestBrowserThread file_thread_; content::TestBrowserThread file_user_blocking_thread_; content::TestBrowserThread io_thread_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_UNITTEST_H_ diff --git a/chrome/browser/extensions/extension_ui_unittest.cc b/chrome/browser/extensions/extension_ui_unittest.cc index 8777981..b91cc7f 100644 --- a/chrome/browser/extensions/extension_ui_unittest.cc +++ b/chrome/browser/extensions/extension_ui_unittest.cc @@ -20,10 +20,6 @@ #include "extensions/common/constants.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using extensions::Extension; using extensions::Manifest; @@ -130,10 +126,6 @@ class ExtensionUITest : public extensions::ExtensionTest { ExtensionService* extension_service_; extensions::ManagementPolicy* management_policy_; scoped_ptr<ExtensionSettingsHandler> handler_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; TEST_F(ExtensionUITest, GenerateExtensionsJSONData) { diff --git a/chrome/browser/extensions/page_action_controller_unittest.cc b/chrome/browser/extensions/page_action_controller_unittest.cc index 505777e..60a267b 100644 --- a/chrome/browser/extensions/page_action_controller_unittest.cc +++ b/chrome/browser/extensions/page_action_controller_unittest.cc @@ -22,10 +22,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/test/test_browser_thread.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using content::BrowserThread; namespace extensions { @@ -60,10 +56,6 @@ class PageActionControllerTest : public ChromeRenderViewHostTestHarness { private: content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; TEST_F(PageActionControllerTest, NavigationClearsState) { diff --git a/chrome/browser/extensions/script_badge_controller_unittest.cc b/chrome/browser/extensions/script_badge_controller_unittest.cc index 1e7f506..cb773f8 100644 --- a/chrome/browser/extensions/script_badge_controller_unittest.cc +++ b/chrome/browser/extensions/script_badge_controller_unittest.cc @@ -31,10 +31,6 @@ #include "content/public/test/test_browser_thread.h" #include "testing/gmock/include/gmock/gmock.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using content::BrowserThread; namespace extensions { @@ -99,10 +95,6 @@ class ScriptBadgeControllerTest : public ChromeRenderViewHostTestHarness { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; Feature::ScopedCurrentChannel current_channel_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; struct CountingNotificationObserver : public content::NotificationObserver { diff --git a/chrome/browser/extensions/script_bubble_controller_unittest.cc b/chrome/browser/extensions/script_bubble_controller_unittest.cc index 6a4dc04..4843209 100644 --- a/chrome/browser/extensions/script_bubble_controller_unittest.cc +++ b/chrome/browser/extensions/script_bubble_controller_unittest.cc @@ -27,10 +27,6 @@ #include "content/public/browser/navigation_entry.h" #include "content/public/test/test_browser_thread.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using content::BrowserThread; namespace extensions { @@ -74,10 +70,6 @@ class ScriptBubbleControllerTest : public ChromeRenderViewHostTestHarness { content::TestBrowserThread file_thread_; FeatureSwitch::ScopedOverride enable_script_bubble_; ScopedTestingPermissionsInfo permissions_info_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; TEST_F(ScriptBubbleControllerTest, Basics) { diff --git a/chrome/browser/extensions/test_extension_environment.h b/chrome/browser/extensions/test_extension_environment.h index 652ce10..923cb47 100644 --- a/chrome/browser/extensions/test_extension_environment.h +++ b/chrome/browser/extensions/test_extension_environment.h @@ -9,6 +9,10 @@ #include "base/message_loop.h" #include "content/public/test/test_browser_thread.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/login/user_manager.h" +#endif + #if defined(OS_WIN) #include "ui/base/win/scoped_ole_initializer.h" #endif @@ -60,6 +64,10 @@ class TestExtensionEnvironment { // likely to be indicated by memory leaks in which the object was // expected to be freed by a DeleteSoon() call. +#if defined(OS_CHROMEOS) + chromeos::ScopedTestUserManager test_user_manager_; +#endif + #if defined(OS_WIN) ui::ScopedOleInitializer ole_initializer_; #endif diff --git a/chrome/browser/extensions/test_extension_system.cc b/chrome/browser/extensions/test_extension_system.cc index 568078b..ba32742 100644 --- a/chrome/browser/extensions/test_extension_system.cc +++ b/chrome/browser/extensions/test_extension_system.cc @@ -27,6 +27,10 @@ #include "chrome/common/chrome_switches.h" #include "content/public/browser/browser_thread.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/login/user_manager.h" +#endif + using content::BrowserThread; namespace extensions { @@ -88,7 +92,11 @@ ExtensionService* TestExtensionSystem::CreateExtensionService( management_policy_.reset(new ManagementPolicy()); management_policy_->RegisterProvider( standard_management_policy_provider_.get()); - extension_service_.reset(new ExtensionService(profile_, +#if defined(OS_CHROMEOS) + if (!test_user_manager_) + test_user_manager_.reset(new chromeos::ScopedTestUserManager); +#endif + extension_service_.reset(new ExtensionService(profile_, command_line, install_directory, extension_prefs_.get(), diff --git a/chrome/browser/extensions/test_extension_system.h b/chrome/browser/extensions/test_extension_system.h index 578ae29..31c2996 100644 --- a/chrome/browser/extensions/test_extension_system.h +++ b/chrome/browser/extensions/test_extension_system.h @@ -7,6 +7,10 @@ #include "chrome/browser/extensions/extension_system.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/settings/cros_settings.h" +#endif + class CommandLine; namespace base { @@ -15,6 +19,12 @@ class FilePath; class Time; } +#if defined(OS_CHROMEOS) +namespace chromeos { +class ScopedTestUserManager; +} +#endif + namespace extensions { // Test ExtensionSystem, for use with TestingProfile. @@ -74,6 +84,13 @@ class TestExtensionSystem : public ExtensionSystem { Profile* profile_; private: +#if defined(OS_CHROMEOS) + // Required to instantiate TestExtensionSystem itself. + chromeos::ScopedTestCrosSettings test_cros_settings_; + // Required to instantiate an ExtensionService. + scoped_ptr<chromeos::ScopedTestUserManager> test_user_manager_; +#endif + // The Extension Preferences. Only created if CreateExtensionService is // invoked. scoped_ptr<ExtensionPrefs> extension_prefs_; diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc index 4e980b2..3481c0c 100644 --- a/chrome/browser/extensions/updater/extension_updater_unittest.cc +++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc @@ -64,10 +64,6 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using base::Time; using base::TimeDelta; using content::BrowserThread; @@ -1480,10 +1476,6 @@ class ExtensionUpdaterTest : public testing::Test { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; content::TestBrowserThread io_thread_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; // Because we test some private methods of ExtensionUpdater, it's easier for the |