| Index: ui/events/blink/input_handler_proxy_unittest.cc
|
| diff --git a/ui/events/blink/input_handler_proxy_unittest.cc b/ui/events/blink/input_handler_proxy_unittest.cc
|
| index fbb5dddeba5a2f985936e50865c8870545ac2d72..c14d13f4f225a61601c3429f1a485368dbd90f06 100644
|
| --- a/ui/events/blink/input_handler_proxy_unittest.cc
|
| +++ b/ui/events/blink/input_handler_proxy_unittest.cc
|
| @@ -385,6 +385,10 @@
|
| input_handler_->smooth_scroll_enabled_ = value;
|
| }
|
|
|
| + void SetMouseWheelGesturesOn(bool value) {
|
| + input_handler_->set_use_gesture_events_for_mouse_wheel(value);
|
| + }
|
| +
|
| base::HistogramTester& histogram_tester() {
|
| return histogram_tester_;
|
| }
|
| @@ -404,6 +408,28 @@
|
| cc::InputHandlerScrollResult scroll_result_did_not_scroll_;
|
| };
|
|
|
| +TEST_P(InputHandlerProxyTest, MouseWheelByPageMainThread) {
|
| + expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
|
| + SetMouseWheelGesturesOn(false);
|
| + WebMouseWheelEvent wheel;
|
| + wheel.type = WebInputEvent::MouseWheel;
|
| + wheel.scrollByPage = true;
|
| +
|
| + EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| + VERIFY_AND_RESET_MOCKS();
|
| +}
|
| +
|
| +TEST_P(InputHandlerProxyTest, MouseWheelWithCtrlNotScroll) {
|
| + expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
|
| + SetMouseWheelGesturesOn(false);
|
| + WebMouseWheelEvent wheel;
|
| + wheel.type = WebInputEvent::MouseWheel;
|
| + wheel.modifiers = WebInputEvent::ControlKey;
|
| + wheel.canScroll = false;
|
| + EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| + VERIFY_AND_RESET_MOCKS();
|
| +}
|
| +
|
| TEST_P(InputHandlerProxyTest, MouseWheelNoListener) {
|
| expected_disposition_ = InputHandlerProxy::DROP_EVENT;
|
| EXPECT_CALL(mock_input_handler_,
|
| @@ -439,6 +465,59 @@
|
| WebMouseWheelEvent wheel;
|
| wheel.type = WebInputEvent::MouseWheel;
|
| wheel.modifiers = WebInputEvent::ControlKey;
|
| + EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| + VERIFY_AND_RESET_MOCKS();
|
| +}
|
| +
|
| +// Mac does not smooth scroll wheel events (crbug.com/574283).
|
| +#if !defined(OS_MACOSX)
|
| +TEST_P(InputHandlerProxyTest, MouseWheelWithPreciseScrollingDeltas) {
|
| +#else
|
| +TEST_P(InputHandlerProxyTest, DISABLED_MouseWheelWithPreciseScrollingDeltas) {
|
| +#endif
|
| + SetSmoothScrollEnabled(true);
|
| + SetMouseWheelGesturesOn(false);
|
| + expected_disposition_ = InputHandlerProxy::DID_HANDLE;
|
| + WebMouseWheelEvent wheel;
|
| + wheel.type = WebInputEvent::MouseWheel;
|
| +
|
| + VERIFY_AND_RESET_MOCKS();
|
| +
|
| + // Smooth scroll because hasPreciseScrollingDeltas is set to false.
|
| + wheel.hasPreciseScrollingDeltas = false;
|
| + EXPECT_CALL(mock_input_handler_, ScrollAnimated(::testing::_, ::testing::_))
|
| + .WillOnce(testing::Return(kImplThreadScrollState));
|
| + EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| +
|
| + VERIFY_AND_RESET_MOCKS();
|
| +
|
| + // No smooth scroll because hasPreciseScrollingDeltas is set to true.
|
| + wheel.hasPreciseScrollingDeltas = true;
|
| + EXPECT_CALL(mock_input_handler_, ScrollBegin(::testing::_, ::testing::_))
|
| + .WillOnce(testing::Return(kImplThreadScrollState));
|
| + EXPECT_CALL(mock_input_handler_, ScrollBy(::testing::_))
|
| + .WillOnce(testing::Return(scroll_result_did_scroll_));
|
| + EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_));
|
| + EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| +
|
| + VERIFY_AND_RESET_MOCKS();
|
| +}
|
| +
|
| +// Mac does not smooth scroll wheel events (crbug.com/574283).
|
| +#if !defined(OS_MACOSX)
|
| +TEST_P(InputHandlerProxyTest, MouseWheelScrollIgnored) {
|
| +#else
|
| +TEST_P(InputHandlerProxyTest, DISABLED_MouseWheelScrollIgnored) {
|
| +#endif
|
| + SetSmoothScrollEnabled(true);
|
| + SetMouseWheelGesturesOn(false);
|
| + expected_disposition_ = InputHandlerProxy::DROP_EVENT;
|
| + WebMouseWheelEvent wheel;
|
| + wheel.type = WebInputEvent::MouseWheel;
|
| +
|
| + EXPECT_CALL(mock_input_handler_, ScrollAnimated(testing::_, testing::_))
|
| + .WillOnce(testing::Return(kScrollIgnoredScrollState));
|
| +
|
| EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
|
| VERIFY_AND_RESET_MOCKS();
|
| }
|
|
|