summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorbartfab@google.com <bartfab@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-23 16:36:05 +0000
committerbartfab@google.com <bartfab@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-23 16:36:05 +0000
commitcbe67852f909edc70d3aebcc69e7ccade5b46a36 (patch)
treea88f490e25222a5edc47f0538011e5fcdcae5a07 /chrome
parentb8bdec2e625e03470f5dccfc6865031dec2a1af6 (diff)
downloadchromium_src-cbe67852f909edc70d3aebcc69e7ccade5b46a36.zip
chromium_src-cbe67852f909edc70d3aebcc69e7ccade5b46a36.tar.gz
chromium_src-cbe67852f909edc70d3aebcc69e7ccade5b46a36.tar.bz2
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 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195811 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/browser_commands_unittest.cc4
-rw-r--r--chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc3
-rw-r--r--chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc3
-rw-r--r--chrome/browser/chromeos/login/login_utils_browsertest.cc3
-rw-r--r--chrome/browser/chromeos/login/merge_session_load_page_unittest.cc4
-rw-r--r--chrome/browser/chromeos/login/user_manager.cc14
-rw-r--r--chrome/browser/chromeos/login/user_manager.h12
-rw-r--r--chrome/browser/chromeos/login/user_manager_unittest.cc1
-rw-r--r--chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos_unittest.cc4
-rw-r--r--chrome/browser/chromeos/proxy_config_service_impl_unittest.cc4
-rw-r--r--chrome/browser/chromeos/settings/cros_settings.cc20
-rw-r--r--chrome/browser/chromeos/settings/cros_settings.h9
-rw-r--r--chrome/browser/chromeos/settings/device_settings_service.cc10
-rw-r--r--chrome/browser/chromeos/settings/device_settings_service.h12
-rw-r--r--chrome/browser/extensions/activity_log_unittest.cc8
-rw-r--r--chrome/browser/extensions/api/declarative_content/content_action_unittest.cc10
-rw-r--r--chrome/browser/extensions/api/declarative_content/content_rules_registry_unittest.cc8
-rw-r--r--chrome/browser/extensions/extension_action_icon_factory_unittest.cc8
-rw-r--r--chrome/browser/extensions/extension_service_unittest.cc8
-rw-r--r--chrome/browser/extensions/extension_service_unittest.h8
-rw-r--r--chrome/browser/extensions/extension_ui_unittest.cc8
-rw-r--r--chrome/browser/extensions/page_action_controller_unittest.cc8
-rw-r--r--chrome/browser/extensions/script_badge_controller_unittest.cc8
-rw-r--r--chrome/browser/extensions/script_bubble_controller_unittest.cc8
-rw-r--r--chrome/browser/extensions/test_extension_environment.h8
-rw-r--r--chrome/browser/extensions/test_extension_system.cc10
-rw-r--r--chrome/browser/extensions/test_extension_system.h17
-rw-r--r--chrome/browser/extensions/updater/extension_updater_unittest.cc8
-rw-r--r--chrome/browser/media_galleries/media_file_system_registry_unittest.cc8
-rw-r--r--chrome/browser/media_galleries/media_galleries_preferences_unittest.cc8
-rw-r--r--chrome/browser/metrics/variations/variations_service_unittest.cc3
-rw-r--r--chrome/browser/profiles/profile_manager_unittest.cc8
-rw-r--r--chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc8
-rw-r--r--chrome/browser/themes/theme_syncable_service_unittest.cc8
-rw-r--r--chrome/browser/ui/ash/event_rewriter_unittest.cc4
-rw-r--r--chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser_unittest.cc8
-rw-r--r--chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc8
37 files changed, 193 insertions, 98 deletions
diff --git a/chrome/browser/browser_commands_unittest.cc b/chrome/browser/browser_commands_unittest.cc
index 8ee05a6..9d5cc10 100644
--- a/chrome/browser/browser_commands_unittest.cc
+++ b/chrome/browser/browser_commands_unittest.cc
@@ -17,10 +17,6 @@
#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 3ba9c9a..c1ce65b 100644
--- a/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc
+++ b/chrome/browser/chromeos/attestation/attestation_policy_observer_unittest.cc
@@ -6,6 +6,7 @@
#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"
@@ -79,7 +80,7 @@ class AttestationPolicyObserverTest : public ::testing::Test {
MessageLoop message_loop_;
content::TestBrowserThread ui_thread_;
- ScopedTestCrosSettings test_cros_settings_;
+ ScopedTestUserManager test_user_manager_;
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 272170e..7fad377 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings_unittest.cc
@@ -8,6 +8,7 @@
#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"
@@ -73,7 +74,7 @@ class KioskModeSettingsTest : public testing::Test {
content::TestBrowserThread ui_thread_;
content::TestBrowserThread file_thread_;
- ScopedTestCrosSettings test_cros_settings_;
+ ScopedTestUserManager test_user_manager_;
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 a117b9c..51641af 100644
--- a/chrome/browser/chromeos/login/login_utils_browsertest.cc
+++ b/chrome/browser/chromeos/login/login_utils_browsertest.cc
@@ -26,7 +26,6 @@
#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"
@@ -295,7 +294,6 @@ 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(
@@ -546,7 +544,6 @@ 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 12abc1f..c4dfb93 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_;
- chromeos::ScopedStubCrosEnabler stub_cros_enabler_;
- chromeos::ScopedTestUserManager test_user_manager_;
+ ScopedStubCrosEnabler stub_cros_enabler_;
+ 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 b9f82e7..ae4dd33 100644
--- a/chrome/browser/chromeos/login/user_manager.cc
+++ b/chrome/browser/chromeos/login/user_manager.cc
@@ -64,19 +64,13 @@ ScopedUserManagerEnabler::~ScopedUserManagerEnabler() {
UserManager::SetForTesting(previous_user_manager_);
}
-ScopedTestUserManager::ScopedTestUserManager()
- : initialized_user_manager_(false) {
- if (!UserManager::IsInitialized()) {
- UserManager::Initialize();
- initialized_user_manager_ = true;
- }
+ScopedTestUserManager::ScopedTestUserManager() {
+ UserManager::Initialize();
}
ScopedTestUserManager::~ScopedTestUserManager() {
- if (initialized_user_manager_) {
- UserManager::Get()->Shutdown();
- UserManager::Destroy();
- }
+ 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 6caecc5..68bf2d5 100644
--- a/chrome/browser/chromeos/login/user_manager.h
+++ b/chrome/browser/chromeos/login/user_manager.h
@@ -7,17 +7,16 @@
#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
@@ -315,18 +314,17 @@ class ScopedUserManagerEnabler {
DISALLOW_COPY_AND_ASSIGN(ScopedUserManagerEnabler);
};
-// 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.
+// 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.
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 0afeae3..bf195e1 100644
--- a/chrome/browser/chromeos/login/user_manager_unittest.cc
+++ b/chrome/browser/chromeos/login/user_manager_unittest.cc
@@ -140,6 +140,7 @@ 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 240030a..60f9171 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::ScopedTestCrosSettings test_cros_settings_;
+ chromeos::ScopedTestUserManager test_user_manager_;
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 d474c3f..223a5d4 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/settings/cros_settings.h"
+#include "chrome/browser/chromeos/login/user_manager.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 08a6866..211b5d5 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() {
- CHECK(g_cros_settings);
+ DCHECK(g_cros_settings);
delete g_cros_settings;
g_cros_settings = NULL;
}
@@ -328,24 +328,12 @@ void CrosSettings::FireObservers(const std::string& path) {
}
}
-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::Initialize();
}
ScopedTestCrosSettings::~ScopedTestCrosSettings() {
- if (initialized_cros_settings_)
- CrosSettings::Shutdown();
- if (initialized_device_settings_service_)
- DeviceSettingsService::Shutdown();
+ CrosSettings::Shutdown();
}
} // namespace chromeos
diff --git a/chrome/browser/chromeos/settings/cros_settings.h b/chrome/browser/chromeos/settings/cros_settings.h
index ff1be8d..35c7112 100644
--- a/chrome/browser/chromeos/settings/cros_settings.h
+++ b/chrome/browser/chromeos/settings/cros_settings.h
@@ -116,19 +116,14 @@ class CrosSettings : public base::NonThreadSafe {
DISALLOW_COPY_AND_ASSIGN(CrosSettings);
};
-// 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.
+// Helper class for tests. Initializes the CrosSettings singleton on
+// construction and tears it down again on destruction.
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 18bc461..dbe605f 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() {
- CHECK(g_device_settings_service);
+ DCHECK(g_device_settings_service);
delete g_device_settings_service;
g_device_settings_service = NULL;
}
@@ -316,4 +316,12 @@ 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 0c66d37..402a891 100644
--- a/chrome/browser/chromeos/settings/device_settings_service.h
+++ b/chrome/browser/chromeos/settings/device_settings_service.h
@@ -11,6 +11,7 @@
#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"
@@ -235,6 +236,17 @@ 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 a5ecc95..1ae2500 100644
--- a/chrome/browser/extensions/activity_log_unittest.cc
+++ b/chrome/browser/extensions/activity_log_unittest.cc
@@ -18,6 +18,10 @@
#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 {
@@ -75,6 +79,10 @@ 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 95d4517..4e81379 100644
--- a/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc
+++ b/chrome/browser/extensions/api/declarative_content/content_action_unittest.cc
@@ -14,6 +14,10 @@
#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 {
@@ -21,6 +25,9 @@ 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;
@@ -52,6 +59,9 @@ 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 350b423..78b22948 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,6 +16,10 @@
#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;
@@ -30,6 +34,10 @@ 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 f1fc7a0..416029f 100644
--- a/chrome/browser/extensions/extension_action_icon_factory_unittest.cc
+++ b/chrome/browser/extensions/extension_action_icon_factory_unittest.cc
@@ -25,6 +25,10 @@
#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 {
@@ -168,6 +172,10 @@ 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 4bb9f97..c3e60a9 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -111,6 +111,7 @@
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/extensions/install_limiter.h"
+#include "chrome/browser/chromeos/login/user_manager.h"
#endif
using content::BrowserContext;
@@ -4618,6 +4619,10 @@ 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);
@@ -4639,6 +4644,9 @@ 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 dfdd049..86aa75b 100644
--- a/chrome/browser/extensions/extension_service_unittest.h
+++ b/chrome/browser/extensions/extension_service_unittest.h
@@ -17,6 +17,10 @@
#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 {
@@ -72,6 +76,10 @@ 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 b91cc7f..8777981 100644
--- a/chrome/browser/extensions/extension_ui_unittest.cc
+++ b/chrome/browser/extensions/extension_ui_unittest.cc
@@ -20,6 +20,10 @@
#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;
@@ -126,6 +130,10 @@ 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 60a267b..505777e 100644
--- a/chrome/browser/extensions/page_action_controller_unittest.cc
+++ b/chrome/browser/extensions/page_action_controller_unittest.cc
@@ -22,6 +22,10 @@
#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 {
@@ -56,6 +60,10 @@ 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 cb773f8..1e7f506 100644
--- a/chrome/browser/extensions/script_badge_controller_unittest.cc
+++ b/chrome/browser/extensions/script_badge_controller_unittest.cc
@@ -31,6 +31,10 @@
#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 {
@@ -95,6 +99,10 @@ 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 4843209..6a4dc04 100644
--- a/chrome/browser/extensions/script_bubble_controller_unittest.cc
+++ b/chrome/browser/extensions/script_bubble_controller_unittest.cc
@@ -27,6 +27,10 @@
#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 {
@@ -70,6 +74,10 @@ 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 923cb47..652ce10 100644
--- a/chrome/browser/extensions/test_extension_environment.h
+++ b/chrome/browser/extensions/test_extension_environment.h
@@ -9,10 +9,6 @@
#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
@@ -64,10 +60,6 @@ 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 ba32742..568078b 100644
--- a/chrome/browser/extensions/test_extension_system.cc
+++ b/chrome/browser/extensions/test_extension_system.cc
@@ -27,10 +27,6 @@
#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 {
@@ -92,11 +88,7 @@ ExtensionService* TestExtensionSystem::CreateExtensionService(
management_policy_.reset(new ManagementPolicy());
management_policy_->RegisterProvider(
standard_management_policy_provider_.get());
-#if defined(OS_CHROMEOS)
- if (!test_user_manager_)
- test_user_manager_.reset(new chromeos::ScopedTestUserManager);
-#endif
- extension_service_.reset(new ExtensionService(profile_,
+ 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 31c2996..578ae29 100644
--- a/chrome/browser/extensions/test_extension_system.h
+++ b/chrome/browser/extensions/test_extension_system.h
@@ -7,10 +7,6 @@
#include "chrome/browser/extensions/extension_system.h"
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/settings/cros_settings.h"
-#endif
-
class CommandLine;
namespace base {
@@ -19,12 +15,6 @@ class FilePath;
class Time;
}
-#if defined(OS_CHROMEOS)
-namespace chromeos {
-class ScopedTestUserManager;
-}
-#endif
-
namespace extensions {
// Test ExtensionSystem, for use with TestingProfile.
@@ -84,13 +74,6 @@ 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 3481c0c..4e980b2 100644
--- a/chrome/browser/extensions/updater/extension_updater_unittest.cc
+++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -64,6 +64,10 @@
#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;
@@ -1476,6 +1480,10 @@ 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 91b691f..f1bd299 100644
--- a/chrome/browser/media_galleries/media_file_system_registry_unittest.cc
+++ b/chrome/browser/media_galleries/media_file_system_registry_unittest.cc
@@ -50,6 +50,10 @@
#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"
@@ -376,6 +380,10 @@ 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 a505ac7..9d6576c 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc
+++ b/chrome/browser/media_galleries/media_galleries_preferences_unittest.cc
@@ -28,6 +28,10 @@
#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 {
@@ -215,6 +219,10 @@ 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 df7faeb..7ebcb71 100644
--- a/chrome/browser/metrics/variations/variations_service_unittest.cc
+++ b/chrome/browser/metrics/variations/variations_service_unittest.cc
@@ -20,6 +20,7 @@
#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
@@ -110,7 +111,7 @@ class VariationsServiceTest : public testing::Test {
private:
#if defined(OS_CHROMEOS)
// Not used directly. Initializes CrosSettings for testing.
- chromeos::ScopedTestCrosSettings scoped_test_cros_settings;
+ chromeos::ScopedTestUserManager test_user_manager_;
#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 3fda3f9..0b3bccb 100644
--- a/chrome/browser/profiles/profile_manager_unittest.cc
+++ b/chrome/browser/profiles/profile_manager_unittest.cc
@@ -14,7 +14,6 @@
#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"
@@ -42,7 +41,6 @@
#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
@@ -127,7 +125,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::ScopedTestCrosSettings test_cros_settings_;
+ chromeos::ScopedTestUserManager test_user_manager_;
#endif
// The path to temporary directory used to contain the test operations.
@@ -142,10 +140,6 @@ 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 e7183f6..2416383 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,6 +34,10 @@
#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;
@@ -633,6 +637,10 @@ 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 8fa7d25..4b1cac0 100644
--- a/chrome/browser/themes/theme_syncable_service_unittest.cc
+++ b/chrome/browser/themes/theme_syncable_service_unittest.cc
@@ -27,6 +27,10 @@
#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 {
@@ -231,6 +235,10 @@ 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 9b1b7aa..b7d5919 100644
--- a/chrome/browser/ui/ash/event_rewriter_unittest.cc
+++ b/chrome/browser/ui/ash/event_rewriter_unittest.cc
@@ -19,6 +19,10 @@
#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 1dcae7e..7261f2e 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,6 +26,10 @@
#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;
@@ -110,6 +114,10 @@ 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 0757f69..34dc8b5 100644
--- a/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc
+++ b/chrome/browser/ui/sync/profile_signin_confirmation_helper_unittest.cc
@@ -39,6 +39,10 @@
#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>
@@ -156,6 +160,10 @@ 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) {