| Index: chrome/browser/themes/theme_service_unittest.cc
|
| diff --git a/chrome/browser/themes/theme_service_unittest.cc b/chrome/browser/themes/theme_service_unittest.cc
|
| index 4168f965971655ab3981d5091569a709bd04de1d..6288935b6b450b9d5f8f06bcf4ce029159defb59 100644
|
| --- a/chrome/browser/themes/theme_service_unittest.cc
|
| +++ b/chrome/browser/themes/theme_service_unittest.cc
|
| @@ -6,19 +6,26 @@
|
|
|
| #include "base/json/json_reader.h"
|
| #include "chrome/browser/extensions/extension_service_unittest.h"
|
| +#include "chrome/browser/managed_mode/managed_user_service.h"
|
| +#include "chrome/browser/managed_mode/managed_user_service_factory.h"
|
| #include "chrome/browser/themes/custom_theme_supplier.h"
|
| #include "chrome/browser/themes/theme_service_factory.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_manifest_constants.h"
|
| #include "chrome/common/pref_names.h"
|
| +#include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| +#include "chrome/test/base/testing_profile_manager.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace theme_service_internal {
|
|
|
| class ThemeServiceTest : public ExtensionServiceTestBase {
|
| public:
|
| - ThemeServiceTest() {}
|
| + ThemeServiceTest() {
|
| + manager_.reset(
|
| + new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
|
| + }
|
| virtual ~ThemeServiceTest() {}
|
|
|
| scoped_refptr<extensions::Extension> MakeThemeExtension(base::FilePath path) {
|
| @@ -40,11 +47,20 @@ class ThemeServiceTest : public ExtensionServiceTestBase {
|
| virtual void SetUp() {
|
| ExtensionServiceTestBase::SetUp();
|
| InitializeEmptyExtensionService();
|
| + bool success = manager_->SetUp();
|
| + ASSERT_TRUE(success);
|
| }
|
|
|
| const CustomThemeSupplier* get_theme_supplier(ThemeService* theme_service) {
|
| return theme_service->get_theme_supplier();
|
| }
|
| +
|
| + TestingProfileManager* manager() {
|
| + return manager_.get();
|
| + }
|
| +
|
| + private:
|
| + scoped_ptr<TestingProfileManager> manager_;
|
| };
|
|
|
| // Installs then uninstalls a theme and makes sure that the ThemeService
|
| @@ -103,6 +119,18 @@ TEST_F(ThemeServiceTest, ManagedUserThemeReplacesDefaultTheme) {
|
| CustomThemeSupplier::MANAGED_USER_THEME);
|
| }
|
|
|
| +TEST_F(ThemeServiceTest, ManagedUserThemeNewUser) {
|
| + TestingProfile* profile = manager()->CreateTestingProfile("mu");
|
| + // Simulate the current initialization behavior: first the ThemeService is
|
| + // created, then the supervised user profile is initialized.
|
| + ThemeService* theme_service =
|
| + ThemeServiceFactory::GetForProfile(profile);
|
| + ManagedUserServiceFactory::GetForProfile(profile)->InitForTesting();
|
| + EXPECT_EQ(get_theme_supplier(theme_service)->get_theme_type(),
|
| + CustomThemeSupplier::MANAGED_USER_THEME);
|
| + manager()->DeleteTestingProfile("mu");
|
| +}
|
| +
|
| #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
| // Checks that managed users don't use the system theme even if it is the
|
| // default. The system theme is only available on Linux.
|
|
|