Verifies that pointer event parameters are correct when fired through mouse events.

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


===== mouse tests =====
--- move mouse into target ---
Received pointerover
Received pointerenter
Received mouseover
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerover"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseenter
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerenter"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

--- move within target ---
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 25
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 25
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 7
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 25
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 25
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 25
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

--- click each button ---
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is 0
PASS lastPointerEvents[0].buttons is 1
PASS lastPointerEvents[0].pressure is 0.5
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is 0
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is 1
PASS lastPointerEvents[0].buttons is 4
PASS lastPointerEvents[0].pressure is 0.5
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is 1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is 2
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

--- click with each modifier ---
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is true
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is true
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is true
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is true
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is true
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is true
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is true
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is true
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is true
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is true
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is true
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is true
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is true
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is true
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is true
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is true
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is true
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is true
PASS lastPointerEvents[0].getModifierState('Symbol'); is false
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is true
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].getModifierState('Control'); is false
PASS lastPointerEvents[0].getModifierState('Shift'); is false
PASS lastPointerEvents[0].getModifierState('Meta'); is false
PASS lastPointerEvents[0].getModifierState('Alt'); is false
PASS lastPointerEvents[0].getModifierState('AltGraph'); is false
PASS lastPointerEvents[0].getModifierState('Fn'); is false
PASS lastPointerEvents[0].getModifierState('CapsLock'); is false
PASS lastPointerEvents[0].getModifierState('ScrollLock'); is false
PASS lastPointerEvents[0].getModifierState('NumLock'); is false
PASS lastPointerEvents[0].getModifierState('Symbol'); is true

--- move mouse out of target ---
Received pointerout
Received pointerleave
Received mouseout
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerout"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseleave
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerleave"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 1
PASS lastPointerEvents[0].pointerType is "mouse"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

===== pen tests (draw mode) =====
--- move pen into target ---
Received pointerover
Received pointerenter
Received mouseover
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerover"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseenter
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerenter"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

--- move within target & tap ---
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is 0
PASS lastPointerEvents[0].buttons is 1
PASS lastPointerEvents[0].pressure is 0.75
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is 0
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
--- move pen out of target ---
Received pointerout
Received pointerleave
Received mouseout
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerout"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseleave
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerleave"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 2
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

===== pen tests (erase mode) =====
--- move pen into target ---
Received pointerover
Received pointerenter
Received mouseover
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerover"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseenter
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerenter"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 23
PASS lastPointerEvents[0].clientY is 31
PASS lastPointerEvents[0].layerX is 23
PASS lastPointerEvents[0].layerY is 31
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 5
PASS lastPointerEvents[0].offsetY is 5
PASS lastPointerEvents[0].pageX is 23
PASS lastPointerEvents[0].pageY is 31
PASS lastPointerEvents[0].screenX is 23
PASS lastPointerEvents[0].screenY is 31
PASS lastPointerEvents[0].x is 23
PASS lastPointerEvents[0].y is 31
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 0
PASS lastPointerEvents[0].tiltY is 0
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

--- move within target & tap ---
Received pointermove
Received mousemove
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointermove"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerdown
Received mousedown
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerdown"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is 5
PASS lastPointerEvents[0].buttons is 32
PASS lastPointerEvents[0].pressure is 0.75
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received pointerup
Received mouseup
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerup"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 33
PASS lastPointerEvents[0].clientY is 41
PASS lastPointerEvents[0].layerX is 33
PASS lastPointerEvents[0].layerY is 41
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is 15
PASS lastPointerEvents[0].offsetY is 15
PASS lastPointerEvents[0].pageX is 33
PASS lastPointerEvents[0].pageY is 41
PASS lastPointerEvents[0].screenX is 33
PASS lastPointerEvents[0].screenY is 41
PASS lastPointerEvents[0].x is 33
PASS lastPointerEvents[0].y is 41
PASS lastPointerEvents[0].button is 5
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
--- move pen out of target ---
Received pointerout
Received pointerleave
Received mouseout
PASS lastPointerEvents.length is 2
PASS lastPointerEvents[0].type is "pointerout"
PASS lastPointerEvents[0].bubbles is true
PASS lastPointerEvents[0].cancelable is true
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"
Received mouseleave
PASS lastPointerEvents.length is 1
PASS lastPointerEvents[0].type is "pointerleave"
PASS lastPointerEvents[0].bubbles is false
PASS lastPointerEvents[0].cancelable is false
PASS lastPointerEvents[0].pointerId is 3
PASS lastPointerEvents[0].pointerType is "pen"
PASS lastPointerEvents[0].isPrimary is true
PASS lastPointerEvents[0].clientX is 13
PASS lastPointerEvents[0].clientY is 21
PASS lastPointerEvents[0].layerX is 13
PASS lastPointerEvents[0].layerY is 21
PASS lastPointerEvents[0].movementX is 0
PASS lastPointerEvents[0].movementY is 0
PASS lastPointerEvents[0].offsetX is -5
PASS lastPointerEvents[0].offsetY is -5
PASS lastPointerEvents[0].pageX is 13
PASS lastPointerEvents[0].pageY is 21
PASS lastPointerEvents[0].screenX is 13
PASS lastPointerEvents[0].screenY is 21
PASS lastPointerEvents[0].x is 13
PASS lastPointerEvents[0].y is 21
PASS lastPointerEvents[0].button is -1
PASS lastPointerEvents[0].buttons is 0
PASS lastPointerEvents[0].pressure is 0
PASS lastPointerEvents[0].tiltX is 45
PASS lastPointerEvents[0].tiltY is -34
PASS lastPointerEvents[0].width is 1
PASS lastPointerEvents[0].height is 1
PASS lastPointerEvents[0].view.name is "mainWindow"

PASS successfullyParsed is true

TEST COMPLETE

