| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "core/page/Page.h" | 44 #include "core/page/Page.h" |
| 45 #include "core/rendering/RenderView.h" | 45 #include "core/rendering/RenderView.h" |
| 46 #include "public/web/WebFrame.h" | 46 #include "public/web/WebFrame.h" |
| 47 #include "public/web/WebSettings.h" | 47 #include "public/web/WebSettings.h" |
| 48 #include "web/WebViewImpl.h" | 48 #include "web/WebViewImpl.h" |
| 49 #include "web/tests/FrameTestHelpers.h" | 49 #include "web/tests/FrameTestHelpers.h" |
| 50 #include "web/tests/URLTestHelpers.h" | 50 #include "web/tests/URLTestHelpers.h" |
| 51 #include <gtest/gtest.h> | 51 #include <gtest/gtest.h> |
| 52 | 52 |
| 53 using namespace blink; | 53 using namespace blink; |
| 54 using namespace WebCore; | 54 using namespace blink; |
| 55 | 55 |
| 56 namespace { | 56 namespace { |
| 57 | 57 |
| 58 PassRefPtrWillBeRawPtr<WebCore::KeyboardEvent> createKeyboardEventWithLocation(W
ebCore::KeyboardEvent::KeyLocationCode location) | 58 PassRefPtrWillBeRawPtr<blink::KeyboardEvent> createKeyboardEventWithLocation(bli
nk::KeyboardEvent::KeyLocationCode location) |
| 59 { | 59 { |
| 60 return WebCore::KeyboardEvent::create("keydown", true, true, 0, "", location
, false, false, false, false, false); | 60 return blink::KeyboardEvent::create("keydown", true, true, 0, "", location,
false, false, false, false, false); |
| 61 } | 61 } |
| 62 | 62 |
| 63 int getModifiersForKeyLocationCode(WebCore::KeyboardEvent::KeyLocationCode locat
ion) | 63 int getModifiersForKeyLocationCode(blink::KeyboardEvent::KeyLocationCode locatio
n) |
| 64 { | 64 { |
| 65 RefPtrWillBeRawPtr<WebCore::KeyboardEvent> event = createKeyboardEventWithLo
cation(location); | 65 RefPtrWillBeRawPtr<blink::KeyboardEvent> event = createKeyboardEventWithLoca
tion(location); |
| 66 blink::WebKeyboardEventBuilder convertedEvent(*event); | 66 blink::WebKeyboardEventBuilder convertedEvent(*event); |
| 67 return convertedEvent.modifiers; | 67 return convertedEvent.modifiers; |
| 68 } | 68 } |
| 69 | 69 |
| 70 TEST(WebInputEventConversionTest, WebKeyboardEventBuilder) | 70 TEST(WebInputEventConversionTest, WebKeyboardEventBuilder) |
| 71 { | 71 { |
| 72 // Test key location conversion. | 72 // Test key location conversion. |
| 73 int modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_K
EY_LOCATION_STANDARD); | 73 int modifiers = getModifiersForKeyLocationCode(blink::KeyboardEvent::DOM_KEY
_LOCATION_STANDARD); |
| 74 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsLeft || modifiers & WebInputEvent::IsRight); | 74 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsLeft || modifiers & WebInputEvent::IsRight); |
| 75 | 75 |
| 76 modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_L
OCATION_LEFT); | 76 modifiers = getModifiersForKeyLocationCode(blink::KeyboardEvent::DOM_KEY_LOC
ATION_LEFT); |
| 77 EXPECT_TRUE(modifiers & WebInputEvent::IsLeft); | 77 EXPECT_TRUE(modifiers & WebInputEvent::IsLeft); |
| 78 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsRight); | 78 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsRight); |
| 79 | 79 |
| 80 modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_L
OCATION_RIGHT); | 80 modifiers = getModifiersForKeyLocationCode(blink::KeyboardEvent::DOM_KEY_LOC
ATION_RIGHT); |
| 81 EXPECT_TRUE(modifiers & WebInputEvent::IsRight); | 81 EXPECT_TRUE(modifiers & WebInputEvent::IsRight); |
| 82 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsLeft); | 82 EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEven
t::IsLeft); |
| 83 | 83 |
| 84 modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_L
OCATION_NUMPAD); | 84 modifiers = getModifiersForKeyLocationCode(blink::KeyboardEvent::DOM_KEY_LOC
ATION_NUMPAD); |
| 85 EXPECT_TRUE(modifiers & WebInputEvent::IsKeyPad); | 85 EXPECT_TRUE(modifiers & WebInputEvent::IsKeyPad); |
| 86 EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent:
:IsRight); | 86 EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent:
:IsRight); |
| 87 } | 87 } |
| 88 | 88 |
| 89 TEST(WebInputEventConversionTest, WebTouchEventBuilder) | 89 TEST(WebInputEventConversionTest, WebTouchEventBuilder) |
| 90 { | 90 { |
| 91 RefPtrWillBeRawPtr<WebCore::TouchEvent> event = WebCore::TouchEvent::create(
); | 91 RefPtrWillBeRawPtr<blink::TouchEvent> event = blink::TouchEvent::create(); |
| 92 WebMouseEventBuilder mouse(0, 0, *event); | 92 WebMouseEventBuilder mouse(0, 0, *event); |
| 93 EXPECT_EQ(WebInputEvent::Undefined, mouse.type); | 93 EXPECT_EQ(WebInputEvent::Undefined, mouse.type); |
| 94 } | 94 } |
| 95 | 95 |
| 96 TEST(WebInputEventConversionTest, InputEventsScaling) | 96 TEST(WebInputEventConversionTest, InputEventsScaling) |
| 97 { | 97 { |
| 98 const std::string baseURL("http://www.test.com/"); | 98 const std::string baseURL("http://www.test.com/"); |
| 99 const std::string fileName("fixed_layout.html"); | 99 const std::string fileName("fixed_layout.html"); |
| 100 | 100 |
| 101 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_s
tr()), WebString::fromUTF8("fixed_layout.html")); | 101 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_s
tr()), WebString::fromUTF8("fixed_layout.html")); |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 EXPECT_FLOAT_EQ(5.3f, platformTouchBuilder.touchPoints()[0].pos().x()); | 245 EXPECT_FLOAT_EQ(5.3f, platformTouchBuilder.touchPoints()[0].pos().x()); |
| 246 EXPECT_FLOAT_EQ(5.2f, platformTouchBuilder.touchPoints()[0].pos().y()); | 246 EXPECT_FLOAT_EQ(5.2f, platformTouchBuilder.touchPoints()[0].pos().y()); |
| 247 EXPECT_FLOAT_EQ(5.3f, platformTouchBuilder.touchPoints()[0].radius().wid
th()); | 247 EXPECT_FLOAT_EQ(5.3f, platformTouchBuilder.touchPoints()[0].radius().wid
th()); |
| 248 EXPECT_FLOAT_EQ(5.2f, platformTouchBuilder.touchPoints()[0].radius().hei
ght()); | 248 EXPECT_FLOAT_EQ(5.2f, platformTouchBuilder.touchPoints()[0].radius().hei
ght()); |
| 249 } | 249 } |
| 250 | 250 |
| 251 // Reverse builders should *not* go back to physical pixels, as they are use
d for plugins | 251 // Reverse builders should *not* go back to physical pixels, as they are use
d for plugins |
| 252 // which expect CSS pixel coordinates. | 252 // which expect CSS pixel coordinates. |
| 253 { | 253 { |
| 254 PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10)
, LeftButton, PlatformEvent::MouseMoved, 1, false, false, false, false, 0); | 254 PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10)
, LeftButton, PlatformEvent::MouseMoved, 1, false, false, false, false, 0); |
| 255 RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(WebCore::
EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); | 255 RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(blink::Ev
entTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); |
| 256 WebMouseEventBuilder webMouseBuilder(view, documentRenderView, *mouseEve
nt); | 256 WebMouseEventBuilder webMouseBuilder(view, documentRenderView, *mouseEve
nt); |
| 257 | 257 |
| 258 EXPECT_EQ(10, webMouseBuilder.x); | 258 EXPECT_EQ(10, webMouseBuilder.x); |
| 259 EXPECT_EQ(10, webMouseBuilder.y); | 259 EXPECT_EQ(10, webMouseBuilder.y); |
| 260 EXPECT_EQ(10, webMouseBuilder.globalX); | 260 EXPECT_EQ(10, webMouseBuilder.globalX); |
| 261 EXPECT_EQ(10, webMouseBuilder.globalY); | 261 EXPECT_EQ(10, webMouseBuilder.globalY); |
| 262 EXPECT_EQ(10, webMouseBuilder.windowX); | 262 EXPECT_EQ(10, webMouseBuilder.windowX); |
| 263 EXPECT_EQ(10, webMouseBuilder.windowY); | 263 EXPECT_EQ(10, webMouseBuilder.windowY); |
| 264 } | 264 } |
| 265 | 265 |
| 266 { | 266 { |
| 267 PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10)
, NoButton, PlatformEvent::MouseMoved, 1, false, false, false, false, 0); | 267 PlatformMouseEvent platformMouseEvent(IntPoint(10, 10), IntPoint(10, 10)
, NoButton, PlatformEvent::MouseMoved, 1, false, false, false, false, 0); |
| 268 RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(WebCore::
EventTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); | 268 RefPtrWillBeRawPtr<MouseEvent> mouseEvent = MouseEvent::create(blink::Ev
entTypeNames::mousemove, domWindow, platformMouseEvent, 0, document); |
| 269 WebMouseEventBuilder webMouseBuilder(view, documentRenderView, *mouseEve
nt); | 269 WebMouseEventBuilder webMouseBuilder(view, documentRenderView, *mouseEve
nt); |
| 270 EXPECT_EQ(WebMouseEvent::ButtonNone, webMouseBuilder.button); | 270 EXPECT_EQ(WebMouseEvent::ButtonNone, webMouseBuilder.button); |
| 271 } | 271 } |
| 272 | 272 |
| 273 { | 273 { |
| 274 PlatformGestureEvent platformGestureEvent(PlatformEvent::GestureScrollUp
date, IntPoint(10, 10), IntPoint(10, 10), IntSize(10, 10), 0, false, false, fals
e, false, 10, 10, 10, 10); | 274 PlatformGestureEvent platformGestureEvent(PlatformEvent::GestureScrollUp
date, IntPoint(10, 10), IntPoint(10, 10), IntSize(10, 10), 0, false, false, fals
e, false, 10, 10, 10, 10); |
| 275 RefPtrWillBeRawPtr<GestureEvent> gestureEvent = GestureEvent::create(dom
Window, platformGestureEvent); | 275 RefPtrWillBeRawPtr<GestureEvent> gestureEvent = GestureEvent::create(dom
Window, platformGestureEvent); |
| 276 WebGestureEventBuilder webGestureBuilder(view, documentRenderView, *gest
ureEvent); | 276 WebGestureEventBuilder webGestureBuilder(view, documentRenderView, *gest
ureEvent); |
| 277 | 277 |
| 278 EXPECT_EQ(10, webGestureBuilder.x); | 278 EXPECT_EQ(10, webGestureBuilder.x); |
| 279 EXPECT_EQ(10, webGestureBuilder.y); | 279 EXPECT_EQ(10, webGestureBuilder.y); |
| 280 EXPECT_EQ(10, webGestureBuilder.globalX); | 280 EXPECT_EQ(10, webGestureBuilder.globalX); |
| 281 EXPECT_EQ(10, webGestureBuilder.globalY); | 281 EXPECT_EQ(10, webGestureBuilder.globalY); |
| 282 EXPECT_EQ(10, webGestureBuilder.data.scrollUpdate.deltaX); | 282 EXPECT_EQ(10, webGestureBuilder.data.scrollUpdate.deltaX); |
| 283 EXPECT_EQ(10, webGestureBuilder.data.scrollUpdate.deltaY); | 283 EXPECT_EQ(10, webGestureBuilder.data.scrollUpdate.deltaY); |
| 284 } | 284 } |
| 285 | 285 |
| 286 { | 286 { |
| 287 RefPtrWillBeRawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl
->page()->mainFrame()), document.get(), 0, FloatPoint(10, 9.5), FloatPoint(3.5,
2), FloatSize(4, 4.5), 0, 0); | 287 RefPtrWillBeRawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl
->page()->mainFrame()), document.get(), 0, FloatPoint(10, 9.5), FloatPoint(3.5,
2), FloatSize(4, 4.5), 0, 0); |
| 288 RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create(); | 288 RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create(); |
| 289 touchList->append(touch); | 289 touchList->append(touch); |
| 290 RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList
.get(), touchList.get(), touchList.get(), WebCore::EventTypeNames::touchmove, do
mWindow, false, false, false, false, false); | 290 RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList
.get(), touchList.get(), touchList.get(), blink::EventTypeNames::touchmove, domW
indow, false, false, false, false, false); |
| 291 | 291 |
| 292 WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEve
nt); | 292 WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEve
nt); |
| 293 ASSERT_EQ(1u, webTouchBuilder.touchesLength); | 293 ASSERT_EQ(1u, webTouchBuilder.touchesLength); |
| 294 EXPECT_EQ(10, webTouchBuilder.touches[0].screenPosition.x); | 294 EXPECT_EQ(10, webTouchBuilder.touches[0].screenPosition.x); |
| 295 EXPECT_FLOAT_EQ(9.5, webTouchBuilder.touches[0].screenPosition.y); | 295 EXPECT_FLOAT_EQ(9.5, webTouchBuilder.touches[0].screenPosition.y); |
| 296 EXPECT_FLOAT_EQ(3.5, webTouchBuilder.touches[0].position.x); | 296 EXPECT_FLOAT_EQ(3.5, webTouchBuilder.touches[0].position.x); |
| 297 EXPECT_FLOAT_EQ(2, webTouchBuilder.touches[0].position.y); | 297 EXPECT_FLOAT_EQ(2, webTouchBuilder.touches[0].position.y); |
| 298 EXPECT_FLOAT_EQ(4, webTouchBuilder.touches[0].radiusX); | 298 EXPECT_FLOAT_EQ(4, webTouchBuilder.touches[0].radiusX); |
| 299 EXPECT_FLOAT_EQ(4.5, webTouchBuilder.touches[0].radiusY); | 299 EXPECT_FLOAT_EQ(4.5, webTouchBuilder.touches[0].radiusY); |
| 300 EXPECT_FALSE(webTouchBuilder.cancelable); | 300 EXPECT_FALSE(webTouchBuilder.cancelable); |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 webGestureEvent.data.tap.width = 10; | 477 webGestureEvent.data.tap.width = 10; |
| 478 webGestureEvent.data.tap.height = 10; | 478 webGestureEvent.data.tap.height = 10; |
| 479 | 479 |
| 480 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent
); | 480 PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent
); |
| 481 EXPECT_EQ(10.f, platformGestureBuilder.position().x()); | 481 EXPECT_EQ(10.f, platformGestureBuilder.position().x()); |
| 482 EXPECT_EQ(10.f, platformGestureBuilder.position().y()); | 482 EXPECT_EQ(10.f, platformGestureBuilder.position().y()); |
| 483 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().x()); | 483 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().x()); |
| 484 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().y()); | 484 EXPECT_EQ(10.f, platformGestureBuilder.globalPosition().y()); |
| 485 EXPECT_EQ(1, platformGestureBuilder.tapCount()); | 485 EXPECT_EQ(1, platformGestureBuilder.tapCount()); |
| 486 | 486 |
| 487 RefPtrWillBeRawPtr<WebCore::GestureEvent> coreGestureEvent = WebCore::Ge
stureEvent::create(domWindow, platformGestureBuilder); | 487 RefPtrWillBeRawPtr<blink::GestureEvent> coreGestureEvent = blink::Gestur
eEvent::create(domWindow, platformGestureBuilder); |
| 488 WebGestureEventBuilder recreatedWebGestureEvent(view, documentRenderView
, *coreGestureEvent); | 488 WebGestureEventBuilder recreatedWebGestureEvent(view, documentRenderView
, *coreGestureEvent); |
| 489 EXPECT_EQ(webGestureEvent.type, recreatedWebGestureEvent.type); | 489 EXPECT_EQ(webGestureEvent.type, recreatedWebGestureEvent.type); |
| 490 EXPECT_EQ(webGestureEvent.x, recreatedWebGestureEvent.x); | 490 EXPECT_EQ(webGestureEvent.x, recreatedWebGestureEvent.x); |
| 491 EXPECT_EQ(webGestureEvent.y, recreatedWebGestureEvent.y); | 491 EXPECT_EQ(webGestureEvent.y, recreatedWebGestureEvent.y); |
| 492 EXPECT_EQ(webGestureEvent.globalX, recreatedWebGestureEvent.globalX); | 492 EXPECT_EQ(webGestureEvent.globalX, recreatedWebGestureEvent.globalX); |
| 493 EXPECT_EQ(webGestureEvent.globalY, recreatedWebGestureEvent.globalY); | 493 EXPECT_EQ(webGestureEvent.globalY, recreatedWebGestureEvent.globalY); |
| 494 EXPECT_EQ(webGestureEvent.data.tap.tapCount, recreatedWebGestureEvent.da
ta.tap.tapCount); | 494 EXPECT_EQ(webGestureEvent.data.tap.tapCount, recreatedWebGestureEvent.da
ta.tap.tapCount); |
| 495 } | 495 } |
| 496 } | 496 } |
| 497 | 497 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 | 587 |
| 588 PlatformTouchEventBuilder platformTouchBuilder(view, webTouchEvent); | 588 PlatformTouchEventBuilder platformTouchBuilder(view, webTouchEvent); |
| 589 EXPECT_FLOAT_EQ(10.6f, platformTouchBuilder.touchPoints()[0].screenPos()
.x()); | 589 EXPECT_FLOAT_EQ(10.6f, platformTouchBuilder.touchPoints()[0].screenPos()
.x()); |
| 590 EXPECT_FLOAT_EQ(10.4f, platformTouchBuilder.touchPoints()[0].screenPos()
.y()); | 590 EXPECT_FLOAT_EQ(10.4f, platformTouchBuilder.touchPoints()[0].screenPos()
.y()); |
| 591 EXPECT_FLOAT_EQ(5.3f + pinchOffset.x(), platformTouchBuilder.touchPoints
()[0].pos().x()); | 591 EXPECT_FLOAT_EQ(5.3f + pinchOffset.x(), platformTouchBuilder.touchPoints
()[0].pos().x()); |
| 592 EXPECT_FLOAT_EQ(5.2f + pinchOffset.y(), platformTouchBuilder.touchPoints
()[0].pos().y()); | 592 EXPECT_FLOAT_EQ(5.2f + pinchOffset.y(), platformTouchBuilder.touchPoints
()[0].pos().y()); |
| 593 } | 593 } |
| 594 } | 594 } |
| 595 | 595 |
| 596 } // anonymous namespace | 596 } // anonymous namespace |
| OLD | NEW |