| description('Tests using null values for some of the event properties.'); |
| |
| var mockEvent; |
| function setMockOrientation(alpha, beta, gamma) { |
| mockEvent = {alpha: alpha, beta: beta, gamma: gamma}; |
| if (window.layoutTestController) |
| layoutTestController.setMockDeviceOrientation( |
| null != mockEvent.alpha, null == mockEvent.alpha ? 0 : mockEvent.alpha, |
| null != mockEvent.beta, null == mockEvent.beta ? 0 : mockEvent.beta, |
| null != mockEvent.gamma, null == mockEvent.gamma ? 0 : mockEvent.gamma); |
| else |
| debug('This test can not be run without the LayoutTestController'); |
| } |
| |
| var deviceOrientationEvent; |
| function checkOrientation(event) { |
| deviceOrientationEvent = event; |
| shouldBe('deviceOrientationEvent.alpha', 'mockEvent.alpha'); |
| shouldBe('deviceOrientationEvent.beta', 'mockEvent.beta'); |
| shouldBe('deviceOrientationEvent.gamma', 'mockEvent.gamma'); |
| } |
| |
| function firstListener(event) { |
| checkOrientation(event); |
| window.removeEventListener('deviceorientation', firstListener); |
| |
| setMockOrientation(1.1, null, null); |
| window.addEventListener('deviceorientation', secondListener); |
| } |
| |
| function secondListener(event) { |
| checkOrientation(event); |
| window.removeEventListener('deviceorientation', secondListener); |
| |
| setMockOrientation(null, 2.2, null); |
| window.addEventListener('deviceorientation', thirdListener); |
| } |
| |
| function thirdListener(event) { |
| checkOrientation(event); |
| window.removeEventListener('deviceorientation', thirdListener); |
| |
| setMockOrientation(null, null, 3.3); |
| window.addEventListener('deviceorientation', fourthListener); |
| } |
| |
| function fourthListener(event) { |
| checkOrientation(event); |
| finishJSTest(); |
| } |
| |
| setMockOrientation(null, null, null); |
| window.addEventListener('deviceorientation', firstListener); |
| |
| window.jsTestIsAsync = true; |
| window.successfullyParsed = true; |