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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac_unittest.mm

Issue 2050033002: Revert of Remove enable/disable wheel gestures setting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@can_scroll_remove
Patch Set: Created 4 years, 6 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_mac_unittest.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
index e142fdcfd2e836e163b78503aef5e095a9cc5c15..2fe2635b49669f80aeaa6a708ff2d097bffa8617 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -266,6 +266,19 @@
RenderViewHostImplTestHarness::TearDown();
}
+ void SetupForWheelGestures(bool enable_wheel_gestures) {
+ CHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableWheelGestures));
+ CHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableWheelGestures));
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ enable_wheel_gestures ? switches::kEnableWheelGestures
+ : switches::kDisableWheelGestures);
+ // Owned by its |cocoa_view()|, i.e. |rwhv_cocoa_|.
+ rwhv_mac_ = new RenderWidgetHostViewMac(rvh()->GetWidget(), false);
+ rwhv_cocoa_.reset([rwhv_mac_->cocoa_view() retain]);
+ }
+
void RecycleAndWait() {
pool_.Recycle();
base::MessageLoop::current()->RunUntilIdle();
@@ -920,8 +933,66 @@
host->ShutdownAndDestroyWidget(true);
}
+TEST_F(RenderWidgetHostViewMacTest, IgnoreEmptyUnhandledWheelEvent) {
+ SetupForWheelGestures(false);
+
+ // Initialize the view associated with a MockRenderWidgetHostImpl, rather than
+ // the MockRenderProcessHost that is set up by the test harness which mocks
+ // out |OnMessageReceived()|.
+ TestBrowserContext browser_context;
+ MockRenderProcessHost* process_host =
+ new MockRenderProcessHost(&browser_context);
+ process_host->Init();
+ MockRenderWidgetHostDelegate delegate;
+ int32_t routing_id = process_host->GetNextRoutingID();
+ MockRenderWidgetHostImpl* host =
+ new MockRenderWidgetHostImpl(&delegate, process_host, routing_id);
+ RenderWidgetHostViewMac* view = new RenderWidgetHostViewMac(host, false);
+ process_host->sink().ClearMessages();
+
+ // Add a delegate to the view.
+ base::scoped_nsobject<MockRenderWidgetHostViewMacDelegate> view_delegate(
+ [[MockRenderWidgetHostViewMacDelegate alloc] init]);
+ view->SetDelegate(view_delegate.get());
+
+ // Send an initial wheel event for scrolling by 3 lines.
+ NSEvent* event1 = MockScrollWheelEventWithPhase(@selector(phaseBegan), 3);
+ [view->cocoa_view() scrollWheel:event1];
+ ASSERT_EQ(1U, process_host->sink().message_count());
+ process_host->sink().ClearMessages();
+
+ // Indicate that the wheel event was unhandled.
+ InputEventAck unhandled_ack(blink::WebInputEvent::MouseWheel,
+ INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
+ std::unique_ptr<IPC::Message> response1(
+ new InputHostMsg_HandleInputEvent_ACK(0, unhandled_ack));
+ host->OnMessageReceived(*response1);
+
+ // Check that the view delegate got an unhandled wheel event.
+ ASSERT_EQ(YES, view_delegate.get().unhandledWheelEventReceived);
+ view_delegate.get().unhandledWheelEventReceived = NO;
+
+ // Send another wheel event, this time for scrolling by 0 lines (empty event).
+ NSEvent* event2 = MockScrollWheelEventWithPhase(@selector(phaseChanged), 0);
+ [view->cocoa_view() scrollWheel:event2];
+ ASSERT_EQ(1U, process_host->sink().message_count());
+
+ // Indicate that the wheel event was also unhandled.
+ std::unique_ptr<IPC::Message> response2(
+ new InputHostMsg_HandleInputEvent_ACK(0, unhandled_ack));
+ host->OnMessageReceived(*response2);
+
+ // Check that the view delegate ignored the empty unhandled wheel event.
+ ASSERT_EQ(NO, view_delegate.get().unhandledWheelEventReceived);
+
+ // Clean up.
+ host->ShutdownAndDestroyWidget(true);
+}
+
TEST_F(RenderWidgetHostViewMacTest,
IgnoreEmptyUnhandledWheelEventWithWheelGestures) {
+ SetupForWheelGestures(true);
+
// Initialize the view associated with a MockRenderWidgetHostImpl, rather than
// the MockRenderProcessHost that is set up by the test harness which mocks
// out |OnMessageReceived()|.
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.mm ('k') | content/common/input/input_event_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698