test_autofill_driver.h revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
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_AUTOFILL_CORE_BROWSER_TEST_AUTOFILL_DRIVER_H_
6#define COMPONENTS_AUTOFILL_CORE_BROWSER_TEST_AUTOFILL_DRIVER_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "base/memory/ref_counted.h"
11#include "components/autofill/core/browser/autofill_driver.h"
12
13namespace base {
14class SequencedWorkerPoolOwner;
15}
16
17namespace autofill {
18
19// This class is only for easier writing of tests.
20class TestAutofillDriver : public AutofillDriver {
21 public:
22  TestAutofillDriver();
23  virtual ~TestAutofillDriver();
24
25  // AutofillDriver implementation.
26  virtual bool IsOffTheRecord() const OVERRIDE;
27  // Returns the value passed in to the last call to |SetURLRequestContext()|
28  // or NULL if that method has never been called.
29  virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE;
30  virtual base::SequencedWorkerPool* GetBlockingPool() OVERRIDE;
31  virtual bool RendererIsAvailable() OVERRIDE;
32  virtual void SendFormDataToRenderer(int query_id,
33                                      RendererFormDataAction action,
34                                      const FormData& data) OVERRIDE;
35  virtual void SendAutofillTypePredictionsToRenderer(
36      const std::vector<FormStructure*>& forms) OVERRIDE;
37  virtual void RendererShouldAcceptDataListSuggestion(
38      const base::string16& value) OVERRIDE;
39  virtual void RendererShouldClearFilledForm() OVERRIDE;
40  virtual void RendererShouldClearPreviewedForm() OVERRIDE;
41  virtual void RendererShouldFillFieldWithValue(
42      const base::string16& value) OVERRIDE;
43  virtual void RendererShouldPreviewFieldWithValue(
44      const base::string16& value) OVERRIDE;
45
46  // Methods that tests can use to specialize functionality.
47
48  // Sets the URL request context for this instance. |url_request_context|
49  // should outlive this instance.
50  void SetURLRequestContext(net::URLRequestContextGetter* url_request_context);
51
52 private:
53  scoped_ptr<base::SequencedWorkerPoolOwner> blocking_pool_owner_;
54  net::URLRequestContextGetter* url_request_context_;
55
56  DISALLOW_COPY_AND_ASSIGN(TestAutofillDriver);
57};
58
59}  // namespace autofill
60
61#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_TEST_AUTOFILL_DRIVER_H_
62