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 PingRenderer() OVERRIDE; 36 virtual void SendAutofillTypePredictionsToRenderer( 37 const std::vector<FormStructure*>& forms) OVERRIDE; 38 virtual void RendererShouldAcceptDataListSuggestion( 39 const base::string16& value) OVERRIDE; 40 virtual void RendererShouldClearFilledForm() OVERRIDE; 41 virtual void RendererShouldClearPreviewedForm() OVERRIDE; 42 virtual void RendererShouldFillFieldWithValue( 43 const base::string16& value) OVERRIDE; 44 virtual void RendererShouldPreviewFieldWithValue( 45 const base::string16& value) OVERRIDE; 46 47 // Methods that tests can use to specialize functionality. 48 49 // Sets the URL request context for this instance. |url_request_context| 50 // should outlive this instance. 51 void SetURLRequestContext(net::URLRequestContextGetter* url_request_context); 52 53 private: 54 scoped_ptr<base::SequencedWorkerPoolOwner> blocking_pool_owner_; 55 net::URLRequestContextGetter* url_request_context_; 56 57 DISALLOW_COPY_AND_ASSIGN(TestAutofillDriver); 58}; 59 60} // namespace autofill 61 62#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_TEST_AUTOFILL_DRIVER_H_ 63