blob: 0b407735e24c78cd00d34aac071a0be0dafa4a56 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../resources/js-test.js"></script>
<script>
description("Basic test for 'gamepadconnected' and 'gamepaddisconnected' events.");
jsTestIsAsync = true;
if (window.gamepadController)
{
function onConnected(event) {
debug("Gamepad connected");
shouldBe("event.__proto__", "GamepadEvent.prototype");
shouldBe("event.__proto__.__proto__", "Event.prototype");
shouldBeEqualToString("event.gamepad.id", "MockStick 3000");
shouldBe("event.gamepad.buttons.length", "3");
shouldBe("event.gamepad.axes.length", "3");
shouldBe("event.gamepad.buttons[0].value", "1.0");
shouldBeTrue("event.gamepad.buttons[0].pressed");
shouldBe("event.gamepad.buttons[1].value", "0.0");
shouldBeFalse("event.gamepad.buttons[1].pressed");
shouldBe("event.gamepad.axes.length", "3");
shouldBe("event.gamepad.buttons[2].value", "0.333333");
shouldBeTrue("event.gamepad.buttons[2].pressed");
shouldBe("event.gamepad.axes[0]", "0.5");
shouldBe("event.gamepad.axes[1]", "-1.0");
shouldBe("event.gamepad.axes[2]", "0.333333");
// |axes| and |buttons| are FrozenArrays, changing them has no
// effect.
axes = event.gamepad.axes;
axes[0] = 42;
shouldBe("axes[0]", "0.5");
buttons = event.gamepad.buttons;
buttons.foo = "bar";
shouldBeFalse("buttons.hasOwnProperty('foo')");
gamepadController.disconnect(0);
}
function onDisconnected(event) {
debug("Gamepad disconnected");
shouldBe("event.__proto__", "GamepadEvent.prototype");
shouldBe("event.__proto__.__proto__", "Event.prototype");
shouldBeEqualToString("event.gamepad.id", "MockStick 3000");
shouldBe("event.gamepad.buttons.length", "3");
shouldBe("event.gamepad.axes.length", "3");
finishJSTest();
}
window.addEventListener('gamepadconnected', onConnected);
window.addEventListener('gamepaddisconnected', onDisconnected);
gamepadController.connect(0);
gamepadController.setId(0, "MockStick 3000");
gamepadController.setButtonCount(0, 3);
gamepadController.setAxisCount(0, 3);
gamepadController.setButtonData(0, 0, 1);
gamepadController.setButtonData(0, 1, 0);
gamepadController.setButtonData(0, 2, 0.333333);
gamepadController.setAxisData(0, 0, .5);
gamepadController.setAxisData(0, 1, -1.0);
gamepadController.setAxisData(0, 2, 0.333333);
gamepadController.dispatchConnected(0);
}
else
{
testFailed("no gamepadController available.");
}
</script>
</body>