Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1319)

Unified Diff: content/browser/renderer_host/input/immediate_input_router_unittest.cc

Issue 19220002: [WIP] BufferedInputRouter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix client assignment Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/immediate_input_router_unittest.cc
diff --git a/content/browser/renderer_host/input/immediate_input_router_unittest.cc b/content/browser/renderer_host/input/immediate_input_router_unittest.cc
index 371e02e01b32c939dc55e5312d9bc4795bcb9429..3d540e07fe946b37745feb4975de7744046a0e7f 100644
--- a/content/browser/renderer_host/input/immediate_input_router_unittest.cc
+++ b/content/browser/renderer_host/input/immediate_input_router_unittest.cc
@@ -8,6 +8,8 @@
#include "content/browser/renderer_host/input/gesture_event_filter.h"
#include "content/browser/renderer_host/input/immediate_input_router.h"
#include "content/browser/renderer_host/input/input_router_client.h"
+#include "content/browser/renderer_host/input/input_router_unittest.h"
+#include "content/browser/renderer_host/input/mock_input_router_client.h"
#include "content/common/content_constants_internal.h"
#include "content/common/edit_command.h"
#include "content/common/input_messages.h"
@@ -100,266 +102,22 @@ bool EventListIsSubset(const ScopedVector<ui::TouchEvent>& subset,
} // namespace
-class MockInputRouterClient : public InputRouterClient {
+class ImmediateInputRouterTest : public InputRouterTest {
public:
- MockInputRouterClient()
- : input_router_(NULL),
- in_flight_event_count_(0),
- has_touch_handler_(false),
- ack_count_(0),
- unexpected_event_ack_called_(false),
- ack_state_(INPUT_EVENT_ACK_STATE_UNKNOWN),
- filter_state_(INPUT_EVENT_ACK_STATE_NOT_CONSUMED),
- is_shortcut_(false),
- allow_send_key_event_(true),
- send_called_(false),
- send_immediately_called_(false) {
- }
- virtual ~MockInputRouterClient() {
- }
-
- // InputRouterClient
- virtual InputEventAckState FilterInputEvent(
- const WebInputEvent& input_event,
- const ui::LatencyInfo& latency_info) OVERRIDE {
- return filter_state_;
- }
-
- // Called each time a WebInputEvent IPC is sent.
- virtual void IncrementInFlightEventCount() OVERRIDE {
- ++in_flight_event_count_;
- }
-
- // Called each time a WebInputEvent ACK IPC is received.
- virtual void DecrementInFlightEventCount() OVERRIDE {
- --in_flight_event_count_;
- }
-
- // Called when the renderer notifies that it has touch event handlers.
- virtual void OnHasTouchEventHandlers(bool has_handlers) OVERRIDE {
- has_touch_handler_ = has_handlers;
- }
-
- virtual bool OnSendKeyboardEvent(
- const NativeWebKeyboardEvent& key_event,
- const ui::LatencyInfo& latency_info,
- bool* is_shortcut) OVERRIDE {
- send_called_ = true;
- sent_key_event_ = key_event;
- *is_shortcut = is_shortcut_;
-
- return allow_send_key_event_;
- }
-
- virtual bool OnSendWheelEvent(
- const MouseWheelEventWithLatencyInfo& wheel_event) OVERRIDE {
- send_called_ = true;
- sent_wheel_event_ = wheel_event;
-
- return true;
- }
-
- virtual bool OnSendMouseEvent(
- const MouseEventWithLatencyInfo& mouse_event) OVERRIDE {
- send_called_ = true;
- sent_mouse_event_ = mouse_event;
-
- return true;
- }
-
- virtual bool OnSendTouchEvent(
- const TouchEventWithLatencyInfo& touch_event) OVERRIDE {
- send_called_ = true;
- sent_touch_event_ = touch_event;
-
- return true;
- }
-
- virtual bool OnSendGestureEvent(
- const GestureEventWithLatencyInfo& gesture_event) OVERRIDE {
- send_called_ = true;
- sent_gesture_event_ = gesture_event;
-
- return input_router_->ShouldForwardGestureEvent(gesture_event);
- }
-
- virtual bool OnSendMouseEventImmediately(
- const MouseEventWithLatencyInfo& mouse_event) OVERRIDE {
- send_immediately_called_ = true;
- immediately_sent_mouse_event_ = mouse_event;
-
- return true;
- }
-
- virtual bool OnSendTouchEventImmediately(
- const TouchEventWithLatencyInfo& touch_event) OVERRIDE {
- send_immediately_called_ = true;
- immediately_sent_touch_event_ = touch_event;
-
- return true;
- }
-
- virtual bool OnSendGestureEventImmediately(
- const GestureEventWithLatencyInfo& gesture_event) OVERRIDE {
- send_immediately_called_ = true;
- immediately_sent_gesture_event_ = gesture_event;
-
- return true;
- }
-
- // Called upon event ack receipt from the renderer.
- virtual void OnKeyboardEventAck(const NativeWebKeyboardEvent& event,
- InputEventAckState ack_result) OVERRIDE {
- VLOG(1) << __FUNCTION__ << " called!";
- acked_key_event_ = event;
- RecordAckCalled(ack_result);
- }
- virtual void OnWheelEventAck(const WebMouseWheelEvent& event,
- InputEventAckState ack_result) OVERRIDE {
- VLOG(1) << __FUNCTION__ << " called!";
- acked_wheel_event_ = event;
- RecordAckCalled(ack_result);
- }
- virtual void OnTouchEventAck(const TouchEventWithLatencyInfo& event,
- InputEventAckState ack_result) OVERRIDE {
- VLOG(1) << __FUNCTION__ << " called!";
- acked_touch_event_ = event;
- RecordAckCalled(ack_result);
- }
- virtual void OnGestureEventAck(const WebGestureEvent& event,
- InputEventAckState ack_result) OVERRIDE {
- VLOG(1) << __FUNCTION__ << " called!";
- RecordAckCalled(ack_result);
- }
- virtual void OnUnexpectedEventAck(bool bad_message) OVERRIDE {
- VLOG(1) << __FUNCTION__ << " called!";
- unexpected_event_ack_called_ = true;
- }
-
- void ExpectSendCalled(bool called) {
- EXPECT_EQ(called, send_called_);
- send_called_ = false;
- }
- void ExpectSendImmediatelyCalled(bool called) {
- EXPECT_EQ(called, send_immediately_called_);
- send_immediately_called_ = false;
- }
- void ExpectAckCalled(int times) {
- EXPECT_EQ(times, ack_count_);
- ack_count_ = 0;
- }
-
- void set_input_router(InputRouter* input_router) {
- input_router_ = input_router;
- }
- bool has_touch_handler() const { return has_touch_handler_; }
- InputEventAckState ack_state() const { return ack_state_; }
- void set_filter_state(InputEventAckState filter_state) {
- filter_state_ = filter_state;
- }
- bool unexpected_event_ack_called() const {
- return unexpected_event_ack_called_;
- }
- const NativeWebKeyboardEvent& acked_keyboard_event() {
- return acked_key_event_;
- }
- const WebMouseWheelEvent& acked_wheel_event() {
- return acked_wheel_event_;
- }
- const TouchEventWithLatencyInfo& acked_touch_event() {
- return acked_touch_event_;
- }
- void set_is_shortcut(bool is_shortcut) {
- is_shortcut_ = is_shortcut;
- }
- void set_allow_send_key_event(bool allow) {
- allow_send_key_event_ = allow;
- }
- const NativeWebKeyboardEvent& sent_key_event() {
- return sent_key_event_;
- }
- const MouseWheelEventWithLatencyInfo& sent_wheel_event() {
- return sent_wheel_event_;
- }
- const MouseEventWithLatencyInfo& sent_mouse_event() {
- return sent_mouse_event_;
- }
- const GestureEventWithLatencyInfo& sent_gesture_event() {
- return sent_gesture_event_;
- }
- const MouseEventWithLatencyInfo& immediately_sent_mouse_event() {
- return immediately_sent_mouse_event_;
- }
- const TouchEventWithLatencyInfo& immediately_sent_touch_event() {
- return immediately_sent_touch_event_;
- }
- const GestureEventWithLatencyInfo& immediately_sent_gesture_event() {
- return immediately_sent_gesture_event_;
- }
-
- private:
- void RecordAckCalled(InputEventAckState ack_result) {
- ++ack_count_;
- ack_state_ = ack_result;
- }
-
- InputRouter* input_router_;
- int in_flight_event_count_;
- bool has_touch_handler_;
-
- int ack_count_;
- bool unexpected_event_ack_called_;
- InputEventAckState ack_state_;
- InputEventAckState filter_state_;
- NativeWebKeyboardEvent acked_key_event_;
- WebMouseWheelEvent acked_wheel_event_;
- TouchEventWithLatencyInfo acked_touch_event_;
-
- bool is_shortcut_;
- bool allow_send_key_event_;
- bool send_called_;
- NativeWebKeyboardEvent sent_key_event_;
- MouseWheelEventWithLatencyInfo sent_wheel_event_;
- MouseEventWithLatencyInfo sent_mouse_event_;
- TouchEventWithLatencyInfo sent_touch_event_;
- GestureEventWithLatencyInfo sent_gesture_event_;
-
- bool send_immediately_called_;
- MouseEventWithLatencyInfo immediately_sent_mouse_event_;
- TouchEventWithLatencyInfo immediately_sent_touch_event_;
- GestureEventWithLatencyInfo immediately_sent_gesture_event_;
-};
-
-class ImmediateInputRouterTest : public testing::Test {
- public:
- ImmediateInputRouterTest() {
- }
- virtual ~ImmediateInputRouterTest() {
- }
+ ImmediateInputRouterTest() {}
+ virtual ~ImmediateInputRouterTest() {}
protected:
- // testing::Test
- virtual void SetUp() {
- browser_context_.reset(new TestBrowserContext());
- process_.reset(new MockRenderProcessHost(browser_context_.get()));
- client_.reset(new MockInputRouterClient());
- input_router_.reset(new ImmediateInputRouter(
- process_.get(),
- client_.get(),
- MSG_ROUTING_NONE));
- client_->set_input_router(input_router_.get());
- }
- virtual void TearDown() {
- // Process all pending tasks to avoid leaks.
- base::MessageLoop::current()->RunUntilIdle();
-
- input_router_.reset();
- client_.reset();
- process_.reset();
- browser_context_.reset();
+ // InputRouterTest
+ virtual scoped_ptr<InputRouter> CreateInputRouter(RenderProcessHost* process,
+ InputRouterClient* client,
+ InputAckHandler* handler,
+ int routing_id) OVERRIDE {
+ return scoped_ptr<InputRouter>(
+ new ImmediateInputRouter(process, client, handler, routing_id));
}
- void SendInputEventACK(WebInputEvent::Type type,
+ void SendInputEventACK(WebKit::WebInputEvent::Type type,
InputEventAckState ack_result) {
scoped_ptr<IPC::Message> response(
new InputHostMsg_HandleInputEvent_ACK(0, type, ack_result,
@@ -367,177 +125,16 @@ class ImmediateInputRouterTest : public testing::Test {
input_router_->OnMessageReceived(*response);
}
- void SimulateKeyboardEvent(WebInputEvent::Type type) {
- NativeWebKeyboardEvent key_event;
- key_event.type = type;
- key_event.windowsKeyCode = ui::VKEY_L; // non-null made up value.
- input_router_->SendKeyboardEvent(key_event, ui::LatencyInfo());
- client_->ExpectSendCalled(true);
- EXPECT_EQ(type, client_->sent_key_event().type);
- EXPECT_EQ(key_event.windowsKeyCode,
- client_->sent_key_event().windowsKeyCode);
- }
-
- void SimulateWheelEvent(float dX, float dY, int modifiers, bool precise) {
- WebMouseWheelEvent wheel_event;
- wheel_event.type = WebInputEvent::MouseWheel;
- wheel_event.deltaX = dX;
- wheel_event.deltaY = dY;
- wheel_event.modifiers = modifiers;
- wheel_event.hasPreciseScrollingDeltas = precise;
- input_router_->SendWheelEvent(
- MouseWheelEventWithLatencyInfo(wheel_event, ui::LatencyInfo()));
- client_->ExpectSendCalled(true);
- EXPECT_EQ(wheel_event.type, client_->sent_wheel_event().event.type);
- EXPECT_EQ(dX, client_->sent_wheel_event().event.deltaX);
- }
-
- void SimulateMouseMove(int x, int y, int modifiers) {
- WebMouseEvent mouse_event;
- mouse_event.type = WebInputEvent::MouseMove;
- mouse_event.x = mouse_event.windowX = x;
- mouse_event.y = mouse_event.windowY = y;
- mouse_event.modifiers = modifiers;
- input_router_->SendMouseEvent(
- MouseEventWithLatencyInfo(mouse_event, ui::LatencyInfo()));
- client_->ExpectSendCalled(true);
- client_->ExpectSendImmediatelyCalled(true);
- EXPECT_EQ(mouse_event.type, client_->sent_mouse_event().event.type);
- EXPECT_EQ(x, client_->sent_mouse_event().event.x);
- EXPECT_EQ(mouse_event.type,
- client_->immediately_sent_mouse_event().event.type);
- EXPECT_EQ(x, client_->immediately_sent_mouse_event().event.x);
- }
-
- void SimulateWheelEventWithPhase(WebMouseWheelEvent::Phase phase) {
- WebMouseWheelEvent wheel_event;
- wheel_event.type = WebInputEvent::MouseWheel;
- wheel_event.phase = phase;
- input_router_->SendWheelEvent(
- MouseWheelEventWithLatencyInfo(wheel_event, ui::LatencyInfo()));
- client_->ExpectSendCalled(true);
- EXPECT_EQ(wheel_event.type, client_->sent_wheel_event().event.type);
- EXPECT_EQ(phase, client_->sent_wheel_event().event.phase);
- }
-
- // Inject provided synthetic WebGestureEvent instance.
- void SimulateGestureEventCore(WebInputEvent::Type type,
- WebGestureEvent::SourceDevice sourceDevice,
- WebGestureEvent* gesture_event) {
- gesture_event->type = type;
- gesture_event->sourceDevice = sourceDevice;
- GestureEventWithLatencyInfo gesture_with_latency(
- *gesture_event, ui::LatencyInfo());
- input_router_->SendGestureEvent(gesture_with_latency);
- client_->ExpectSendCalled(true);
- EXPECT_EQ(type, client_->sent_gesture_event().event.type);
- EXPECT_EQ(sourceDevice, client_->sent_gesture_event().event.sourceDevice);
- }
-
- // Inject simple synthetic WebGestureEvent instances.
- void SimulateGestureEvent(WebInputEvent::Type type,
- WebGestureEvent::SourceDevice sourceDevice) {
- WebGestureEvent gesture_event;
- SimulateGestureEventCore(type, sourceDevice, &gesture_event);
- }
-
- void SimulateGestureScrollUpdateEvent(float dX, float dY, int modifiers) {
- WebGestureEvent gesture_event;
- gesture_event.data.scrollUpdate.deltaX = dX;
- gesture_event.data.scrollUpdate.deltaY = dY;
- gesture_event.modifiers = modifiers;
- SimulateGestureEventCore(WebInputEvent::GestureScrollUpdate,
- WebGestureEvent::Touchscreen, &gesture_event);
- }
-
- void SimulateGesturePinchUpdateEvent(float scale,
- float anchorX,
- float anchorY,
- int modifiers) {
- WebGestureEvent gesture_event;
- gesture_event.data.pinchUpdate.scale = scale;
- gesture_event.x = anchorX;
- gesture_event.y = anchorY;
- gesture_event.modifiers = modifiers;
- SimulateGestureEventCore(WebInputEvent::GesturePinchUpdate,
- WebGestureEvent::Touchscreen, &gesture_event);
- }
-
- // Inject synthetic GestureFlingStart events.
- void SimulateGestureFlingStartEvent(
- float velocityX,
- float velocityY,
- WebGestureEvent::SourceDevice sourceDevice) {
- WebGestureEvent gesture_event;
- gesture_event.data.flingStart.velocityX = velocityX;
- gesture_event.data.flingStart.velocityY = velocityY;
- SimulateGestureEventCore(WebInputEvent::GestureFlingStart, sourceDevice,
- &gesture_event);
- }
-
- // Set the timestamp for the touch-event.
- void SetTouchTimestamp(base::TimeDelta timestamp) {
- touch_event_.timeStampSeconds = timestamp.InSecondsF();
- }
-
- // Sends a touch event (irrespective of whether the page has a touch-event
- // handler or not).
- void SendTouchEvent() {
- input_router_->SendTouchEvent(
- TouchEventWithLatencyInfo(touch_event_, ui::LatencyInfo()));
-
- // Mark all the points as stationary. And remove the points that have been
- // released.
- int point = 0;
- for (unsigned int i = 0; i < touch_event_.touchesLength; ++i) {
- if (touch_event_.touches[i].state == WebTouchPoint::StateReleased)
- continue;
-
- touch_event_.touches[point] = touch_event_.touches[i];
- touch_event_.touches[point].state =
- WebTouchPoint::StateStationary;
- ++point;
- }
- touch_event_.touchesLength = point;
- touch_event_.type = WebInputEvent::Undefined;
- }
-
- int PressTouchPoint(int x, int y) {
- if (touch_event_.touchesLength == touch_event_.touchesLengthCap)
- return -1;
- WebTouchPoint& point =
- touch_event_.touches[touch_event_.touchesLength];
- point.id = touch_event_.touchesLength;
- point.position.x = point.screenPosition.x = x;
- point.position.y = point.screenPosition.y = y;
- point.state = WebTouchPoint::StatePressed;
- point.radiusX = point.radiusY = 1.f;
- ++touch_event_.touchesLength;
- touch_event_.type = WebInputEvent::TouchStart;
- return point.id;
- }
-
- void MoveTouchPoint(int index, int x, int y) {
- CHECK(index >= 0 && index < touch_event_.touchesLengthCap);
- WebTouchPoint& point = touch_event_.touches[index];
- point.position.x = point.screenPosition.x = x;
- point.position.y = point.screenPosition.y = y;
- touch_event_.touches[index].state = WebTouchPoint::StateMoved;
- touch_event_.type = WebInputEvent::TouchMove;
- }
-
- void ReleaseTouchPoint(int index) {
- CHECK(index >= 0 && index < touch_event_.touchesLengthCap);
- touch_event_.touches[index].state = WebTouchPoint::StateReleased;
- touch_event_.type = WebInputEvent::TouchEnd;
+ ImmediateInputRouter* input_router() const {
+ return static_cast<ImmediateInputRouter*>(input_router_.get());
}
void set_debounce_interval_time_ms(int ms) {
- input_router_->gesture_event_filter()->debounce_interval_time_ms_ = ms;
+ input_router()->gesture_event_filter()->debounce_interval_time_ms_ = ms;
}
void set_maximum_tap_gap_time_ms(int delay_ms) {
- input_router_->gesture_event_filter()->maximum_tap_gap_time_ms_ = delay_ms;
+ input_router()->gesture_event_filter()->maximum_tap_gap_time_ms_ = delay_ms;
}
size_t TouchEventQueueSize() {
@@ -549,7 +146,7 @@ class ImmediateInputRouterTest : public testing::Test {
}
void EnableNoTouchToRendererWhileScrolling() {
- input_router_->enable_no_touch_to_renderer_while_scrolling_ = true;
+ input_router()->enable_no_touch_to_renderer_while_scrolling_ = true;
}
bool no_touch_move_to_renderer() {
@@ -557,7 +154,7 @@ class ImmediateInputRouterTest : public testing::Test {
}
TouchEventQueue* touch_event_queue() const {
- return input_router_->touch_event_queue();
+ return input_router()->touch_event_queue();
}
unsigned GestureEventLastQueueEventSize() {
@@ -598,18 +195,8 @@ class ImmediateInputRouterTest : public testing::Test {
}
GestureEventFilter* gesture_event_filter() const {
- return input_router_->gesture_event_filter();
+ return input_router()->gesture_event_filter();
}
-
- scoped_ptr<MockRenderProcessHost> process_;
- scoped_ptr<MockInputRouterClient> client_;
- scoped_ptr<ImmediateInputRouter> input_router_;
-
- private:
- base::MessageLoopForUI message_loop_;
- WebTouchEvent touch_event_;
-
- scoped_ptr<TestBrowserContext> browser_context_;
};
#if GTEST_HAS_PARAM_TEST
@@ -621,8 +208,8 @@ class ImmediateInputRouterWithSourceTest
#endif // GTEST_HAS_PARAM_TEST
TEST_F(ImmediateInputRouterTest, CoalescesRangeSelection) {
- input_router_->SendInput(
- new InputMsg_SelectRange(0, gfx::Point(1, 2), gfx::Point(3, 4)));
+ input_router_->SendInput(scoped_ptr<IPC::Message>(
+ new InputMsg_SelectRange(0, gfx::Point(1, 2), gfx::Point(3, 4))));
EXPECT_EQ(1u, process_->sink().message_count());
ExpectIPCMessageWithArg2<InputMsg_SelectRange>(
process_->sink().GetMessageAt(0),
@@ -631,12 +218,12 @@ TEST_F(ImmediateInputRouterTest, CoalescesRangeSelection) {
process_->sink().ClearMessages();
// Send two more messages without acking.
- input_router_->SendInput(
- new InputMsg_SelectRange(0, gfx::Point(5, 6), gfx::Point(7, 8)));
+ input_router_->SendInput(scoped_ptr<IPC::Message>(
+ new InputMsg_SelectRange(0, gfx::Point(5, 6), gfx::Point(7, 8))));
EXPECT_EQ(0u, process_->sink().message_count());
- input_router_->SendInput(
- new InputMsg_SelectRange(0, gfx::Point(9, 10), gfx::Point(11, 12)));
+ input_router_->SendInput(scoped_ptr<IPC::Message>(
+ new InputMsg_SelectRange(0, gfx::Point(9, 10), gfx::Point(11, 12))));
EXPECT_EQ(0u, process_->sink().message_count());
// Now ack the first message.
@@ -662,17 +249,20 @@ TEST_F(ImmediateInputRouterTest, CoalescesRangeSelection) {
}
TEST_F(ImmediateInputRouterTest, CoalescesCaretMove) {
- input_router_->SendInput(new InputMsg_MoveCaret(0, gfx::Point(1, 2)));
+ input_router_->SendInput(
+ scoped_ptr<IPC::Message>(new InputMsg_MoveCaret(0, gfx::Point(1, 2))));
EXPECT_EQ(1u, process_->sink().message_count());
ExpectIPCMessageWithArg1<InputMsg_MoveCaret>(
process_->sink().GetMessageAt(0), gfx::Point(1, 2));
process_->sink().ClearMessages();
// Send two more messages without acking.
- input_router_->SendInput(new InputMsg_MoveCaret(0, gfx::Point(5, 6)));
+ input_router_->SendInput(
+ scoped_ptr<IPC::Message>(new InputMsg_MoveCaret(0, gfx::Point(5, 6))));
EXPECT_EQ(0u, process_->sink().message_count());
- input_router_->SendInput(new InputMsg_MoveCaret(0, gfx::Point(9, 10)));
+ input_router_->SendInput(
+ scoped_ptr<IPC::Message>(new InputMsg_MoveCaret(0, gfx::Point(9, 10))));
EXPECT_EQ(0u, process_->sink().message_count());
// Now ack the first message.
@@ -705,7 +295,7 @@ TEST_F(ImmediateInputRouterTest, HandledInputEvent) {
EXPECT_EQ(0u, process_->sink().message_count());
// OnKeyboardEventAck should be triggered without actual ack.
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
// As the event was acked already, keyboard event queue should be
// empty.
@@ -713,14 +303,14 @@ TEST_F(ImmediateInputRouterTest, HandledInputEvent) {
}
TEST_F(ImmediateInputRouterTest, ClientCanceledKeyboardEvent) {
- client_->set_allow_send_key_event(false);
+ client_->set_allow_send_event(false);
// Simulate a keyboard event.
SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
// Make sure no input event is sent to the renderer.
EXPECT_EQ(0u, process_->sink().message_count());
- client_->ExpectAckCalled(0);
+ ack_handler_->ExpectAckCalled(0);
}
TEST_F(ImmediateInputRouterTest, ShortcutKeyboardEvent) {
@@ -742,7 +332,7 @@ TEST_F(ImmediateInputRouterTest, NoncorrespondingKeyEvents) {
SendInputEventACK(WebInputEvent::KeyUp,
INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- EXPECT_TRUE(client_->unexpected_event_ack_called());
+ EXPECT_TRUE(ack_handler_->unexpected_event_ack_called());
}
// Tests ported from RenderWidgetHostTest --------------------------------------
@@ -762,8 +352,9 @@ TEST_F(ImmediateInputRouterTest, HandleKeyEventsWeSent) {
// Send the simulated response from the renderer back.
SendInputEventACK(WebInputEvent::RawKeyDown,
INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- client_->ExpectAckCalled(1);
- EXPECT_EQ(WebInputEvent::RawKeyDown, client_->acked_keyboard_event().type);
+ ack_handler_->ExpectAckCalled(1);
+ EXPECT_EQ(WebInputEvent::RawKeyDown,
+ ack_handler_->acked_keyboard_event().type);
}
TEST_F(ImmediateInputRouterTest, IgnoreKeyEventsWeDidntSend) {
@@ -771,7 +362,7 @@ TEST_F(ImmediateInputRouterTest, IgnoreKeyEventsWeDidntSend) {
SendInputEventACK(WebInputEvent::RawKeyDown,
INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- client_->ExpectAckCalled(0);
+ ack_handler_->ExpectAckCalled(0);
}
TEST_F(ImmediateInputRouterTest, CoalescesWheelEvents) {
@@ -794,7 +385,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesWheelEvents) {
// so that additional input events can be processed before
// we turn off coalescing.
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
InputMsg_HandleInputEvent::ID));
@@ -804,7 +395,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesWheelEvents) {
SendInputEventACK(WebInputEvent::MouseWheel,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
InputMsg_HandleInputEvent::ID));
@@ -814,7 +405,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesWheelEvents) {
SendInputEventACK(WebInputEvent::MouseWheel,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(0U, process_->sink().message_count());
// FIXME(kouhei): Below is testing gesture event filter. Maybe separate test?
@@ -917,7 +508,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesScrollGestureEvents) {
SendInputEventACK(WebInputEvent::GestureScrollBegin,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
InputMsg_HandleInputEvent::ID));
@@ -927,7 +518,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesScrollGestureEvents) {
SendInputEventACK(WebInputEvent::GestureScrollUpdate,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
InputMsg_HandleInputEvent::ID));
@@ -937,7 +528,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesScrollGestureEvents) {
SendInputEventACK(WebInputEvent::GestureScrollUpdate,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
InputMsg_HandleInputEvent::ID));
@@ -947,7 +538,7 @@ TEST_F(ImmediateInputRouterTest, CoalescesScrollGestureEvents) {
SendInputEventACK(WebInputEvent::GestureScrollEnd,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(0U, process_->sink().message_count());
}
@@ -1200,14 +791,14 @@ TEST_P(ImmediateInputRouterWithSourceTest, GestureFlingCancelsFiltered) {
SendInputEventACK(WebInputEvent::GestureFlingStart,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
SimulateGestureEvent(WebInputEvent::GestureFlingCancel, source_device);
EXPECT_FALSE(FlingInProgress());
EXPECT_EQ(2U, process_->sink().message_count());
SendInputEventACK(WebInputEvent::GestureFlingCancel,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(0U, GestureEventLastQueueEventSize());
// GFC before previous GFS is acked.
@@ -1226,7 +817,7 @@ TEST_P(ImmediateInputRouterWithSourceTest, GestureFlingCancelsFiltered) {
SendInputEventACK(WebInputEvent::GestureFlingCancel,
INPUT_EVENT_ACK_STATE_CONSUMED);
base::MessageLoop::current()->RunUntilIdle();
- client_->ExpectAckCalled(2);
+ ack_handler_->ExpectAckCalled(2);
EXPECT_EQ(0U, GestureEventLastQueueEventSize());
// GFS is added to the queue if another event is pending
@@ -1571,18 +1162,18 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueue) {
SendInputEventACK(WebInputEvent::TouchStart,
INPUT_EVENT_ACK_STATE_CONSUMED);
EXPECT_EQ(1U, TouchEventQueueSize());
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(WebInputEvent::TouchStart,
- client_->acked_touch_event().event.type);
+ ack_handler_->acked_touch_event().event.type);
EXPECT_EQ(1U, process_->sink().message_count());
process_->sink().ClearMessages();
SendInputEventACK(WebInputEvent::TouchMove,
INPUT_EVENT_ACK_STATE_CONSUMED);
EXPECT_EQ(0U, TouchEventQueueSize());
- client_->ExpectAckCalled(1);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(WebInputEvent::TouchMove,
- client_->acked_touch_event().event.type);
+ ack_handler_->acked_touch_event().event.type);
EXPECT_EQ(0U, process_->sink().message_count());
}
@@ -1623,8 +1214,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueFlush) {
INPUT_EVENT_ACK_STATE_CONSUMED);
EXPECT_EQ(31U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchStart,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(1);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(1U, process_->sink().message_count());
process_->sink().ClearMessages();
@@ -1671,8 +1262,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueCoalesce) {
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_EQ(2U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchStart,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(1);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(1);
process_->sink().ClearMessages();
// Coalesced touch-move events should be sent.
@@ -1686,8 +1277,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueCoalesce) {
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_EQ(1U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchMove,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(10);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(10);
process_->sink().ClearMessages();
// ACK the release.
@@ -1696,8 +1287,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueCoalesce) {
EXPECT_EQ(0U, process_->sink().message_count());
EXPECT_EQ(0U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchEnd,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(1);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(1);
}
// Tests that an event that has already been sent but hasn't been ack'ed yet
@@ -1852,8 +1443,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueNoConsumer) {
INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
EXPECT_EQ(0U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchMove,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(2);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(2);
EXPECT_EQ(0U, process_->sink().message_count());
process_->sink().ClearMessages();
@@ -1862,8 +1453,8 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueNoConsumer) {
SendTouchEvent();
EXPECT_EQ(0U, process_->sink().message_count());
EXPECT_EQ(WebInputEvent::TouchEnd,
- client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(1);
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(1);
// Send a press-event, followed by move and release events, and another press
// event, before the ACK for the first press event comes back. All of the
@@ -1891,8 +1482,9 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueNoConsumer) {
SendInputEventACK(WebInputEvent::TouchStart,
INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
EXPECT_EQ(1U, process_->sink().message_count());
- EXPECT_EQ(WebInputEvent::TouchEnd, client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(4);
+ EXPECT_EQ(WebInputEvent::TouchEnd,
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(4);
EXPECT_EQ(1U, TouchEventQueueSize());
process_->sink().ClearMessages();
@@ -1900,8 +1492,9 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueNoConsumer) {
SendInputEventACK(WebInputEvent::TouchStart,
INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS);
EXPECT_EQ(0U, process_->sink().message_count());
- EXPECT_EQ(WebInputEvent::TouchStart, client_->acked_touch_event().event.type);
- client_->ExpectAckCalled(1);
+ EXPECT_EQ(WebInputEvent::TouchStart,
+ ack_handler_->acked_touch_event().event.type);
+ ack_handler_->ExpectAckCalled(1);
EXPECT_EQ(0U, TouchEventQueueSize());
// Send a second press event. Even though the first touch had NO_CONSUMER,
@@ -2038,7 +1631,7 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueConsumerIgnoreMultiFinger) {
EXPECT_EQ(1U, process_->sink().message_count());
EXPECT_EQ(2U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchMove,
- client_->acked_touch_event().event.type);
+ ack_handler_->acked_touch_event().event.type);
process_->sink().ClearMessages();
// ACK the press with NO_CONSUMED_EXISTS. This should release the queued
@@ -2048,7 +1641,7 @@ TEST_F(ImmediateInputRouterTest, TouchEventQueueConsumerIgnoreMultiFinger) {
EXPECT_EQ(0U, process_->sink().message_count());
EXPECT_EQ(0U, TouchEventQueueSize());
EXPECT_EQ(WebInputEvent::TouchMove,
- client_->acked_touch_event().event.type);
+ ack_handler_->acked_touch_event().event.type);
ReleaseTouchPoint(2);
ReleaseTouchPoint(1);
@@ -2126,11 +1719,11 @@ TEST_F(ImmediateInputRouterTest, AckedTouchEventState) {
for (size_t i = 0; i < arraysize(acks); ++i) {
SendInputEventACK(acks[i],
INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
- EXPECT_EQ(acks[i], client_->acked_touch_event().event.type);
+ EXPECT_EQ(acks[i], ack_handler_->acked_touch_event().event.type);
ScopedVector<ui::TouchEvent> acked;
MakeUITouchEventsFromWebTouchEvents(
- client_->acked_touch_event(), &acked, coordinate_system);
+ ack_handler_->acked_touch_event(), &acked, coordinate_system);
bool success = EventListIsSubset(acked, expected_events);
EXPECT_TRUE(success) << "Failed on step: " << i;
if (!success)
@@ -2159,9 +1752,9 @@ TEST_F(ImmediateInputRouterTest, UnhandledWheelEvent) {
INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
// Check that the correct unhandled wheel event was received.
- client_->ExpectAckCalled(1);
- EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, client_->ack_state());
- EXPECT_EQ(client_->acked_wheel_event().deltaY, -5);
+ ack_handler_->ExpectAckCalled(1);
+ EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, ack_handler_->ack_state());
+ EXPECT_EQ(ack_handler_->acked_wheel_event().deltaY, -5);
// Check that the second event was sent.
EXPECT_EQ(1U, process_->sink().message_count());
@@ -2170,7 +1763,7 @@ TEST_F(ImmediateInputRouterTest, UnhandledWheelEvent) {
process_->sink().ClearMessages();
// Check that the correct unhandled wheel event was received.
- EXPECT_EQ(client_->acked_wheel_event().deltaY, -5);
+ EXPECT_EQ(ack_handler_->acked_wheel_event().deltaY, -5);
}
// Tests that no touch move events are sent to renderer during scrolling.
« no previous file with comments | « content/browser/renderer_host/input/immediate_input_router.cc ('k') | content/browser/renderer_host/input/input_ack_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698