mock_device_management_backend.h revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1// Copyright (c) 2010 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_POLICY_MOCK_DEVICE_MANAGEMENT_BACKEND_H_
6#define CHROME_BROWSER_POLICY_MOCK_DEVICE_MANAGEMENT_BACKEND_H_
7#pragma once
8
9#include <map>
10#include <string>
11
12#include "base/values.h"
13#include "chrome/browser/policy/device_management_backend.h"
14#include "testing/gtest/include/gtest/gtest.h"
15#include "testing/gmock/include/gmock/gmock.h"
16
17namespace policy {
18
19namespace em = enterprise_management;
20
21// Useful for unit testing when a server-based backend isn't
22// available. Simulates both successful and failed requests to the device
23// management server.
24class MockDeviceManagementBackend
25    : public DeviceManagementBackend {
26 public:
27  MockDeviceManagementBackend();
28  virtual ~MockDeviceManagementBackend();
29
30  // DeviceManagementBackend method overrides:
31  MOCK_METHOD4(ProcessRegisterRequest, void(
32      const std::string& auth_token,
33      const std::string& device_id,
34      const em::DeviceRegisterRequest& request,
35      DeviceRegisterResponseDelegate* delegate));
36
37  MOCK_METHOD3(ProcessUnregisterRequest, void(
38      const std::string& device_management_token,
39      const em::DeviceUnregisterRequest& request,
40      DeviceUnregisterResponseDelegate* delegate));
41
42  MOCK_METHOD3(ProcessPolicyRequest, void(
43      const std::string& device_management_token,
44      const em::DevicePolicyRequest& request,
45      DevicePolicyResponseDelegate* delegate));
46
47  void AllShouldSucceed();
48  void AllShouldFail();
49  void UnmanagedDevice();
50
51  void SimulateSuccessfulRegisterRequest(
52      const std::string& auth_token,
53      const std::string& device_id,
54      const em::DeviceRegisterRequest& request,
55      DeviceRegisterResponseDelegate* delegate);
56
57  void SimulateSuccessfulPolicyRequest(
58      const std::string& device_management_token,
59      const em::DevicePolicyRequest& request,
60      DevicePolicyResponseDelegate* delegate);
61
62  void SimulateFailedRegisterRequest(
63      const std::string& auth_token,
64      const std::string& device_id,
65      const em::DeviceRegisterRequest& request,
66      DeviceRegisterResponseDelegate* delegate);
67
68  void SimulateFailedPolicyRequest(
69      const std::string& device_management_token,
70      const em::DevicePolicyRequest& request,
71      DevicePolicyResponseDelegate* delegate);
72
73  void SimulateUnmanagedRegisterRequest(
74      const std::string& auth_token,
75      const std::string& device_id,
76      const em::DeviceRegisterRequest& request,
77      DeviceRegisterResponseDelegate* delegate);
78
79  void AddBooleanPolicy(const char* policy_name, bool value);
80
81 private:
82  em::DevicePolicyResponse policy_response_;
83  em::DevicePolicySetting* policy_setting_;
84
85  DISALLOW_COPY_AND_ASSIGN(MockDeviceManagementBackend);
86};
87
88}  // namespace policy
89
90#endif  // CHROME_BROWSER_POLICY_MOCK_DEVICE_MANAGEMENT_BACKEND_H_
91