Home | History | Annotate | Download | only in login
      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/policy/device_policy_cros_browser_test.h"
      8 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h"
      9 #include "chrome/browser/chromeos/settings/cros_settings.h"
     10 #include "chromeos/chromeos_switches.h"
     11 #include "chromeos/settings/cros_settings_names.h"
     12 #include "components/user_manager/user_manager.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 
     17 namespace em = enterprise_management;
     18 
     19 namespace chromeos {
     20 
     21 class 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 
     33 IN_PROC_BROWSER_TEST_F(LoginScreenPolicyTest, DisableSupervisedUsers) {
     34   EXPECT_FALSE(user_manager::UserManager::Get()->AreSupervisedUsersAllowed());
     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(user_manager::UserManager::Get()->AreSupervisedUsersAllowed());
     50 }
     51 
     52 }  // namespace chromeos
     53