This tests basic touch event support.
single touch sequence
PASS lastEvent.type is "touchstart"
PASS lastEvent.touches.length is 1
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 1
PASS lastEvent.shiftKey is false
PASS lastEvent.touches[0].target.id is "touchtarget"
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.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.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.type is "touchmove"
PASS lastEvent.touches.length is 1
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 1
PASS lastEvent.touches[0].pageX is 20
PASS lastEvent.touches[0].pageY is 15
PASS lastEvent.touches[0].clientX is 20
PASS lastEvent.touches[0].clientY is 15
PASS lastEvent.touches[0].identifier is 0
PASS lastEvent.shiftKey is true
PASS lastEvent.altKey is true
PASS lastEvent.ctrlKey is false
PASS lastEvent.metaKey is false
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.changedTouches[0].pageX is 20
PASS lastEvent.changedTouches[0].pageY is 15
PASS lastEvent.changedTouches[0].clientX is 20
PASS lastEvent.changedTouches[0].clientY is 15
PASS lastEvent.changedTouches[0].identifier is 0
PASS lastEvent.shiftKey is false
PASS lastEvent.altKey is false
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.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.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.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.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
verify touch targets
PASS lastEvent.type is "touchstart"
PASS lastEvent.touches.length is 1
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 1
PASS lastEvent.targetTouches[0].target.tagName is "DIV"
PASS lastEvent.type is "touchmove"
PASS lastEvent.touches.length is 1
PASS lastEvent.changedTouches.length is 1
PASS lastEvent.targetTouches.length is 0
PASS lastEvent.touches[0].target.tagName is "HTML"
PASS successfullyParsed is true

TEST COMPLETE

