Tests the optional properties of DeviceOrientationEvent. Each property should be null if not set, or set to null or undefined.

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


event = document.createEvent('DeviceOrientationEvent')
PASS event.alpha == null is true
PASS event.beta == null is true
PASS event.gamma == null is true
event.initDeviceOrientationEvent('', false, false, 0, 1, 2)
PASS event.alpha == 0 is true
PASS event.beta == 1 is true
PASS event.gamma == 2 is true
event.initDeviceOrientationEvent()
PASS event.alpha == null is true
PASS event.beta == null is true
PASS event.gamma == null is true
event.initDeviceOrientationEvent('', false, false, [], [], [])
PASS event.alpha == 0 is true
PASS event.beta == 0 is true
PASS event.gamma == 0 is true
event.initDeviceOrientationEvent('', false, false, undefined, undefined, undefined)
PASS event.alpha == null is true
PASS event.beta == null is true
PASS event.gamma == null is true
event.initDeviceOrientationEvent('', false, false, '', '', '')
PASS event.alpha == 0 is true
PASS event.beta == 0 is true
PASS event.gamma == 0 is true
event.initDeviceOrientationEvent('', false, false, null, null, null)
PASS event.alpha == null is true
PASS event.beta == null is true
PASS event.gamma == null is true
PASS successfullyParsed is true

TEST COMPLETE

