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. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_POLICY_CROS_BROWSER_TEST_H_ 6 #define CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_POLICY_CROS_BROWSER_TEST_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "chrome/browser/chromeos/policy/device_policy_builder.h" 11 #include "chrome/test/base/in_process_browser_test.h" 12 #include "chromeos/dbus/fake_dbus_thread_manager.h" 13 14 namespace chromeos { 15 class FakeSessionManagerClient; 16 } 17 18 namespace policy { 19 20 class DevicePolicyCrosTestHelper { 21 public: 22 DevicePolicyCrosTestHelper(); 23 ~DevicePolicyCrosTestHelper(); 24 25 // Marks the device as enterprise-owned. Must be called to make device 26 // policies apply Chrome-wide. If this is not called, device policies will 27 // affect CrosSettings only. 28 void MarkAsEnterpriseOwned(); 29 30 // Writes the owner key to disk. To be called before installing a policy. 31 void InstallOwnerKey(); 32 device_policy()33 DevicePolicyBuilder* device_policy() { return &device_policy_; } 34 35 private: 36 void OverridePaths(); 37 38 // Carries Chrome OS device policies for tests. 39 DevicePolicyBuilder device_policy_; 40 41 DISALLOW_COPY_AND_ASSIGN(DevicePolicyCrosTestHelper); 42 }; 43 44 // Used to test Device policy changes in Chrome OS. 45 class DevicePolicyCrosBrowserTest : public InProcessBrowserTest { 46 protected: 47 DevicePolicyCrosBrowserTest(); 48 virtual ~DevicePolicyCrosBrowserTest(); 49 50 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE; 51 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE; 52 53 // Marks the device as enterprise-owned. Must be called to make device 54 // policies apply Chrome-wide. If this is not called, device policies will 55 // affect CrosSettings only. 56 void MarkAsEnterpriseOwned(); 57 58 // Writes the owner key to disk. To be called before installing a policy. 59 void InstallOwnerKey(); 60 61 // Reinstalls |device_policy_| as the policy (to be used when it was 62 // recently changed). 63 void RefreshDevicePolicy(); 64 fake_dbus_thread_manager()65 chromeos::FakeDBusThreadManager* fake_dbus_thread_manager() { 66 return fake_dbus_thread_manager_; 67 } 68 session_manager_client()69 chromeos::FakeSessionManagerClient* session_manager_client() { 70 return fake_session_manager_client_; 71 } 72 device_policy()73 DevicePolicyBuilder* device_policy() { return test_helper_.device_policy(); } 74 75 private: 76 DevicePolicyCrosTestHelper test_helper_; 77 78 // FakeDBusThreadManager uses FakeSessionManagerClient. 79 chromeos::FakeDBusThreadManager* fake_dbus_thread_manager_; 80 chromeos::FakeSessionManagerClient* fake_session_manager_client_; 81 82 DISALLOW_COPY_AND_ASSIGN(DevicePolicyCrosBrowserTest); 83 }; 84 85 } // namespace policy 86 87 #endif // CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_POLICY_CROS_BROWSER_TEST_H_ 88