This tests basic multi touch event support.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


multi touch sequence
Two touchpoints pressed
PASS lastEvent.type is "touchstart"
PASS lastEvent.touches.length is 2
PASS lastEvent.changedTouches.length is 2
PASS lastEvent.targetTouches.length is 2
PASS lastEvent.pageX is 0
PASS lastEvent.pageY is 0
PASS lastEvent.touches[0].pageX is 10
PASS lastEvent.touches[0].pageY is 10
PASS lastEvent.touches[0].clientX is 10
PASS lastEvent.touches[0].clientY is 10
PASS lastEvent.touches[0].identifier is 0
PASS lastEvent.touches[1].pageX is 20
PASS lastEvent.touches[1].pageY is 30
PASS lastEvent.touches[1].clientX is 20
PASS lastEvent.touches[1].clientY is 30
PASS lastEvent.touches[1].identifier is 1
PASS lastEvent.changedTouches[0].pageX is 10
PASS lastEvent.changedTouches[0].pageY is 10
PASS lastEvent.changedTouches[0].clientX is 10
PASS lastEvent.changedTouches[0].clientY is 10
PASS lastEvent.changedTouches[0].identifier is 0
PASS lastEvent.changedTouches[1].pageX is 20
PASS lastEvent.changedTouches[1].pageY is 30
PASS lastEvent.changedTouches[1].clientX is 20
PASS lastEvent.changedTouches[1].clientY is 30
PASS lastEvent.changedTouches[1].identifier is 1
PASS lastEvent.targetTouches[0].pageX is 10
PASS lastEvent.targetTouches[0].pageY is 10
PASS lastEvent.targetTouches[0].clientX is 10
PASS lastEvent.targetTouches[0].clientY is 10
PASS lastEvent.targetTouches[0].identifier is 0
PASS lastEvent.targetTouches[1].pageX is 20
PASS lastEvent.targetTouches[1].pageY is 30
PASS lastEvent.targetTouches[1].clientX is 20
PASS lastEvent.targetTouches[1].clientY is 30
PASS lastEvent.targetTouches[1].identifier is 1
First touchpoint moved
PASS lastEvent.type is "touchmove"
PASS lastEvent.touches.length is 2
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 2
PASS lastEvent.pageX is 0
PASS lastEvent.pageY is 0
PASS lastEvent.touches[0].pageX is 15
PASS lastEvent.touches[0].pageY is 15
PASS lastEvent.touches[0].clientX is 15
PASS lastEvent.touches[0].clientY is 15
PASS lastEvent.touches[0].identifier is 0
PASS lastEvent.changedTouches[0].pageX is 15
PASS lastEvent.changedTouches[0].pageY is 15
PASS lastEvent.changedTouches[0].clientX is 15
PASS lastEvent.changedTouches[0].clientY is 15
PASS lastEvent.changedTouches[0].identifier is 0
PASS lastEvent.touches[1].pageX is 20
PASS lastEvent.touches[1].pageY is 30
PASS lastEvent.touches[1].clientX is 20
PASS lastEvent.touches[1].clientY is 30
PASS lastEvent.touches[1].identifier is 1
First touchpoint is released
PASS lastEvent.type is "touchend"
PASS lastEvent.touches.length is 1
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 1
PASS lastEvent.pageX is 0
PASS lastEvent.pageY is 0
PASS lastEvent.touches[0].pageX is 20
PASS lastEvent.touches[0].pageY is 30
PASS lastEvent.touches[0].clientX is 20
PASS lastEvent.touches[0].clientY is 30
PASS lastEvent.touches[0].identifier is 1
PASS lastEvent.changedTouches[0].pageX is 15
PASS lastEvent.changedTouches[0].pageY is 15
PASS lastEvent.changedTouches[0].clientX is 15
PASS lastEvent.changedTouches[0].clientY is 15
PASS lastEvent.changedTouches[0].identifier is 0
PASS lastEvent.targetTouches[0].pageX is 20
PASS lastEvent.targetTouches[0].pageY is 30
PASS lastEvent.targetTouches[0].clientX is 20
PASS lastEvent.targetTouches[0].clientY is 30
PASS lastEvent.targetTouches[0].identifier is 1
Last remaining touchpoint is released
PASS lastEvent.type is "touchend"
PASS lastEvent.touches.length is 0
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 0
PASS lastEvent.pageX is 0
PASS lastEvent.pageY is 0
PASS lastEvent.changedTouches[0].pageX is 20
PASS lastEvent.changedTouches[0].pageY is 30
PASS lastEvent.changedTouches[0].clientX is 20
PASS lastEvent.changedTouches[0].clientY is 30
PASS lastEvent.changedTouches[0].identifier is 1
PASS successfullyParsed is true

TEST COMPLETE