blob: cf41b97d46e5b8c7b0070b5842e75c4c7f00d25c [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_POLICY_ENTERPRISE_POLICY_TEST_HELPER_H_
#define IOS_CHROME_BROWSER_POLICY_ENTERPRISE_POLICY_TEST_HELPER_H_
#include <memory>
#include "base/files/file_path.h"
#include "components/policy/core/common/mock_configuration_policy_provider.h"
class BrowserPolicyConnectorIOS;
class BrowserStatePolicyConnector;
class PrefService;
class TestChromeBrowserState;
// Builds the boilerplate enterprise policy configuration and creates a browser
// state configured with that policy.
class EnterprisePolicyTestHelper {
public:
// Creates a new instance using |state_directory_path| as storage for the
// backing state.
explicit EnterprisePolicyTestHelper(
const base::FilePath& state_directory_path);
~EnterprisePolicyTestHelper();
// Returns the browser state configured with |policy_provider_|.
TestChromeBrowserState* GetBrowserState() const;
// Returns the backing local state.
PrefService* GetLocalState();
// Returns the policy provider attached to |browser_state_|.
policy::MockConfigurationPolicyProvider* GetPolicyProvider();
// Returns the browser policy connector.
BrowserPolicyConnectorIOS* GetBrowserPolicyConnector();
private:
// The enterprise configuration policy provider.
policy::MockConfigurationPolicyProvider policy_provider_;
// The application-level policy connector. Must outlive |local_state_|.
std::unique_ptr<BrowserPolicyConnectorIOS> browser_policy_connector_;
// The local state PrefService managed by policy.
std::unique_ptr<PrefService> local_state_;
// The BrowserState-level policy connector. Must outlive |pref_service_|.
std::unique_ptr<BrowserStatePolicyConnector> browser_state_policy_connector_;
// The browser state configured with the |policy_provider_|.
std::unique_ptr<TestChromeBrowserState> browser_state_;
EnterprisePolicyTestHelper& operator=(const EnterprisePolicyTestHelper&) =
delete;
EnterprisePolicyTestHelper(const EnterprisePolicyTestHelper&) = delete;
};
#endif // IOS_CHROME_BROWSER_POLICY_ENTERPRISE_POLICY_TEST_HELPER_H_