Index: content/browser/renderer_host/web_input_event_aura_unittest.cc |
diff --git a/content/browser/renderer_host/web_input_event_aura_unittest.cc b/content/browser/renderer_host/web_input_event_aura_unittest.cc |
index 12e178da725aa245159c2ff9407716ae8aa37002..6fcb3f0515a61a748c582ddea5b6e55d09dcb0f8 100644 |
--- a/content/browser/renderer_host/web_input_event_aura_unittest.cc |
+++ b/content/browser/renderer_host/web_input_event_aura_unittest.cc |
@@ -6,6 +6,7 @@ |
#include "base/basictypes.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/events/blink/blink_event_util.h" |
#include "ui/events/event.h" |
#include "ui/events/event_utils.h" |
#include "ui/events/keycodes/dom/dom_code.h" |
@@ -246,4 +247,270 @@ TEST(WebInputEventAuraTest, TestMakeWebKeyboardEventKeyPadKeyCode) { |
#endif |
} |
+TEST(WebInputEventAuraTest, TestMakeWebMouseEvent) { |
+ { |
+ // Left pressed. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_LEFT_MOUSE_BUTTON, |
+ ui::EF_LEFT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Left released. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, 0, |
+ ui::EF_LEFT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Middle pressed. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_MIDDLE_MOUSE_BUTTON, |
+ ui::EF_MIDDLE_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonMiddle, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Middle released. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, 0, |
+ ui::EF_MIDDLE_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonMiddle, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Right pressed. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_RIGHT_MOUSE_BUTTON, |
+ ui::EF_RIGHT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonRight, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Right released. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_RELEASED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, 0, |
+ ui::EF_RIGHT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonRight, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseUp, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Moved |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_MOVED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, 0, 0); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Moved with left down |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_MOVED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_LEFT_MOUSE_BUTTON, 0); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseMove, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Left with shift pressed. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_LEFT_MOUSE_BUTTON | ui::EF_SHIFT_DOWN, |
+ ui::EF_LEFT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonLeft, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseDown, webkit_event.type); |
+ EXPECT_EQ(aura_event.GetClickCount(), webkit_event.clickCount); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Default values for PointerDetails. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_LEFT_MOUSE_BUTTON, |
+ ui::EF_LEFT_MOUSE_BUTTON); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ |
+ EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse, |
+ webkit_event.pointerType); |
+ EXPECT_EQ(0, webkit_event.tiltX); |
+ EXPECT_EQ(0, webkit_event.tiltY); |
+ EXPECT_FLOAT_EQ(0.0f, webkit_event.force); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Stylus values for PointerDetails. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseEvent aura_event(ui::ET_MOUSE_PRESSED, gfx::PointF(123.0, 321.0), |
+ gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_LEFT_MOUSE_BUTTON, |
+ ui::EF_LEFT_MOUSE_BUTTON); |
+ aura_event.set_pointer_details( |
+ ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_PEN, |
+ /* radius_x */ 0.0f, |
+ /* radius_y */ 0.0f, |
+ /* force */ 0.8f, |
+ /* tilt_x */ 89.5f, |
+ /* tilt_y */ -89.5f)); |
+ blink::WebMouseEvent webkit_event = MakeWebMouseEvent(aura_event); |
+ |
+ EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypePen, |
+ webkit_event.pointerType); |
+ EXPECT_EQ(90, webkit_event.tiltX); |
+ EXPECT_EQ(-90, webkit_event.tiltY); |
+ EXPECT_FLOAT_EQ(0.8f, webkit_event.force); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+} |
+ |
+TEST(WebInputEventAuraTest, TestMakeWebMouseWheelEvent) { |
+ { |
+ // Mouse wheel. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseWheelEvent aura_event( |
+ gfx::Vector2d(ui::MouseWheelEvent::kWheelDelta * 2, |
+ -ui::MouseWheelEvent::kWheelDelta * 2), |
+ gfx::PointF(123.0, 321.0), gfx::PointF(123.0, 321.0), timestamp, 0, 0); |
+ blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type); |
+ EXPECT_FLOAT_EQ(aura_event.x_offset() / 53.0f, webkit_event.wheelTicksX); |
+ EXPECT_FLOAT_EQ(aura_event.y_offset() / 53.0f, webkit_event.wheelTicksY); |
+ EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse, |
+ webkit_event.pointerType); |
+ EXPECT_EQ(0, webkit_event.tiltX); |
+ EXPECT_EQ(0, webkit_event.tiltY); |
+ EXPECT_FLOAT_EQ(0.0f, webkit_event.force); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+ { |
+ // Mouse wheel with shift and no x offset. |
+ base::TimeDelta timestamp = ui::EventTimeForNow(); |
+ ui::MouseWheelEvent aura_event( |
+ gfx::Vector2d(0, -ui::MouseWheelEvent::kWheelDelta * 2), |
+ gfx::PointF(123.0, 321.0), gfx::PointF(123.0, 321.0), timestamp, |
+ ui::EF_SHIFT_DOWN, 0); |
+ blink::WebMouseWheelEvent webkit_event = MakeWebMouseWheelEvent(aura_event); |
+ EXPECT_EQ(ui::EventFlagsToWebEventModifiers(aura_event.flags()), |
+ webkit_event.modifiers); |
+ EXPECT_FLOAT_EQ(timestamp.InSecondsF(), webkit_event.timeStampSeconds); |
+ EXPECT_EQ(blink::WebMouseEvent::ButtonNone, webkit_event.button); |
+ EXPECT_EQ(blink::WebInputEvent::MouseWheel, webkit_event.type); |
+ EXPECT_FLOAT_EQ(aura_event.y_offset() / 53.0f, webkit_event.wheelTicksX); |
+ EXPECT_FLOAT_EQ(0, webkit_event.wheelTicksY); |
+ EXPECT_EQ(blink::WebPointerProperties::PointerType::PointerTypeMouse, |
+ webkit_event.pointerType); |
+ EXPECT_EQ(0, webkit_event.tiltX); |
+ EXPECT_EQ(0, webkit_event.tiltY); |
+ EXPECT_FLOAT_EQ(0.0f, webkit_event.force); |
+ EXPECT_EQ(123, webkit_event.x); |
+ EXPECT_EQ(123, webkit_event.windowX); |
+ EXPECT_EQ(321, webkit_event.y); |
+ EXPECT_EQ(321, webkit_event.windowY); |
+ } |
+} |
+ |
} // namespace content |