1// Copyright (c) 2011 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_WEBDATA_COMMON_WEB_DATA_SERVICE_TEST_UTIL_H__
6#define COMPONENTS_WEBDATA_COMMON_WEB_DATA_SERVICE_TEST_UTIL_H__
7
8#include "base/basictypes.h"
9#include "base/message_loop/message_loop.h"
10#include "chrome/browser/webdata/web_data_service_factory.h"
11#include "components/signin/core/browser/webdata/token_web_data.h"
12
13// Base class for mocks of WebDataService, that does nothing in
14// Shutdown().
15class MockWebDataServiceWrapperBase : public WebDataServiceWrapper {
16 public:
17  MockWebDataServiceWrapperBase();
18  virtual ~MockWebDataServiceWrapperBase();
19
20  virtual void Shutdown() OVERRIDE;
21
22 private:
23  DISALLOW_COPY_AND_ASSIGN(MockWebDataServiceWrapperBase);
24};
25
26// Pass your fake WebDataService in the constructor and this will
27// serve it up via GetWebData().
28class MockWebDataServiceWrapper : public MockWebDataServiceWrapperBase {
29 public:
30  MockWebDataServiceWrapper(
31      scoped_refptr<autofill::AutofillWebDataService> fake_autofill,
32      scoped_refptr<TokenWebData> fake_token);
33
34  virtual ~MockWebDataServiceWrapper();
35
36  virtual scoped_refptr<autofill::AutofillWebDataService>
37      GetAutofillWebData() OVERRIDE;
38
39  virtual scoped_refptr<TokenWebData> GetTokenWebData() OVERRIDE;
40
41 protected:
42  scoped_refptr<autofill::AutofillWebDataService> fake_autofill_web_data_;
43  scoped_refptr<TokenWebData> fake_token_web_data_;
44
45 private:
46  DISALLOW_COPY_AND_ASSIGN(MockWebDataServiceWrapper);
47};
48
49#endif  // COMPONENTS_WEBDATA_COMMON_WEB_DATA_SERVICE_TEST_UTIL_H__
50