Test expected pointerlockchange and pointerlockerror events.

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

     Unlock.
     Lock targetDiv1.
PASS onpointerlockchange received after: Lock targetDiv1.
     Unlock again.
PASS onpointerlockchange received after: Unlock again.
     Lock targetDiv1 again.
PASS onpointerlockchange received after: Lock targetDiv1 again.
     Lock targetDiv2.
PASS onpointerlockchange received after: Lock targetDiv2.
     Lock targetDiv2 again.
PASS onpointerlockchange received after: Lock targetDiv2 again.
     Unlock targetDiv2.
PASS onpointerlockchange received after: Unlock targetDiv2.
     Lock targetIframe1.
     Lock targetIframe1 (handler for iframe1).
PASS onpointerlockchange received after: Lock targetIframe1 (handler for iframe1).
     Lock targetIframe2.
     Lock targetIframe2 (handler for iframe1).
     Lock targetIframe2 (handler for iframe2).
PASS onpointerlockerror received after: Lock targetIframe2 (handler for iframe2).
     Unlock targetIframe2.
     Unlock targetIframe2 (handler for iframe1).
     Unlock targetIframe2 (handler for iframe2).
PASS onpointerlockchange received after: Unlock targetIframe2 (handler for iframe1).
PASS testRunner.setPointerLockWillFailSynchronously is defined.
     Lock with synchronous failure.
PASS onpointerlockerror received after: Lock with synchronous failure.
PASS testRunner.setPointerLockWillRespondAsynchronously is defined.
PASS testRunner.didAcquirePointerLock is defined.
PASS testRunner.didNotAcquirePointerLock is defined.
     Lock with asynchronous failure.
PASS onpointerlockerror received after: Lock with asynchronous failure.
     Lock with asynchronous success.
PASS onpointerlockchange received after: Lock with asynchronous success.
PASS successfullyParsed is true

TEST COMPLETE

 
