mock_input_router_client.h revision f2477e01787aa58f445919b809d89e252beef54f
158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "content/browser/renderer_host/input/input_router_client.h" 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace content { 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class InputEvent; 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class InputRouter; 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class MockInputRouterClient : public InputRouterClient { 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MockInputRouterClient(); 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~MockInputRouterClient(); 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // InputRouterClient 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual InputEventAckState FilterInputEvent( 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebInputEvent& input_event, 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const ui::LatencyInfo& latency_info) OVERRIDE; 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void IncrementInFlightEventCount() OVERRIDE; 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DecrementInFlightEventCount() OVERRIDE; 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void OnHasTouchEventHandlers(bool has_handlers) OVERRIDE; 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual OverscrollController* GetOverscrollController() const OVERRIDE; 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DidFlush() OVERRIDE; 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void SetNeedsFlush() OVERRIDE; 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool GetAndResetFilterEventCalled(); 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_input_router(InputRouter* input_router) { 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) input_router_ = input_router; 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler() const { return has_touch_handler_; } 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_filter_state(InputEventAckState filter_state) { 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) filter_state_ = filter_state; 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count() const { 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return in_flight_event_count_; 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_allow_send_event(bool allow) { 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) filter_state_ = INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS; 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool did_flush_called() const { return did_flush_called_; } 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool needs_flush_called() const { return set_needs_flush_called_; } 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputRouter* input_router_; 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count_; 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler_; 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputEventAckState filter_state_; 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool filter_input_event_called_; 604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) scoped_ptr<InputEvent> last_filter_event_; 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool did_flush_called_; 6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool set_needs_flush_called_; 6458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 6558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace content 6758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 69