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

Unified Diff: Source/web/tests/WebInputEventConversionTest.cpp

Issue 558773002: Remove WebTouchEvent.targetTouches (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Cleanup and simplify Created 6 years, 3 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
« no previous file with comments | « Source/web/WebInputEventConversion.cpp ('k') | public/web/WebInputEvent.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/tests/WebInputEventConversionTest.cpp
diff --git a/Source/web/tests/WebInputEventConversionTest.cpp b/Source/web/tests/WebInputEventConversionTest.cpp
index 0b5b606da4867be874e61399b8ec5e28e0cf18c0..4ebd7fa8108c1eb03a20a996133662586fa9b539 100644
--- a/Source/web/tests/WebInputEventConversionTest.cpp
+++ b/Source/web/tests/WebInputEventConversionTest.cpp
@@ -85,13 +85,139 @@ TEST(WebInputEventConversionTest, WebKeyboardEventBuilder)
EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight);
}
-TEST(WebInputEventConversionTest, WebTouchEventBuilder)
+TEST(WebInputEventConversionTest, WebMouseEventBuilder)
{
RefPtrWillBeRawPtr<TouchEvent> event = TouchEvent::create();
WebMouseEventBuilder mouse(0, 0, *event);
EXPECT_EQ(WebInputEvent::Undefined, mouse.type);
}
+TEST(WebInputEventConversionTest, WebTouchEventBuilder)
+{
+ const std::string baseURL("http://www.test0.com/");
+ const std::string fileName("fixed_layout.html");
+
+ URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_str()), WebString::fromUTF8("fixed_layout.html"));
+ FrameTestHelpers::WebViewHelper webViewHelper;
+ WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(baseURL + fileName, true);
+ int pageWidth = 640;
+ int pageHeight = 480;
+ webViewImpl->resize(WebSize(pageWidth, pageHeight));
+ webViewImpl->layout();
+
+ FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view();
+ RefPtrWillBeRawPtr<Document> document = toLocalFrame(webViewImpl->page()->mainFrame())->document();
+ LocalDOMWindow* domWindow = document->domWindow();
+ RenderView* documentRenderView = document->renderView();
+
+ WebTouchPoint p0, p1;
+ p0.id = 1;
+ p1.id = 2;
+ p0.screenPosition = WebFloatPoint(100.f, 50.f);
+ p1.screenPosition = WebFloatPoint(150.f, 25.f);
+ p0.position = WebFloatPoint(10.f, 10.f);
+ p1.position = WebFloatPoint(5.f, 5.f);
+ p0.radiusX = p1.radiusY = 10.f;
+ p0.radiusY = p1.radiusX = 5.f;
+ p0.rotationAngle = p1.rotationAngle = 1.f;
+ p0.force = p1.force = 25.f;
+
+ RefPtrWillBeRawPtr<Touch> touch0 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p0.id, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force);
+ RefPtrWillBeRawPtr<Touch> touch1 = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), p1.id, p1.screenPosition, p1.position, FloatSize(p1.radiusX, p1.radiusY), p1.rotationAngle, p1.force);
+
+ // Test touchstart.
+ {
+ RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create();
+ touchList->append(touch0);
+ RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, false, false, false, false, false);
+
+ WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEvent);
+ ASSERT_EQ(1u, webTouchBuilder.touchesLength);
+ ASSERT_EQ(0u, webTouchBuilder.changedTouchesLength);
+ EXPECT_EQ(WebInputEvent::TouchStart, webTouchBuilder.type);
+ EXPECT_EQ(WebTouchPoint::StatePressed, webTouchBuilder.touches[0].state);
+ EXPECT_FLOAT_EQ(p0.screenPosition.x, webTouchBuilder.touches[0].screenPosition.x);
+ EXPECT_FLOAT_EQ(p0.screenPosition.y, webTouchBuilder.touches[0].screenPosition.y);
+ EXPECT_FLOAT_EQ(p0.position.x, webTouchBuilder.touches[0].position.x);
+ EXPECT_FLOAT_EQ(p0.position.y, webTouchBuilder.touches[0].position.y);
+ EXPECT_FLOAT_EQ(p0.radiusX, webTouchBuilder.touches[0].radiusX);
+ EXPECT_FLOAT_EQ(p0.radiusY, webTouchBuilder.touches[0].radiusY);
+ EXPECT_FLOAT_EQ(p0.rotationAngle, webTouchBuilder.touches[0].rotationAngle);
+ EXPECT_FLOAT_EQ(p0.force, webTouchBuilder.touches[0].force);
+ }
+
+ // Test touchmove.
+ {
+ RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
+ RefPtrWillBeRawPtr<TouchList> movedTouchList = TouchList::create();
+ activeTouchList->append(touch0);
+ activeTouchList->append(touch1);
+ movedTouchList->append(touch0);
+ RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), movedTouchList.get(), EventTypeNames::touchmove, domWindow, false, false, false, false, false);
+
+ WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEvent);
+ ASSERT_EQ(2u, webTouchBuilder.touchesLength);
+ ASSERT_EQ(0u, webTouchBuilder.changedTouchesLength);
+ EXPECT_EQ(WebInputEvent::TouchMove, webTouchBuilder.type);
+ EXPECT_EQ(WebTouchPoint::StateMoved, webTouchBuilder.touches[0].state);
+ EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[1].state);
+ EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id);
+ EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id);
+ }
+
+ // Test touchend.
+ {
+ RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
+ RefPtrWillBeRawPtr<TouchList> releasedTouchList = TouchList::create();
+ activeTouchList->append(touch0);
+ releasedTouchList->append(touch1);
+ RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), releasedTouchList.get(), EventTypeNames::touchend, domWindow, false, false, false, false, false);
+
+ WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEvent);
+ ASSERT_EQ(2u, webTouchBuilder.touchesLength);
+ ASSERT_EQ(0u, webTouchBuilder.changedTouchesLength);
+ EXPECT_EQ(WebInputEvent::TouchEnd, webTouchBuilder.type);
+ EXPECT_EQ(WebTouchPoint::StateReleased, webTouchBuilder.touches[0].state);
+ EXPECT_EQ(WebTouchPoint::StateStationary, webTouchBuilder.touches[1].state);
+ EXPECT_EQ(p1.id, webTouchBuilder.touches[0].id);
+ EXPECT_EQ(p0.id, webTouchBuilder.touches[1].id);
+ }
+
+ // Test touchcancel.
+ {
+ RefPtrWillBeRawPtr<TouchList> activeTouchList = TouchList::create();
+ RefPtrWillBeRawPtr<TouchList> cancelledTouchList = TouchList::create();
+ cancelledTouchList->append(touch0);
+ cancelledTouchList->append(touch1);
+ RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(activeTouchList.get(), activeTouchList.get(), cancelledTouchList.get(), EventTypeNames::touchcancel, domWindow, false, false, false, false, false);
+
+ WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEvent);
+ ASSERT_EQ(2u, webTouchBuilder.touchesLength);
+ ASSERT_EQ(0u, webTouchBuilder.changedTouchesLength);
+ EXPECT_EQ(WebInputEvent::TouchCancel, webTouchBuilder.type);
+ EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[0].state);
+ EXPECT_EQ(WebTouchPoint::StateCancelled, webTouchBuilder.touches[1].state);
+ EXPECT_EQ(p0.id, webTouchBuilder.touches[0].id);
+ EXPECT_EQ(p1.id, webTouchBuilder.touches[1].id);
+ }
+
+ // Test max point limit.
+ {
+ RefPtrWillBeRawPtr<TouchList> touchList = TouchList::create();
+ RefPtrWillBeRawPtr<TouchList> changedTouchList = TouchList::create();
+ for (unsigned i = 0; i <= static_cast<unsigned>(WebTouchEvent::touchesLengthCap) * 2; ++i) {
+ RefPtrWillBeRawPtr<Touch> touch = Touch::create(toLocalFrame(webViewImpl->page()->mainFrame()), document.get(), i, p0.screenPosition, p0.position, FloatSize(p0.radiusX, p0.radiusY), p0.rotationAngle, p0.force);
+ touchList->append(touch);
+ changedTouchList->append(touch);
+ }
+ RefPtrWillBeRawPtr<TouchEvent> touchEvent = TouchEvent::create(touchList.get(), touchList.get(), touchList.get(), EventTypeNames::touchstart, domWindow, false, false, false, false, false);
+
+ WebTouchEventBuilder webTouchBuilder(view, documentRenderView, *touchEvent);
+ ASSERT_EQ(static_cast<unsigned>(WebTouchEvent::touchesLengthCap), webTouchBuilder.touchesLength);
+ ASSERT_EQ(0u, webTouchBuilder.changedTouchesLength);
+ }
+}
+
TEST(WebInputEventConversionTest, InputEventsScaling)
{
const std::string baseURL("http://www.test.com/");
« no previous file with comments | « Source/web/WebInputEventConversion.cpp ('k') | public/web/WebInputEvent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698