| <!DOCTYPE html> |
| <body> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="resources/gamepad-helpers.js"></script> |
| <script> |
| |
| promise_test(async () => { |
| assert_inherits(navigator, 'getGamepads'); |
| assert_own_property(window, 'GamepadEvent'); |
| |
| let gamepads = navigator.getGamepads(); |
| assert_equals(gamepads.length, 4, 'gamepads.length'); |
| assert_equals(gamepads[0], null, 'gamepads[0]'); |
| assert_class_string(gamepads.item, 'Function', 'gamepads.item'); |
| assert_equals(gamepads.item(0), null, 'gamepads.item(0)'); |
| |
| gamepadController.connect(0); |
| gamepadController.setId(0, "MockStick 3000"); |
| gamepadController.setButtonCount(0, 1); |
| gamepadController.setAxisCount(0, 1); |
| gamepadController.dispatchConnected(0); |
| |
| await ongamepadconnected(); |
| let gamepad = navigator.getGamepads()[0]; |
| assert_not_equals(gamepad, null, 'gamepad'); |
| assert_true(gamepad.connected, 'gamepad.connected'); |
| assert_class_string(gamepad, 'Gamepad', 'gamepad'); |
| assert_class_string(gamepad.id, 'String', 'gamepad.id'); |
| assert_class_string(gamepad.connected, 'Boolean', 'gamepad.connected'); |
| assert_class_string(gamepad.index, 'Number', 'gamepad.index'); |
| assert_class_string(gamepad.timestamp, 'Number', 'gamepad.timestamp'); |
| assert_class_string(gamepad.axes, 'Array', 'gamepad.axes'); |
| assert_class_string(gamepad.axes[0], 'Number', 'gamepad.axes[0]'); |
| assert_class_string(gamepad.buttons, 'Array', 'gamepad.buttons'); |
| assert_class_string(gamepad.buttons[0].pressed, 'Boolean', 'gamepad.buttons[0].pressed'); |
| assert_class_string(gamepad.buttons[0].value, 'Number', 'gamepad.buttons[0].value'); |
| assert_class_string(gamepad.mapping, 'String', 'gamepad.mapping'); |
| assert_true(Object.isFrozen(gamepad.axes), 'gamepad.axes frozen'); |
| assert_true(Object.isFrozen(gamepad.buttons), 'gamepad.buttons frozen'); |
| }, "Validates the exposed Gamepad API."); |
| |
| </script> |
| </body> |