1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/command_line.h"
6 #include "base/prefs/pref_service.h"
7 #include "base/values.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/supervised_user/supervised_user_constants.h"
10 #include "chrome/browser/supervised_user/supervised_user_service.h"
11 #include "chrome/browser/supervised_user/supervised_user_service_factory.h"
12 #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
13 #include "chrome/browser/supervised_user/supervised_user_settings_service_factory.h"
14 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
15 #include "chrome/browser/sync/test/integration/sync_test.h"
16 #include "chrome/common/chrome_switches.h"
18 class SingleClientSupervisedUserSettingsSyncTest : public SyncTest {
20 SingleClientSupervisedUserSettingsSyncTest() : SyncTest(SINGLE_CLIENT) {}
22 virtual ~SingleClientSupervisedUserSettingsSyncTest() {}
24 // SyncTest overrides:
25 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
26 SyncTest::SetUpCommandLine(command_line);
27 command_line->AppendSwitchASCII(switches::kSupervisedUserId, "asdf");
31 IN_PROC_BROWSER_TEST_F(SingleClientSupervisedUserSettingsSyncTest, Sanity) {
32 ASSERT_TRUE(SetupClients());
33 for (int i = 0; i < num_clients(); ++i) {
34 Profile* profile = GetProfile(i);
35 // Supervised users are prohibited from signing into the browser. Currently
36 // that means they're also unable to sync anything, so override that for
38 // TODO(pamg): Remove this override (and the supervised user setting it
39 // requires) once sync and signin are properly separated for supervised
41 // See http://crbug.com/239785.
42 SupervisedUserSettingsService* settings_service =
43 SupervisedUserSettingsServiceFactory::GetForProfile(profile);
44 scoped_ptr<base::Value> allow_signin(new base::FundamentalValue(true));
45 settings_service->SetLocalSettingForTesting(
46 supervised_users::kSigninAllowed,
49 // The user should not be signed in.
51 // ProfileSyncServiceHarness sets the password, which can't be empty.
52 std::string password = "password";
53 GetClient(i)->SetCredentials(username, password);
55 ASSERT_TRUE(SetupSync());