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

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc

Issue 478023002: OverscrollController consumes scroll updates only during gesture-nav. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disable browsertest on windows. Created 6 years, 4 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/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) {

Powered by Google App Engine
This is Rietveld 408576698