Tests that document.createEvent() works with DeviceOrientationEvent.

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


PASS typeof event == 'object' is true
PASS 'type' in event is true
PASS 'bubbles' in event is true
PASS 'cancelable' in event is true
PASS 'alpha' in event is true
PASS 'beta' in event is true
PASS 'gamma' in event is true
PASS typeof event.type == 'string' is true
PASS typeof event.bubbles == 'boolean' is true
PASS typeof event.cancelable == 'boolean' is true
PASS typeof event.alpha == 'object' is true
PASS typeof event.beta == 'object' is true
PASS typeof event.gamma == 'object' is true
PASS successfullyParsed is true

TEST COMPLETE

