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

Side by Side Diff: content/browser/renderer_host/input/input_router_impl_unittest.cc

Issue 281723010: Bundle DidOverscrollParams with the InputEventAck (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build Created 6 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <math.h> 5 #include <math.h>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 void ReleaseTouchPoint(int index) { 286 void ReleaseTouchPoint(int index) {
287 touch_event_.ReleasePoint(index); 287 touch_event_.ReleasePoint(index);
288 } 288 }
289 289
290 void CancelTouchPoint(int index) { 290 void CancelTouchPoint(int index) {
291 touch_event_.CancelPoint(index); 291 touch_event_.CancelPoint(index);
292 } 292 }
293 293
294 void SendInputEventACK(blink::WebInputEvent::Type type, 294 void SendInputEventACK(blink::WebInputEvent::Type type,
295 InputEventAckState ack_result) { 295 InputEventAckState ack_result) {
296 scoped_ptr<IPC::Message> response( 296 InputHostMsg_HandleInputEvent_ACK_Params ack;
297 new InputHostMsg_HandleInputEvent_ACK(0, type, ack_result, 297 ack.type = type;
298 ui::LatencyInfo())); 298 ack.state = ack_result;
299 input_router_->OnMessageReceived(*response); 299 input_router_->OnMessageReceived(InputHostMsg_HandleInputEvent_ACK(0, ack));
300 } 300 }
301 301
302 InputRouterImpl* input_router() const { 302 InputRouterImpl* input_router() const {
303 return input_router_.get(); 303 return input_router_.get();
304 } 304 }
305 305
306 bool TouchEventQueueEmpty() const { 306 bool TouchEventQueueEmpty() const {
307 return input_router()->touch_event_queue_.empty(); 307 return input_router()->touch_event_queue_.empty();
308 } 308 }
309 309
(...skipping 1336 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1646 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1647 EXPECT_EQ(1, client_->in_flight_event_count()); 1647 EXPECT_EQ(1, client_->in_flight_event_count());
1648 1648
1649 // Ack the wheel event. 1649 // Ack the wheel event.
1650 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); 1650 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED);
1651 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1651 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1652 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1652 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1653 EXPECT_EQ(0, client_->in_flight_event_count()); 1653 EXPECT_EQ(0, client_->in_flight_event_count());
1654 } 1654 }
1655 1655
1656 // Test proper routing of overscroll notifications received either from
1657 // event acks or from |DidOverscroll| IPC messages.
1658 TEST_F(InputRouterImplTest, OverscrollDispatch) {
1659 DidOverscrollParams overscroll;
1660 overscroll.accumulated_overscroll = gfx::Vector2dF(-14, 14);
1661 overscroll.latest_overscroll_delta = gfx::Vector2dF(-7, 0);
1662 overscroll.current_fling_velocity = gfx::Vector2dF(-1, 0);
1663
1664 input_router_->OnMessageReceived(InputHostMsg_DidOverscroll(0, overscroll));
1665 DidOverscrollParams client_overscroll = client_->GetAndResetOverscroll();
1666 EXPECT_EQ(overscroll.accumulated_overscroll,
1667 client_overscroll.accumulated_overscroll);
1668 EXPECT_EQ(overscroll.latest_overscroll_delta,
1669 client_overscroll.latest_overscroll_delta);
1670 EXPECT_EQ(overscroll.current_fling_velocity,
1671 client_overscroll.current_fling_velocity);
1672
1673 DidOverscrollParams wheel_overscroll;
1674 wheel_overscroll.accumulated_overscroll = gfx::Vector2dF(7, -7);
1675 wheel_overscroll.latest_overscroll_delta = gfx::Vector2dF(3, 0);
1676 wheel_overscroll.current_fling_velocity = gfx::Vector2dF(1, 0);
1677
1678 SimulateWheelEvent(3, 0, 0, false);
1679 InputHostMsg_HandleInputEvent_ACK_Params ack;
1680 ack.type = WebInputEvent::MouseWheel;
1681 ack.state = INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
1682 ack.overscroll.reset(new DidOverscrollParams(wheel_overscroll));
1683 input_router_->OnMessageReceived(InputHostMsg_HandleInputEvent_ACK(0, ack));
1684
1685 client_overscroll = client_->GetAndResetOverscroll();
1686 EXPECT_EQ(wheel_overscroll.accumulated_overscroll,
1687 client_overscroll.accumulated_overscroll);
1688 EXPECT_EQ(wheel_overscroll.latest_overscroll_delta,
1689 client_overscroll.latest_overscroll_delta);
1690 EXPECT_EQ(wheel_overscroll.current_fling_velocity,
1691 client_overscroll.current_fling_velocity);
1692 }
1693
1656 } // namespace content 1694 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698