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_STUB_ENTERPRISE_INSTALL_ATTRIBUTES_H_
6#define CHROME_BROWSER_CHROMEOS_POLICY_STUB_ENTERPRISE_INSTALL_ATTRIBUTES_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11#include "chrome/browser/chromeos/policy/enterprise_install_attributes.h"
12#include "components/policy/core/common/cloud/cloud_policy_constants.h"
13
14namespace policy {
15
16// This class allows tests to override specific values for easier testing.
17// To make IsEnterpriseDevice() return true, set a non-empty registration
18// user.
19class StubEnterpriseInstallAttributes : public EnterpriseInstallAttributes {
20 public:
21  StubEnterpriseInstallAttributes();
22
23  void SetDomain(const std::string& domain);
24  void SetRegistrationUser(const std::string& user);
25  void SetDeviceId(const std::string& id);
26  void SetMode(DeviceMode mode);
27
28 private:
29  DISALLOW_COPY_AND_ASSIGN(StubEnterpriseInstallAttributes);
30};
31
32// Helper class to set enterprise install attributes in the scope of a test.
33class ScopedStubEnterpriseInstallAttributes {
34 public:
35  ScopedStubEnterpriseInstallAttributes(const std::string& domain,
36                                        const std::string& registration_user,
37                                        const std::string& device_id,
38                                        DeviceMode mode);
39  ~ScopedStubEnterpriseInstallAttributes();
40};
41
42}  // namespace policy
43
44#endif  // CHROME_BROWSER_CHROMEOS_POLICY_STUB_ENTERPRISE_INSTALL_ATTRIBUTES_H_
45