13f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_SYNC_GLUE_DATA_TYPE_MANAGER_MOCK_H__
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_SYNC_GLUE_DATA_TYPE_MANAGER_MOCK_H__
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/glue/data_type_manager.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/profile_sync_test_util.h"
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_details.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_service.h"
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_type.h"
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gmock/include/gmock/gmock.h"
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
163345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickACTION_P3(NotifyFromDataTypeManagerWithResult, dtm, type, result) {
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  NotificationService::current()->Notify(
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      type,
193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      Source<browser_sync::DataTypeManager>(dtm),
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      Details<browser_sync::DataTypeManager::ConfigureResultWithErrorLocation>(
21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          result));
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickACTION_P2(NotifyFromDataTypeManager, dtm, type) {
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  NotificationService::current()->Notify(type,
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      Source<browser_sync::DataTypeManager>(dtm),
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      NotificationService::NoDetails());
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace browser_sync {
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass DataTypeManagerMock : public DataTypeManager {
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
343f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  DataTypeManagerMock();
353f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  virtual ~DataTypeManagerMock();
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  MOCK_METHOD1(Configure, void(const TypeSet&));
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  MOCK_METHOD0(Stop, void());
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  MOCK_METHOD0(controllers, const DataTypeController::TypeMap&());
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  MOCK_METHOD0(state, State());
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  browser_sync::DataTypeManager::ConfigureResultWithErrorLocation result_;
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace browser_sync
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // CHROME_BROWSER_SYNC_GLUE_DATA_TYPE_MANAGER_MOCK_H__
49