15abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickdescription('Tests that updates to the orientation causes new events to fire.'); 25abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 35abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickvar mockEvent; 45abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickfunction setMockOrientation(alpha, beta, gamma) { 55abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick mockEvent = {alpha: alpha, beta: beta, gamma: gamma}; 65abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick if (window.layoutTestController) 75abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick layoutTestController.setMockDeviceOrientation(true, mockEvent.alpha, true, mockEvent.beta, true, mockEvent.gamma); 85abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick else 95abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick debug('This test can not be run without the LayoutTestController'); 105abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 115abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 125abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickvar deviceOrientationEvent; 135abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickfunction checkOrientation(event) { 145abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick deviceOrientationEvent = event; 155abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick shouldBe('deviceOrientationEvent.alpha', 'mockEvent.alpha'); 165abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick shouldBe('deviceOrientationEvent.beta', 'mockEvent.beta'); 175abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick shouldBe('deviceOrientationEvent.gamma', 'mockEvent.gamma'); 185abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 195abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 205abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickfunction firstListener(event) { 215abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick checkOrientation(event); 225abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick window.removeEventListener('deviceorientation', firstListener); 235abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 245abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick setMockOrientation(11.1, 22.2, 33.3); 255abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick window.addEventListener('deviceorientation', updateListener); 265abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 275abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 285abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickfunction updateListener(event) { 295abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick checkOrientation(event); 305abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick finishJSTest(); 315abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick} 325abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 335abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain MerricksetMockOrientation(1.1, 2.2, 3.3); 345abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickwindow.addEventListener('deviceorientation', firstListener); 355abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 365abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickwindow.jsTestIsAsync = true; 375abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickwindow.successfullyParsed = true; 38