102 lines
2.4 KiB
HTML
102 lines
2.4 KiB
HTML
<head>
|
|
<script>
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
function log(msg)
|
|
{
|
|
document.getElementById("logger").innerHTML += msg + "<br>";
|
|
}
|
|
|
|
function finishTest()
|
|
{
|
|
if (testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
function handleGamepadConnect(evt)
|
|
{
|
|
log("Connecting gamepad:");
|
|
log(navigator.getGamepads());
|
|
logGamepad(evt.gamepad);
|
|
testGenerator.next();
|
|
}
|
|
|
|
function handleGamepadDisconnect(evt)
|
|
{
|
|
log("Disconnecting gamepad:");
|
|
log(navigator.getGamepads());
|
|
testGenerator.next();
|
|
}
|
|
|
|
function logGamepad(gp)
|
|
{
|
|
log("Name: " + gp.id);
|
|
log("Index: " + gp.index);
|
|
log("Mapping: " + gp.mapping);
|
|
log("Axes: " + gp.axes);
|
|
|
|
var buttonString = "";
|
|
for (button in gp.buttons) {
|
|
buttonString += gp.buttons[button].pressed + "-" + gp.buttons[button].value + " ";
|
|
}
|
|
|
|
log("Buttons: " + buttonString);
|
|
}
|
|
|
|
function* testSteps() {
|
|
addEventListener("gamepadconnected", handleGamepadConnect);
|
|
addEventListener("gamepaddisconnected", handleGamepadDisconnect);
|
|
|
|
log("Initial gamepads length: " + navigator.getGamepads().length);
|
|
log("Connecting 20 different gamepads");
|
|
for (var i = 0; i < 20; ++i) {
|
|
testRunner.setMockGamepadDetails(i, i, "", i, i);
|
|
testRunner.connectMockGamepad(i);
|
|
yield;
|
|
}
|
|
|
|
log("Verifying there are 20 connected gamepads in the set of all gamepads");
|
|
var gamepads = navigator.getGamepads();
|
|
log(gamepads);
|
|
for (i in gamepads) {
|
|
logGamepad(gamepads[i]);
|
|
}
|
|
|
|
log("Disconnecting gamepads in reverse order, making sure gamepads array remains as expected");
|
|
for (var i = 19; i >= 0; --i) {
|
|
testRunner.disconnectMockGamepad(i);
|
|
yield;
|
|
}
|
|
|
|
log("Checking non-zero'ed details for a gamepad");
|
|
|
|
testRunner.setMockGamepadDetails(10, "Awesome Joystick 5000", "standard", 4, 16);
|
|
testRunner.setMockGamepadAxisValue(10, 0, 0.7);
|
|
testRunner.setMockGamepadAxisValue(10, 1, -0.9);
|
|
testRunner.setMockGamepadAxisValue(10, 2, 1.0);
|
|
testRunner.setMockGamepadAxisValue(10, 3, -1.0);
|
|
for (var i = 0; i < 16; ++i)
|
|
testRunner.setMockGamepadButtonValue(10, i, 1.0);
|
|
|
|
testRunner.connectMockGamepad(10);
|
|
yield;
|
|
|
|
finishTest();
|
|
}
|
|
|
|
function runTest()
|
|
{
|
|
testGenerator = testSteps();
|
|
testGenerator.next();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="runTest();">
|
|
<div id="logger"></div>
|
|
</body>
|