diff options
37 files changed, 98 insertions, 193 deletions
diff --git a/chrome/browser/browser_commands_unittest.cc b/chrome/browser/browser_commands_unittest.cc index 9d5cc10..8ee05a6 100644 --- a/chrome/browser/browser_commands_unittest.cc +++ b/chrome/browser/browser_commands_unittest.cc @@ -17,6 +17,10 @@ #include "content/public/browser/navigation_entry.h" #include "content/public/browser/web_contents.h" +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/login/mock_user_manager.h" +#endif + typedef BrowserWithTestWindowTest BrowserCommandsTest; using content::OpenURLParams; diff --git a/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc b/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc index c1ce65b..3ba9c9a 100644 --- a/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc +++ b/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc @@ -6,7 +6,6 @@ #include "base/message_loop.h" #include "base/run_loop.h" #include "chrome/browser/chromeos/attestation/attestation_policy_observer.h" -#include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/cros_settings_names.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -80,7 +79,7 @@ class AttestationPolicyObserverTest : public ::testing::Test { MessageLoop message_loop_; content::TestBrowserThread ui_thread_; - ScopedTestUserManager test_user_manager_; + ScopedTestCrosSettings test_cros_settings_; CrosSettingsProvider* device_settings_provider_; StubCrosSettingsProvider stub_settings_provider_; StrictMock<MockCryptohomeClient> cryptohome_client_; diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc index 7fad377..272170e 100644 --- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc @@ -8,7 +8,6 @@ #include "base/bind_helpers.h" #include "base/message_loop.h" #include "base/values.h" -#include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/cros_settings_names.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" @@ -74,7 +73,7 @@ class KioskModeSettingsTest : public testing::Test { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; - ScopedTestUserManager test_user_manager_; + ScopedTestCrosSettings test_cros_settings_; CrosSettingsProvider* device_settings_provider_; StubCrosSettingsProvider stub_settings_provider_; diff --git a/chrome/browser/chromeos/login/login_utils_browsertest.cc b/chrome/browser/chromeos/login/login_utils_browsertest.cc index 51641af..a117b9c 100644 --- a/chrome/browser/chromeos/login/login_utils_browsertest.cc +++ b/chrome/browser/chromeos/login/login_utils_browsertest.cc @@ -26,6 +26,7 @@ #include "chrome/browser/chromeos/net/connectivity_state_helper.h" #include "chrome/browser/chromeos/net/mock_connectivity_state_helper.h" #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_service.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" #include "chrome/browser/chromeos/settings/mock_owner_key_util.h" @@ -294,6 +295,7 @@ class LoginUtilsTest : public testing::Test, cryptohome_client_ = mock_dbus_thread_manager_.mock_cryptohome_client(); EXPECT_CALL(*cryptohome_client_, IsMounted(_)); + test_cros_settings_.reset(new ScopedTestCrosSettings); test_user_manager_.reset(new ScopedTestUserManager); browser_process_->SetProfileManager( @@ -544,6 +546,7 @@ class LoginUtilsTest : public testing::Test, MockCryptohomeClient* cryptohome_client_; // Initialized after |mock_dbus_thread_manager_| and |cryptohome_| are set up. + scoped_ptr<ScopedTestCrosSettings> test_cros_settings_; scoped_ptr<ScopedTestUserManager> test_user_manager_; Profile* prepared_profile_; diff --git a/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc b/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc index c4dfb93..12abc1f 100644 --- a/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc +++ b/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc @@ -75,8 +75,8 @@ class MergeSessionLoadPageTest : public ChromeRenderViewHostTestHarness { content::TestBrowserThread file_user_blocking_thread_; content::TestBrowserThread io_thread_; - ScopedStubCrosEnabler stub_cros_enabler_; - ScopedTestUserManager test_user_manager_; + chromeos::ScopedStubCrosEnabler stub_cros_enabler_; + chromeos::ScopedTestUserManager test_user_manager_; DISALLOW_COPY_AND_ASSIGN(MergeSessionLoadPageTest); }; diff --git a/chrome/browser/chromeos/login/user_manager.cc b/chrome/browser/chromeos/login/user_manager.cc index ae4dd33..b9f82e7 100644 --- a/chrome/browser/chromeos/login/user_manager.cc +++ b/chrome/browser/chromeos/login/user_manager.cc @@ -64,13 +64,19 @@ ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { UserManager::SetForTesting(previous_user_manager_); } -ScopedTestUserManager::ScopedTestUserManager() { - UserManager::Initialize(); +ScopedTestUserManager::ScopedTestUserManager() + : initialized_user_manager_(false) { + if (!UserManager::IsInitialized()) { + UserManager::Initialize(); + initialized_user_manager_ = true; + } } ScopedTestUserManager::~ScopedTestUserManager() { - UserManager::Get()->Shutdown(); - UserManager::Destroy(); + if (initialized_user_manager_) { + UserManager::Get()->Shutdown(); + UserManager::Destroy(); + } } } // namespace chromeos diff --git a/chrome/browser/chromeos/login/user_manager.h b/chrome/browser/chromeos/login/user_manager.h index 68bf2d5..6caecc5 100644 --- a/chrome/browser/chromeos/login/user_manager.h +++ b/chrome/browser/chromeos/login/user_manager.h @@ -7,16 +7,17 @@ #include <string> +#include "base/memory/singleton.h" #include "chrome/browser/chromeos/login/user.h" #include "chrome/browser/chromeos/login/user_flow.h" #include "chrome/browser/chromeos/settings/cros_settings.h" -#include "chrome/browser/chromeos/settings/device_settings_service.h" class PrefRegistrySimple; namespace chromeos { class RemoveUserDelegate; +class ScopedCrosSettings; class UserImageManager; // Base class for UserManagerImpl - provides a mechanism for discovering users @@ -314,17 +315,18 @@ class ScopedUserManagerEnabler { DISALLOW_COPY_AND_ASSIGN(ScopedUserManagerEnabler); }; -// Helper class for tests. Initializes the UserManager singleton on construction -// and tears it down again on destruction, along with the DeviceSettingsService -// and CrosSettings singletons it depends on. +// Helper class for unit tests. Ensures that the UserManager singleton and the +// CrosSettings and DeviceSettingsService singletons it depends on are +// initialized. Any singletons initialized on construction are torn down again +// on destruction. Singletons that were initialized already are not modified. class ScopedTestUserManager { public: ScopedTestUserManager(); ~ScopedTestUserManager(); private: - ScopedTestDeviceSettingsService test_device_settings_service_; ScopedTestCrosSettings test_cros_settings_; + bool initialized_user_manager_; DISALLOW_COPY_AND_ASSIGN(ScopedTestUserManager); }; diff --git a/chrome/browser/chromeos/login/user_manager_unittest.cc b/chrome/browser/chromeos/login/user_manager_unittest.cc index bf195e1..0afeae3 100644 --- a/chrome/browser/chromeos/login/user_manager_unittest.cc +++ b/chrome/browser/chromeos/login/user_manager_unittest.cc @@ -140,7 +140,6 @@ class UserManagerTest : public testing::Test { scoped_ptr<TestingPrefServiceSimple> local_state_; ScopedStubCrosEnabler stub_cros_enabler_; - ScopedTestDeviceSettingsService test_device_settings_service_; ScopedTestCrosSettings test_cros_settings_; scoped_ptr<ScopedUserManagerEnabler> user_manager_enabler_; diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc index 60f9171..240030a 100644 --- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc +++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc @@ -11,10 +11,10 @@ #include "base/prefs/testing_pref_service.h" #include "base/run_loop.h" #include "chrome/browser/chromeos/cros/cryptohome_library.h" -#include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h" #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h" #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" #include "chrome/browser/policy/cloud/cloud_policy_client.h" #include "chrome/browser/policy/cloud/mock_device_management_service.h" @@ -75,7 +75,7 @@ class DeviceCloudPolicyManagerChromeOSTest TestingPrefServiceSimple local_state_; MockDeviceManagementService device_management_service_; - chromeos::ScopedTestUserManager test_user_manager_; + chromeos::ScopedTestCrosSettings test_cros_settings_; DeviceCloudPolicyStoreChromeOS* store_; DeviceCloudPolicyManagerChromeOS manager_; diff --git a/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc b/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc index 223a5d4..d474c3f 100644 --- a/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc +++ b/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc @@ -15,7 +15,7 @@ #include "base/string_util.h" #include "base/stringprintf.h" #include "chrome/browser/chromeos/cros/cros_library.h" -#include "chrome/browser/chromeos/login/user_manager.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/common/pref_names.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "content/public/test/test_browser_thread.h" @@ -330,9 +330,9 @@ class ProxyConfigServiceImplTestBase : public TESTBASE { // Default stub state has ethernet as the active connected network and // PROFILE_SHARED as profile type, which this unittest expects. ScopedStubCrosEnabler stub_cros_enabler_; + ScopedTestCrosSettings test_cros_settings_; content::TestBrowserThread ui_thread_; content::TestBrowserThread io_thread_; - ScopedTestUserManager test_user_manager_; }; class ProxyConfigServiceImplTest diff --git a/chrome/browser/chromeos/settings/cros_settings.cc b/chrome/browser/chromeos/settings/cros_settings.cc index 211b5d5..08a6866 100644 --- a/chrome/browser/chromeos/settings/cros_settings.cc +++ b/chrome/browser/chromeos/settings/cros_settings.cc @@ -39,7 +39,7 @@ bool CrosSettings::IsInitialized() { // static void CrosSettings::Shutdown() { - DCHECK(g_cros_settings); + CHECK(g_cros_settings); delete g_cros_settings; g_cros_settings = NULL; } @@ -328,12 +328,24 @@ void CrosSettings::FireObservers(const std::string& path) { } } -ScopedTestCrosSettings::ScopedTestCrosSettings() { - CrosSettings::Initialize(); +ScopedTestCrosSettings::ScopedTestCrosSettings() + : initialized_device_settings_service_(false), + initialized_cros_settings_(false) { + if (!DeviceSettingsService::IsInitialized()) { + DeviceSettingsService::Initialize(); + initialized_device_settings_service_ = true; + } + if (!CrosSettings::IsInitialized()) { + CrosSettings::Initialize(); + initialized_cros_settings_ = true; + } } ScopedTestCrosSettings::~ScopedTestCrosSettings() { - CrosSettings::Shutdown(); + if (initialized_cros_settings_) + CrosSettings::Shutdown(); + if (initialized_device_settings_service_) + DeviceSettingsService::Shutdown(); } } // namespace chromeos diff --git a/chrome/browser/chromeos/settings/cros_settings.h b/chrome/browser/chromeos/settings/cros_settings.h index 35c7112..ff1be8d 100644 --- a/chrome/browser/chromeos/settings/cros_settings.h +++ b/chrome/browser/chromeos/settings/cros_settings.h @@ -116,14 +116,19 @@ class CrosSettings : public base::NonThreadSafe { DISALLOW_COPY_AND_ASSIGN(CrosSettings); }; -// Helper class for tests. Initializes the CrosSettings singleton on -// construction and tears it down again on destruction. +// Helper class for unit tests. Ensures that the CrosSettings singleton and the +// DeviceSettingsService singleton it depends on are initialized. Any singletons +// initialized on construction are torn down again on destruction. Singletons +// that were initialized already are not modified. class ScopedTestCrosSettings { public: ScopedTestCrosSettings(); ~ScopedTestCrosSettings(); private: + bool initialized_device_settings_service_; + bool initialized_cros_settings_; + DISALLOW_COPY_AND_ASSIGN(ScopedTestCrosSettings); }; diff --git a/chrome/browser/chromeos/settings/device_settings_service.cc b/chrome/browser/chromeos/settings/device_settings_service.cc index dbe605f..18bc461 100644 --- a/chrome/browser/chromeos/settings/device_settings_service.cc +++ b/chrome/browser/chromeos/settings/device_settings_service.cc @@ -60,7 +60,7 @@ bool DeviceSettingsService::IsInitialized() { // static void DeviceSettingsService::Shutdown() { - DCHECK(g_device_settings_service); + CHECK(g_device_settings_service); delete g_device_settings_service; g_device_settings_service = NULL; } @@ -316,12 +316,4 @@ void DeviceSettingsService::HandleCompletedOperation( StartNextOperation(); } -ScopedTestDeviceSettingsService::ScopedTestDeviceSettingsService() { - DeviceSettingsService::Initialize(); -} - -ScopedTestDeviceSettingsService::~ScopedTestDeviceSettingsService() { - DeviceSettingsService::Shutdown(); -} - } // namespace chromeos diff --git a/chrome/browser/chromeos/settings/device_settings_service.h b/chrome/browser/chromeos/settings/device_settings_service.h index 402a891..0c66d37 100644 --- a/chrome/browser/chromeos/settings/device_settings_service.h +++ b/chrome/browser/chromeos/settings/device_settings_service.h @@ -11,7 +11,6 @@ #include "base/basictypes.h" #include "base/callback.h" -#include "base/compiler_specific.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "base/observer_list.h" @@ -236,17 +235,6 @@ class DeviceSettingsService : public SessionManagerClient::Observer { DISALLOW_COPY_AND_ASSIGN(DeviceSettingsService); }; -// Helper class for tests. Initializes the DeviceSettingsService singleton on -// construction and tears it down again on destruction. -class ScopedTestDeviceSettingsService { - public: - ScopedTestDeviceSettingsService(); - ~ScopedTestDeviceSettingsService(); - - private: - DISALLOW_COPY_AND_ASSIGN(ScopedTestDeviceSettingsService); -}; - } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_ 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 diff --git a/chrome/browser/media_galleries/media_file_system_registry_unittest.cc b/chrome/browser/media_galleries/media_file_system_registry_unittest.cc index f1bd299..91b691f 100644 --- a/chrome/browser/media_galleries/media_file_system_registry_unittest.cc +++ b/chrome/browser/media_galleries/media_file_system_registry_unittest.cc @@ -50,10 +50,6 @@ #include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - #if defined(OS_WIN) #include "chrome/browser/storage_monitor/test_portable_device_watcher_win.h" #include "chrome/browser/storage_monitor/test_storage_monitor_win.h" @@ -380,10 +376,6 @@ class MediaFileSystemRegistryTest : public ChromeRenderViewHostTestHarness { content::TestBrowserThread file_thread_; extensions::ScopedTestingPermissionsInfo permissions_info_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - // TODO(gbillock): Eliminate windows-specific code from this test. #if defined(OS_WIN) scoped_ptr<test::TestStorageMonitorWin> monitor_; diff --git a/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc b/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc index 9d6576c..a505ac7 100644 --- a/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc +++ b/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc @@ -28,10 +28,6 @@ #include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - namespace chrome { namespace { @@ -219,10 +215,6 @@ class MediaGalleriesPreferencesTest : public extensions::ExtensionTest { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - test::TestStorageMonitor monitor_; scoped_ptr<TestingProfile> profile_; scoped_ptr<MediaGalleriesPreferences> gallery_prefs_; diff --git a/chrome/browser/metrics/variations/variations_service_unittest.cc b/chrome/browser/metrics/variations/variations_service_unittest.cc index 7ebcb71..df7faeb 100644 --- a/chrome/browser/metrics/variations/variations_service_unittest.cc +++ b/chrome/browser/metrics/variations/variations_service_unittest.cc @@ -20,7 +20,6 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" #endif @@ -111,7 +110,7 @@ class VariationsServiceTest : public testing::Test { private: #if defined(OS_CHROMEOS) // Not used directly. Initializes CrosSettings for testing. - chromeos::ScopedTestUserManager test_user_manager_; + chromeos::ScopedTestCrosSettings scoped_test_cros_settings; #endif DISALLOW_COPY_AND_ASSIGN(VariationsServiceTest); diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc index 0b3bccb..3fda3f9 100644 --- a/chrome/browser/profiles/profile_manager_unittest.cc +++ b/chrome/browser/profiles/profile_manager_unittest.cc @@ -14,6 +14,7 @@ #include "build/build_config.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/extensions/event_router_forwarder.h" #include "chrome/browser/history/history_service.h" #include "chrome/browser/history/history_service_factory.h" @@ -41,6 +42,7 @@ #include "chrome/browser/chromeos/cros/cros_library.h" #include "chrome/browser/chromeos/login/mock_user_manager.h" #include "chrome/browser/chromeos/login/user_manager.h" +#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chromeos/chromeos_switches.h" #endif @@ -125,7 +127,7 @@ class ProfileManagerTest : public testing::Test { // before io_thread_ which requires CrosLibrary to be initialized to construct // its data member pref_proxy_config_tracker_ on ChromeOS. chromeos::ScopedStubCrosEnabler stub_cros_enabler_; - chromeos::ScopedTestUserManager test_user_manager_; + chromeos::ScopedTestCrosSettings test_cros_settings_; #endif // The path to temporary directory used to contain the test operations. @@ -140,6 +142,10 @@ class ProfileManagerTest : public testing::Test { content::TestBrowserThread file_thread_; // IOThread is necessary for the creation of some services below. IOThread io_thread_; + +#if defined(OS_CHROMEOS) + chromeos::ScopedTestUserManager test_user_manager_; +#endif }; TEST_F(ProfileManagerTest, GetProfile) { diff --git a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc index 2416383..e7183f6 100644 --- a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc +++ b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc @@ -34,10 +34,6 @@ #include "webkit/fileapi/syncable/sync_file_metadata.h" #include "webkit/fileapi/syncable/syncable_file_system_util.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - #define FPL(x) FILE_PATH_LITERAL(x) using ::testing::AnyNumber; @@ -637,10 +633,6 @@ class DriveFileSyncServiceMockTest : public testing::Test { base::ScopedTempDir base_dir_; scoped_ptr<TestingProfile> profile_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - scoped_ptr<DriveFileSyncService> sync_service_; // Not owned. diff --git a/chrome/browser/themes/theme_syncable_service_unittest.cc b/chrome/browser/themes/theme_syncable_service_unittest.cc index 4b1cac0..8fa7d25 100644 --- a/chrome/browser/themes/theme_syncable_service_unittest.cc +++ b/chrome/browser/themes/theme_syncable_service_unittest.cc @@ -27,10 +27,6 @@ #include "sync/protocol/theme_specifics.pb.h" #include "testing/gtest/include/gtest/gtest.h" -#if defined(OS_CHROMEOS) -#include "chrome/browser/chromeos/login/user_manager.h" -#endif - using std::string; namespace { @@ -235,10 +231,6 @@ class ThemeSyncableServiceTest : public testing::Test { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - scoped_ptr<TestingProfile> profile_; FakeThemeService* fake_theme_service_; scoped_refptr<extensions::Extension> theme_extension_; diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/ui/ash/event_rewriter_unittest.cc index b7d5919..9b1b7aa 100644 --- a/chrome/browser/ui/ash/event_rewriter_unittest.cc +++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc @@ -19,10 +19,6 @@ #include <X11/XF86keysym.h> #include <X11/Xlib.h> -// X11/Xlib.h does |#define Status int|, breaking compilation as several classes -// define enum types called |Status|. -#undef Status - #include "chrome/browser/chromeos/input_method/input_method_configuration.h" #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" #include "chrome/browser/chromeos/login/mock_user_manager.h" diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser_unittest.cc index 7261f2e..1dcae7e 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser_unittest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser_unittest.cc @@ -26,10 +26,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 - using extensions::Extension; using extensions::Manifest; @@ -114,10 +110,6 @@ class ChromeLauncherControllerPerBrowserTest : public testing::Test { content::TestBrowserThread ui_thread_; content::TestBrowserThread file_thread_; -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif - scoped_refptr<Extension> extension1_; scoped_refptr<Extension> extension2_; scoped_refptr<Extension> extension3_; diff --git a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc index 34dc8b5..0757f69 100644 --- a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc +++ b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc @@ -39,10 +39,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 { template<typename T> @@ -160,10 +156,6 @@ class ProfileSigninConfirmationHelperTest : public testing::Test { scoped_ptr<TestingProfile> profile_; TestingPrefStoreWithCustomReadError* user_prefs_; BookmarkModel* model_; - -#if defined OS_CHROMEOS - chromeos::ScopedTestUserManager test_user_manager_; -#endif }; TEST_F(ProfileSigninConfirmationHelperTest, DoNotPromptForNewProfile) { |