Index: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
index e7fc95b880ea7c7a1ce10fe67a132a0779a9782f..506b02e6722a184380a15963428ecd5a137d7dde 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
@@ -123,9 +123,10 @@ class TestOverscrollDelegate : public OverscrollControllerDelegate { |
return view_->IsShowing() ? view_->GetViewBounds() : gfx::Rect(); |
} |
- virtual void OnOverscrollUpdate(float delta_x, float delta_y) OVERRIDE { |
+ virtual bool OnOverscrollUpdate(float delta_x, float delta_y) OVERRIDE { |
delta_x_ = delta_x; |
delta_y_ = delta_y; |
+ return true; |
} |
virtual void OnOverscrollComplete(OverscrollMode overscroll_mode) OVERRIDE { |
@@ -2534,9 +2535,10 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) { |
EXPECT_EQ(0U, sink_->message_count()); |
// Send another update event, but in the reverse direction. The overscroll |
- // controller will consume the event, and reset the overscroll mode. |
+ // controller will not consume the event, because it is not triggering |
+ // gesture-nav. |
SimulateGestureScrollUpdateEvent(-260, 0, 0); |
- EXPECT_EQ(0U, sink_->message_count()); |
+ EXPECT_EQ(1U, sink_->message_count()); |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
// Since the overscroll mode has been reset, the next scroll update events |
@@ -2546,6 +2548,33 @@ TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) { |
EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
} |
+TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
+ OverscrollDirectionChangeMouseWheel) { |
+ SetUpOverscrollEnvironment(); |
+ |
+ // Send wheel event and receive ack as not consumed. |
+ SimulateWheelEvent(125, -5, 0, true); |
+ EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
+ SendInputEventACK(WebInputEvent::MouseWheel, |
+ INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ EXPECT_EQ(OVERSCROLL_EAST, overscroll_mode()); |
+ EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->current_mode()); |
+ EXPECT_EQ(0U, sink_->message_count()); |
+ |
+ // Send another wheel event, but in the reverse direction. The overscroll |
+ // controller will not consume the event, because it is not triggering |
+ // gesture-nav. |
+ SimulateWheelEvent(-260, 0, 0, true); |
+ EXPECT_EQ(1U, sink_->message_count()); |
+ EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
+ |
+ // Since the overscroll mode has been reset, the next wheel event should reach |
+ // the renderer. |
+ SimulateWheelEvent(-20, 0, 0, true); |
+ EXPECT_EQ(1U, sink_->message_count()); |
+ EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
+} |
+ |
// Tests that if a mouse-move event completes the overscroll gesture, future |
// move events do reach the renderer. |
TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollMouseMoveCompletion) { |