1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_POLICY_MOCK_DEVICE_MANAGEMENT_SERVICE_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_POLICY_MOCK_DEVICE_MANAGEMENT_SERVICE_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/policy/device_management_backend.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/policy/device_management_service.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/policy/proto/device_management_backend.pb.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace policy { 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// This proxy class is used so that expectations can be defined for a single 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// persistent instance of DMBackend while the DeviceTokenFetcher under test 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// merrily creates and destroys proxies. 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ProxyDeviceManagementBackend : public DeviceManagementBackend { 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen explicit ProxyDeviceManagementBackend(DeviceManagementBackend* backend); 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~ProxyDeviceManagementBackend(); 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ProcessRegisterRequest( 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& auth_token, 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& device_id, 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const em::DeviceRegisterRequest& request, 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DeviceRegisterResponseDelegate* delegate); 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ProcessUnregisterRequest( 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& device_management_token, 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& device_id, 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const em::DeviceUnregisterRequest& request, 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DeviceUnregisterResponseDelegate* delegate); 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ProcessPolicyRequest( 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& device_management_token, 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& device_id, 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const em::DevicePolicyRequest& request, 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DevicePolicyResponseDelegate* delegate); 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DeviceManagementBackend* backend_; // weak 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(ProxyDeviceManagementBackend); 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass MockDeviceManagementService : public DeviceManagementService { 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockDeviceManagementService(); 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~MockDeviceManagementService(); 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void set_backend(DeviceManagementBackend* backend) { 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen backend_ = backend; 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual DeviceManagementBackend* CreateBackend(); 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DeviceManagementBackend* backend_; // weak 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(MockDeviceManagementService); 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace policy 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_POLICY_MOCK_DEVICE_MANAGEMENT_SERVICE_H_ 67