Index: content/browser/renderer_host/render_widget_host_unittest.cc |
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc |
index 980fb666b945c98d02877ec51f1aee31a31891a9..b0b0d368211a99bbec5f996323ab2c2ea4329d3f 100644 |
--- a/content/browser/renderer_host/render_widget_host_unittest.cc |
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc |
@@ -628,11 +628,17 @@ class MockPaintingObserver : public NotificationObserver { |
class RenderWidgetHostTest : public testing::Test { |
public: |
- RenderWidgetHostTest() : process_(NULL) { |
+ RenderWidgetHostTest() |
+ : process_(NULL), |
+ handle_mouse_event_(false) { |
} |
virtual ~RenderWidgetHostTest() { |
} |
+ bool MouseEventCallback(const WebKit::WebMouseEvent& /* event */) { |
+ return handle_mouse_event_; |
+ } |
+ |
protected: |
// testing::Test |
virtual void SetUp() { |
@@ -835,6 +841,7 @@ class RenderWidgetHostTest : public testing::Test { |
scoped_ptr<MockRenderWidgetHost> host_; |
scoped_ptr<TestView> view_; |
scoped_ptr<gfx::Screen> screen_; |
+ bool handle_mouse_event_; |
private: |
WebTouchEvent touch_event_; |
@@ -2540,6 +2547,24 @@ TEST_F(RenderWidgetHostTest, KeyboardListenerSuppressFollowingEvents) { |
host_->RemoveKeyboardListener(keyboard_listener_.get()); |
} |
+TEST_F(RenderWidgetHostTest, MouseEventCallbackCanHandleEvent) { |
+ host_->SetupForInputRouterTest(); |
+ |
+ host_->AddMouseEventCallback( |
+ base::Bind(&RenderWidgetHostTest::MouseEventCallback, |
+ base::Unretained(this))); |
+ |
+ handle_mouse_event_ = true; |
+ SimulateMouseEvent(WebInputEvent::MouseDown); |
+ |
+ EXPECT_FALSE(host_->mock_input_router()->sent_mouse_event_); |
+ |
+ handle_mouse_event_ = false; |
+ SimulateMouseEvent(WebInputEvent::MouseDown); |
+ |
+ EXPECT_TRUE(host_->mock_input_router()->sent_mouse_event_); |
+} |
+ |
TEST_F(RenderWidgetHostTest, InputRouterReceivesHandleInputEvent_ACK) { |
host_->SetupForInputRouterTest(); |