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..1bf468f35022767a9cf6fc3c213cb63b61c707ea 100644 |
--- a/content/browser/renderer_host/render_widget_host_unittest.cc |
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc |
@@ -20,6 +20,7 @@ |
#include "content/common/input_messages.h" |
#include "content/common/view_messages.h" |
#include "content/port/browser/render_widget_host_view_port.h" |
+#include "content/public/browser/mouse_listener.h" |
#include "content/public/browser/notification_details.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
@@ -128,6 +129,27 @@ class MockKeyboardListener : public KeyboardListener { |
DISALLOW_COPY_AND_ASSIGN(MockKeyboardListener); |
}; |
+// MockMouseListener -------------------------------------------------------- |
+class MockMouseListener : public MouseListener { |
+ public: |
+ MockMouseListener() |
+ : handle_mouse_event_(false) { |
+ } |
+ virtual ~MockMouseListener() {} |
+ |
+ // MouseListener: |
+ virtual bool HandleMouseEvent(const WebKit::WebMouseEvent& event) OVERRIDE { |
+ return handle_mouse_event_; |
+ } |
+ |
+ void set_handle_mouse_event(bool handle) { |
+ handle_mouse_event_ = handle; |
+ } |
+ |
+ private: |
+ bool handle_mouse_event_; |
+}; |
+ |
// MockInputRouter ------------------------------------------------------------- |
class MockInputRouter : public InputRouter { |
@@ -2540,6 +2562,25 @@ TEST_F(RenderWidgetHostTest, KeyboardListenerSuppressFollowingEvents) { |
host_->RemoveKeyboardListener(keyboard_listener_.get()); |
} |
+TEST_F(RenderWidgetHostTest, MouseListenerCanHandleEvent) { |
+ host_->SetupForInputRouterTest(); |
+ |
+ MockMouseListener mouse_listener; |
+ host_->AddMouseListener(&mouse_listener); |
+ |
+ mouse_listener.set_handle_mouse_event(true); |
+ SimulateMouseEvent(WebInputEvent::MouseDown); |
+ |
+ EXPECT_FALSE(host_->mock_input_router()->sent_mouse_event_); |
+ |
+ mouse_listener.set_handle_mouse_event(false); |
+ SimulateMouseEvent(WebInputEvent::MouseDown); |
+ |
+ EXPECT_TRUE(host_->mock_input_router()->sent_mouse_event_); |
+ |
+ host_->RemoveMouseListener(&mouse_listener); |
+} |
+ |
TEST_F(RenderWidgetHostTest, InputRouterReceivesHandleInputEvent_ACK) { |
host_->SetupForInputRouterTest(); |