mock_input_router_client.h revision 58537e28ecd584eab876aee8be7156509866d23a
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) 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class InputRouter; 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class MockInputRouterClient : public InputRouterClient { 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MockInputRouterClient(); 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~MockInputRouterClient(); 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // InputRouterClient 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual InputEventAckState FilterInputEvent( 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const WebKit::WebInputEvent& input_event, 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const ui::LatencyInfo& latency_info) OVERRIDE; 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void IncrementInFlightEventCount() OVERRIDE; 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DecrementInFlightEventCount() OVERRIDE; 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void OnHasTouchEventHandlers(bool has_handlers) OVERRIDE; 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendKeyboardEvent( 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const NativeWebKeyboardEvent& key_event, 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const ui::LatencyInfo& latency_info, 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool* is_shortcut) OVERRIDE; 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendWheelEvent( 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseWheelEventWithLatencyInfo& wheel_event) OVERRIDE; 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendMouseEvent( 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseEventWithLatencyInfo& mouse_event) OVERRIDE; 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendTouchEvent( 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const TouchEventWithLatencyInfo& touch_event) OVERRIDE; 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendGestureEvent( 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const GestureEventWithLatencyInfo& gesture_event) OVERRIDE; 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendMouseEventImmediately( 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseEventWithLatencyInfo& mouse_event) OVERRIDE; 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendTouchEventImmediately( 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const TouchEventWithLatencyInfo& touch_event) OVERRIDE; 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OnSendGestureEventImmediately( 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const GestureEventWithLatencyInfo& gesture_event) OVERRIDE; 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void DidFlush() OVERRIDE; 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void SetNeedsFlush() OVERRIDE; 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void ExpectSendCalled(bool called); 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void ExpectSendImmediatelyCalled(bool called); 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void ExpectNeedsFlushCalled(bool called); 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void ExpectDidFlushCalled(bool called); 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_input_router(InputRouter* input_router) { 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) input_router_ = input_router; 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 5658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler() const { return has_touch_handler_; } 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_filter_state(InputEventAckState filter_state) { 5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) filter_state_ = filter_state; 6058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count() const { 6258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return in_flight_event_count_; 6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 6458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_is_shortcut(bool is_shortcut) { 6558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) is_shortcut_ = is_shortcut; 6658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 6758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_allow_send_event(bool allow) { 6858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) allow_send_event_ = allow; 6958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 7058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const NativeWebKeyboardEvent& sent_key_event() { 7158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return sent_key_event_; 7258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 7358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseWheelEventWithLatencyInfo& sent_wheel_event() { 7458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return sent_wheel_event_; 7558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 7658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseEventWithLatencyInfo& sent_mouse_event() { 7758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return sent_mouse_event_; 7858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 7958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const GestureEventWithLatencyInfo& sent_gesture_event() { 8058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return sent_gesture_event_; 8158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 8258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const MouseEventWithLatencyInfo& immediately_sent_mouse_event() { 8358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return immediately_sent_mouse_event_; 8458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 8558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const TouchEventWithLatencyInfo& immediately_sent_touch_event() { 8658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return immediately_sent_touch_event_; 8758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 8858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const GestureEventWithLatencyInfo& immediately_sent_gesture_event() { 8958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return immediately_sent_gesture_event_; 9058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 9158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 9258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool did_flush_called() const { return did_flush_called_; } 9358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool needs_flush_called() const { return set_needs_flush_called_; } 9458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void set_followup_touch_event(scoped_ptr<GestureEventWithLatencyInfo> event) { 9558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) touch_followup_event_ = event.Pass(); 9658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 9758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 9858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 9958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputRouter* input_router_; 10058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int in_flight_event_count_; 10158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool has_touch_handler_; 10258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 10358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) InputEventAckState filter_state_; 10458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 10558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool is_shortcut_; 10658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool allow_send_event_; 10758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool send_called_; 10858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) NativeWebKeyboardEvent sent_key_event_; 10958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MouseWheelEventWithLatencyInfo sent_wheel_event_; 11058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MouseEventWithLatencyInfo sent_mouse_event_; 11158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TouchEventWithLatencyInfo sent_touch_event_; 11258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) GestureEventWithLatencyInfo sent_gesture_event_; 11358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 11458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool send_immediately_called_; 11558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) MouseEventWithLatencyInfo immediately_sent_mouse_event_; 11658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) TouchEventWithLatencyInfo immediately_sent_touch_event_; 11758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) GestureEventWithLatencyInfo immediately_sent_gesture_event_; 11858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 11958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool did_flush_called_; 12058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool set_needs_flush_called_; 12158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) scoped_ptr<GestureEventWithLatencyInfo> touch_followup_event_; 12258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 12358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 12458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace content 12558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 12658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // CONTENT_BROWSER_RENDERER_HOST_INPUT_MOCK_INPUT_ROUTER_CLIENT_H_ 127