<!doctype html>
<html>
<head>
<title>Manual Gamepad IDL tests</title>
<link rel="help" href="https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepad-interface">
<link rel="help" href="https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepadbutton-interface">
<link rel="help" href="https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#gamepadevent-interface">
<link rel="help" href="https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html#navigator-interface-extension">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script>
setup({explicit_done: true, explicit_timeout: true});

addEventListener("gamepadconnected", function (e) {
  var idl_array = new IdlArray();
  idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
  idl_array.add_idls(document.getElementById("idl").textContent);
  idl_array.add_objects({
    GamepadEvent: [e],
    Gamepad: [e.gamepad],
    GamepadButton: [e.gamepad.buttons[0]],
    Navigator: ["navigator"],
  });
  idl_array.test();
  done();
});
</script>
</head>
<body>
<pre id="untested_idl" style="display: none">
interface Navigator {
};

interface Event {
};
</pre>
<pre id="idl" style="display: none">
interface Gamepad {
    readonly    attribute DOMString           id;
    readonly    attribute long                index;
    readonly    attribute boolean             connected;
    readonly    attribute DOMHighResTimeStamp timestamp;
    readonly    attribute GamepadMappingType  mapping;
    readonly    attribute double[]            axes;
    readonly    attribute GamepadButton[]     buttons;
};

enum GamepadMappingType {
  "",
  "standard"
};

interface GamepadButton {
    readonly    attribute boolean pressed;
    readonly    attribute double  value;
};

[Constructor(DOMString type, optional GamepadEventInit eventInitDict)]
interface GamepadEvent : Event
{
  readonly attribute Gamepad? gamepad;
};

dictionary GamepadEventInit : EventInit
{
  Gamepad? gamepad = null;
};

partial interface Navigator {
    Gamepad[] getGamepads();
};
</pre>
<p id="instructions">This test requires a gamepad. Connect one and press any button to start the test.</p>
<div id="log"></div>
</body>
</html>
