blob: 2964ee550db1a0a0fc5bf50672cf59021e89cde6 [file] [log] [blame]
Ted Mielczarek634cdba2014-12-11 14:23:301<!doctype html>
Ted Mielczarek634cdba2014-12-11 14:23:302<title>Manual Gamepad IDL tests</title>
Wanming Linddb12582017-12-13 02:23:193<link rel="help" href="https://w3c.github.io/gamepad/">
Ted Mielczarek634cdba2014-12-11 14:23:304<script src="/resources/testharness.js"></script>
5<script src="/resources/testharnessreport.js"></script>
6<script src="/resources/WebIDLParser.js"></script>
7<script src="/resources/idlharness.js"></script>
Wanming Linddb12582017-12-13 02:23:198<p id="instructions">This test requires a gamepad. Connect one and press any button to start the test.</p>
Ted Mielczarek634cdba2014-12-11 14:23:309<script>
Luke Bjerringd6ffdd32018-07-20 14:56:5910'use strict';
Ted Mielczarek634cdba2014-12-11 14:23:3011
Luke Bjerringd6ffdd32018-07-20 14:56:5912idl_test(
13 ['gamepad'],
14 ['dom', 'html'],
15 (idl_array, t) => {
16 idl_array.add_objects({
17 Gamepad: ['gamepad'],
18 GamepadButton: ['gamepadButton'],
19 GamepadEvent: ['event'],
20 Navigator: ['navigator']
21 });
Wanming Linddb12582017-12-13 02:23:1922
Luke Bjerringd6ffdd32018-07-20 14:56:5923 const eventWatcher = new EventWatcher(t, window, "gamepadconnected");
24 const gamepadConnected = eventWatcher.wait_for("gamepadconnected")
25 .then(e => {
26 self.event = e;
27 self.gamepad = e.gamepad;
28 self.gamepadButton = e.gamepad.buttons[0];
29 });
Wanming Linddb12582017-12-13 02:23:1930
Luke Bjerringd6ffdd32018-07-20 14:56:5931 const timeout = new Promise((_, reject) => {
32 t.step_timeout(() => { reject('Timed out waiting for gamepad'); }, 5000);
33 });
34 return Promise.race([gamepadConnected, timeout]);
Philip Jägenstedta570eb12018-08-13 11:37:4335 }
Luke Bjerringd6ffdd32018-07-20 14:56:5936);
Ted Mielczarek634cdba2014-12-11 14:23:3037</script>