From 9dfa8dc622519374a57a0b24ab9d7f73afe160ed Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Fri, 15 Oct 2010 17:12:52 +0100 Subject: Implement the document.createTouch and document.createTouchList APIs These are Apple extensions to the document object present on iOS and are used by several sites to detect touch event support. See http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html for Apple's documentation. Upstreaming to webkit being tracked in https://bugs.webkit.org/show_bug.cgi?id=47676 Bug: 2996106 Change-Id: I761b1494af60b5095ad9c47d54eb7240d47ae985 --- .../touch/document-create-touch-expected.txt | 24 +++++++++++++++++ .../touch/document-create-touch-list-expected.txt | 14 ++++++++++ .../events/touch/document-create-touch-list.html | 19 +++++++++++++ .../fast/events/touch/document-create-touch.html | 19 +++++++++++++ .../script-tests/document-create-touch-list.js | 12 +++++++++ .../touch/script-tests/document-create-touch.js | 31 ++++++++++++++++++++++ 6 files changed, 119 insertions(+) create mode 100644 LayoutTests/fast/events/touch/document-create-touch-expected.txt create mode 100644 LayoutTests/fast/events/touch/document-create-touch-list-expected.txt create mode 100644 LayoutTests/fast/events/touch/document-create-touch-list.html create mode 100644 LayoutTests/fast/events/touch/document-create-touch.html create mode 100644 LayoutTests/fast/events/touch/script-tests/document-create-touch-list.js create mode 100644 LayoutTests/fast/events/touch/script-tests/document-create-touch.js (limited to 'LayoutTests') diff --git a/LayoutTests/fast/events/touch/document-create-touch-expected.txt b/LayoutTests/fast/events/touch/document-create-touch-expected.txt new file mode 100644 index 0000000..c1c647f --- /dev/null +++ b/LayoutTests/fast/events/touch/document-create-touch-expected.txt @@ -0,0 +1,24 @@ +This tests support for the document.createTouch API. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS "createTouch" in document is true +PASS touch is non-null. +PASS touch.target is box +PASS touch.identifier is 1 +PASS touch.pageX is 100 +PASS touch.pageY is 101 +PASS touch.screenX is 102 +PASS touch.screenY is 103 +PASS emptyTouch is non-null. +PASS emptyTouch.target is null +PASS emptyTouch.identifier is 0 +PASS emptyTouch.pageX is 0 +PASS emptyTouch.pageY is 0 +PASS emptyTouch.screenX is 0 +PASS emptyTouch.screenY is 0 +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/fast/events/touch/document-create-touch-list-expected.txt b/LayoutTests/fast/events/touch/document-create-touch-list-expected.txt new file mode 100644 index 0000000..99d578c --- /dev/null +++ b/LayoutTests/fast/events/touch/document-create-touch-list-expected.txt @@ -0,0 +1,14 @@ +This tests support for the document.createTouchList API. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS "createTouchList" in document is true +PASS touchList is non-null. +PASS touchList.length is 0 +PASS touchList.item(0) is null +PASS touchList.item(1) is null +PASS successfullyParsed is true + +TEST COMPLETE + diff --git a/LayoutTests/fast/events/touch/document-create-touch-list.html b/LayoutTests/fast/events/touch/document-create-touch-list.html new file mode 100644 index 0000000..bb81531 --- /dev/null +++ b/LayoutTests/fast/events/touch/document-create-touch-list.html @@ -0,0 +1,19 @@ + + + + + + + + + +

+
+ + + diff --git a/LayoutTests/fast/events/touch/document-create-touch.html b/LayoutTests/fast/events/touch/document-create-touch.html new file mode 100644 index 0000000..ef586fb --- /dev/null +++ b/LayoutTests/fast/events/touch/document-create-touch.html @@ -0,0 +1,19 @@ + + + + + + + + + +

+
+ + + diff --git a/LayoutTests/fast/events/touch/script-tests/document-create-touch-list.js b/LayoutTests/fast/events/touch/script-tests/document-create-touch-list.js new file mode 100644 index 0000000..9c87c9a --- /dev/null +++ b/LayoutTests/fast/events/touch/script-tests/document-create-touch-list.js @@ -0,0 +1,12 @@ +description("This tests support for the document.createTouchList API."); + +shouldBeTrue('"createTouchList" in document'); + +var touchList = document.createTouchList(); +shouldBeNonNull("touchList"); +shouldBe("touchList.length", "0"); +shouldBeNull("touchList.item(0)"); +shouldBeNull("touchList.item(1)"); + +successfullyParsed = true; +isSuccessfullyParsed(); diff --git a/LayoutTests/fast/events/touch/script-tests/document-create-touch.js b/LayoutTests/fast/events/touch/script-tests/document-create-touch.js new file mode 100644 index 0000000..dd383ac --- /dev/null +++ b/LayoutTests/fast/events/touch/script-tests/document-create-touch.js @@ -0,0 +1,31 @@ +description("This tests support for the document.createTouch API."); + +shouldBeTrue('"createTouch" in document'); + +var box = document.createElement("div"); +box.id = "box"; +box.style.width = "100px"; +box.style.height = "100px"; +document.body.appendChild(box); + +var target = document.getElementById("box"); +var touch = document.createTouch(window, target, 1, 100, 101, 102, 103); +shouldBeNonNull("touch"); +shouldBe("touch.target", "box"); +shouldBe("touch.identifier", "1"); +shouldBe("touch.pageX", "100"); +shouldBe("touch.pageY", "101"); +shouldBe("touch.screenX", "102"); +shouldBe("touch.screenY", "103"); + +var emptyTouch = document.createTouch(); +shouldBeNonNull("emptyTouch"); +shouldBeNull("emptyTouch.target"); +shouldBe("emptyTouch.identifier", "0"); +shouldBe("emptyTouch.pageX", "0"); +shouldBe("emptyTouch.pageY", "0"); +shouldBe("emptyTouch.screenX", "0"); +shouldBe("emptyTouch.screenY", "0"); + +successfullyParsed = true; +isSuccessfullyParsed(); -- cgit v1.1