This tests initializing GestureEvents

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


FAIL !('GestureEvent' in window) should be true. Was false.

EVENT: gesturestart
PASS event.type is type
PASS event.bubbles is canBubble
PASS event.cancelable is cancelable
PASS event.view is view
PASS event.detail is detail
PASS event.ctrlKey is ctrlKey
PASS event.altKey is altKey
PASS event.shiftKey is shiftKey
PASS event.metaKey is metaKey
PASS event.target is target
PASS event.scale is scale
PASS event.rotation is rotation
PASS event.screenX is undefined
PASS event.screenY is undefined
PASS event.clientX is undefined
PASS event.clientY is undefined

EVENT: gesturechange
PASS event.type is type
PASS event.bubbles is canBubble
PASS event.cancelable is cancelable
PASS event.view is view
PASS event.detail is detail
PASS event.ctrlKey is ctrlKey
PASS event.altKey is altKey
PASS event.shiftKey is shiftKey
PASS event.metaKey is metaKey
PASS event.target is target
PASS event.scale is scale
PASS event.rotation is rotation
PASS event.screenX is undefined
PASS event.screenY is undefined
PASS event.clientX is undefined
PASS event.clientY is undefined

EVENT: gestureend
PASS event.type is type
PASS event.bubbles is canBubble
PASS event.cancelable is cancelable
PASS event.view is view
PASS event.detail is detail
PASS event.ctrlKey is ctrlKey
PASS event.altKey is altKey
PASS event.shiftKey is shiftKey
PASS event.metaKey is metaKey
PASS event.target is target
PASS event.scale is scale
PASS event.rotation is rotation
PASS event.screenX is undefined
PASS event.screenY is undefined
PASS event.clientX is undefined
PASS event.clientY is undefined
PASS successfullyParsed is true

TEST COMPLETE

