OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/shared_memory.h" | 7 #include "base/shared_memory.h" |
8 #include "base/timer.h" | 8 #include "base/timer.h" |
9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
10 #include "content/browser/renderer_host/backing_store.h" | 10 #include "content/browser/renderer_host/backing_store.h" |
(...skipping 2692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2703 SimulateWheelEvent(-35, -2, 0); | 2703 SimulateWheelEvent(-35, -2, 0); |
2704 EXPECT_EQ(1U, process_->sink().message_count()); | 2704 EXPECT_EQ(1U, process_->sink().message_count()); |
2705 SendInputEventACK(WebInputEvent::MouseWheel, false); | 2705 SendInputEventACK(WebInputEvent::MouseWheel, false); |
2706 EXPECT_EQ(OVERSCROLL_WEST, host_->overscroll_mode()); | 2706 EXPECT_EQ(OVERSCROLL_WEST, host_->overscroll_mode()); |
2707 EXPECT_EQ(OVERSCROLL_WEST, host_->overscroll_delegate()->current_mode()); | 2707 EXPECT_EQ(OVERSCROLL_WEST, host_->overscroll_delegate()->current_mode()); |
2708 EXPECT_EQ(-55.f, host_->overscroll_delta_x()); | 2708 EXPECT_EQ(-55.f, host_->overscroll_delta_x()); |
2709 EXPECT_EQ(-25.f, host_->overscroll_delegate()->delta_x()); | 2709 EXPECT_EQ(-25.f, host_->overscroll_delegate()->delta_x()); |
2710 EXPECT_EQ(0.f, host_->overscroll_delegate()->delta_y()); | 2710 EXPECT_EQ(0.f, host_->overscroll_delegate()->delta_y()); |
2711 } | 2711 } |
2712 | 2712 |
| 2713 TEST_F(RenderWidgetHostTest, ScrollEventsOverscrollWithFling) { |
| 2714 host_->SetupForOverscrollControllerTest(); |
| 2715 process_->sink().ClearMessages(); |
| 2716 |
| 2717 // Send a wheel event. ACK the event as not processed. This should not |
| 2718 // initiate an overscroll gesture since it doesn't cross the threshold yet. |
| 2719 SimulateWheelEvent(10, -5, 0); |
| 2720 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2721 SendInputEventACK(WebInputEvent::MouseWheel, false); |
| 2722 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); |
| 2723 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->current_mode()); |
| 2724 process_->sink().ClearMessages(); |
| 2725 |
| 2726 // Scroll some more so as to not overscroll. |
| 2727 SimulateWheelEvent(10, -4, 0); |
| 2728 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2729 SendInputEventACK(WebInputEvent::MouseWheel, false); |
| 2730 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); |
| 2731 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_delegate()->current_mode()); |
| 2732 process_->sink().ClearMessages(); |
| 2733 |
| 2734 // Scroll some more to initiate an overscroll. |
| 2735 SimulateWheelEvent(20, -4, 0); |
| 2736 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2737 SendInputEventACK(WebInputEvent::MouseWheel, false); |
| 2738 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_mode()); |
| 2739 EXPECT_EQ(OVERSCROLL_EAST, host_->overscroll_delegate()->current_mode()); |
| 2740 EXPECT_EQ(40.f, host_->overscroll_delta_x()); |
| 2741 EXPECT_EQ(10.f, host_->overscroll_delegate()->delta_x()); |
| 2742 EXPECT_EQ(0.f, host_->overscroll_delegate()->delta_y()); |
| 2743 process_->sink().ClearMessages(); |
| 2744 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
| 2745 |
| 2746 // Send a fling start, but with a small velocity, so that the overscroll is |
| 2747 // aborted. The fling should proceed to the renderer, through the gesture |
| 2748 // event filter. |
| 2749 SimulateGestureFlingStartEvent(0.f, 0.f); |
| 2750 EXPECT_EQ(OVERSCROLL_NONE, host_->overscroll_mode()); |
| 2751 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
| 2752 EXPECT_EQ(1U, process_->sink().message_count()); |
| 2753 } |
| 2754 |
2713 // Tests that touch-scroll events are handled correctly by the overscroll | 2755 // Tests that touch-scroll events are handled correctly by the overscroll |
2714 // controller. This also tests that the overscroll controller and the | 2756 // controller. This also tests that the overscroll controller and the |
2715 // gesture-event filter play nice with each other. | 2757 // gesture-event filter play nice with each other. |
2716 TEST_F(RenderWidgetHostTest, GestureScrollOverscrolls) { | 2758 TEST_F(RenderWidgetHostTest, GestureScrollOverscrolls) { |
2717 // Turn off debounce handling for test isolation. | 2759 // Turn off debounce handling for test isolation. |
2718 host_->SetupForOverscrollControllerTest(); | 2760 host_->SetupForOverscrollControllerTest(); |
2719 host_->set_debounce_interval_time_ms(0); | 2761 host_->set_debounce_interval_time_ms(0); |
2720 process_->sink().ClearMessages(); | 2762 process_->sink().ClearMessages(); |
2721 | 2763 |
2722 SimulateGestureEvent(WebInputEvent::GestureScrollBegin); | 2764 SimulateGestureEvent(WebInputEvent::GestureScrollBegin); |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3101 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); | 3143 EXPECT_EQ(1U, host_->GestureEventLastQueueEventSize()); |
3102 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); | 3144 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); |
3103 | 3145 |
3104 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd, false); | 3146 SendInputEventACK(WebKit::WebInputEvent::GestureScrollEnd, false); |
3105 EXPECT_EQ(0U, process_->sink().message_count()); | 3147 EXPECT_EQ(0U, process_->sink().message_count()); |
3106 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); | 3148 EXPECT_EQ(0U, host_->GestureEventLastQueueEventSize()); |
3107 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); | 3149 EXPECT_EQ(0U, host_->GestureEventDebouncingQueueSize()); |
3108 } | 3150 } |
3109 | 3151 |
3110 } // namespace content | 3152 } // namespace content |
OLD | NEW |