login_screen_policy_browsertest.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright 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. 4 5#include "base/command_line.h" 6#include "base/memory/ref_counted.h" 7#include "chrome/browser/chromeos/login/users/user_manager.h" 8#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" 9#include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" 10#include "chrome/browser/chromeos/settings/cros_settings.h" 11#include "chromeos/chromeos_switches.h" 12#include "chromeos/settings/cros_settings_names.h" 13#include "content/public/test/test_utils.h" 14#include "testing/gmock/include/gmock/gmock.h" 15#include "testing/gtest/include/gtest/gtest.h" 16 17namespace em = enterprise_management; 18 19namespace chromeos { 20 21class LoginScreenPolicyTest : public policy::DevicePolicyCrosBrowserTest { 22 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 23 command_line->AppendSwitch(switches::kLoginManager); 24 } 25 26 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 27 InstallOwnerKey(); 28 MarkAsEnterpriseOwned(); 29 DevicePolicyCrosBrowserTest::SetUpInProcessBrowserTestFixture(); 30 } 31}; 32 33IN_PROC_BROWSER_TEST_F(LoginScreenPolicyTest, DisableSupervisedUsers) { 34 EXPECT_FALSE(chromeos::UserManager::Get()->AreLocallyManagedUsersAllowed()); 35 36 scoped_refptr<content::MessageLoopRunner> runner( 37 new content::MessageLoopRunner); 38 scoped_ptr<CrosSettings::ObserverSubscription> subscription( 39 chromeos::CrosSettings::Get()->AddSettingsObserver( 40 chromeos::kAccountsPrefSupervisedUsersEnabled, 41 runner->QuitClosure())); 42 43 em::ChromeDeviceSettingsProto& proto(device_policy()->payload()); 44 proto.mutable_supervised_users_settings()->set_supervised_users_enabled(true); 45 RefreshDevicePolicy(); 46 47 runner->Run(); 48 49 EXPECT_TRUE(chromeos::UserManager::Get()->AreLocallyManagedUsersAllowed()); 50} 51 52} // namespace chromeos 53