1// Copyright 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 COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_EXTERNAL_DATA_MANAGER_H_
6#define COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_EXTERNAL_DATA_MANAGER_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11#include "base/memory/ref_counted.h"
12#include "base/memory/scoped_ptr.h"
13#include "components/policy/core/common/cloud/cloud_external_data_manager.h"
14#include "components/policy/core/common/external_data_fetcher.h"
15#include "testing/gmock/include/gmock/gmock.h"
16
17namespace net {
18class URLRequestContextGetter;
19}
20
21namespace policy {
22
23class ExternalDataFetcher;
24
25class MockCloudExternalDataManager : public CloudExternalDataManager {
26 public:
27  MockCloudExternalDataManager();
28  virtual ~MockCloudExternalDataManager();
29
30  MOCK_METHOD0(OnPolicyStoreLoaded, void(void));
31  MOCK_METHOD1(Connect, void(scoped_refptr<net::URLRequestContextGetter>));
32  MOCK_METHOD0(Disconnect, void(void));
33  MOCK_METHOD2(Fetch, void(const std::string&,
34                           const ExternalDataFetcher::FetchCallback&));
35
36  scoped_ptr<ExternalDataFetcher> CreateExternalDataFetcher(
37      const std::string& policy);
38
39 private:
40  DISALLOW_COPY_AND_ASSIGN(MockCloudExternalDataManager);
41};
42
43}  // namespace policy
44
45#endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_MOCK_CLOUD_EXTERNAL_DATA_MANAGER_H_
46