94 lines
2.4 KiB
HTML
94 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();
|
|
}
|
|
|
|
var rafCount = 0;
|
|
var increasingTimestampsSeen = 0;
|
|
var timestamp = 0;
|
|
var gamepad2Timestamp = -1;
|
|
|
|
function rafCallback()
|
|
{
|
|
var gamepad = navigator.getGamepads()[0];
|
|
var gamepad2 = navigator.getGamepads()[1];
|
|
|
|
if (gamepad2Timestamp == -1)
|
|
gamepad2Timestamp = gamepad2.timestamp;
|
|
|
|
if (gamepad2Timestamp != gamepad2.timestamp) {
|
|
log("Timestamp of gamepad 2 should never change throughout this test, but it did!");
|
|
finishTest();
|
|
}
|
|
|
|
if (gamepad.timestamp < timestamp) {
|
|
log("Timestamp on gamepad is " + gamepad.timestamp + " which is less than " + timestamp);
|
|
finishTest();
|
|
}
|
|
|
|
if (gamepad.timestamp > timestamp)
|
|
++increasingTimestampsSeen;
|
|
|
|
if (increasingTimestampsSeen == 10) {
|
|
log("Increasing timestamp values seen for 10 RAF cycles");
|
|
finishTest();
|
|
}
|
|
|
|
if (++rafCount == 120) {
|
|
log("Went 120 RAF cycles without seeing 10 increasing timestamp values... yikes!");
|
|
log("Number of actual timestamp increases seen: " + increasingTimestampsSeen);
|
|
finishTest();
|
|
}
|
|
|
|
timestamp = gamepad.timestamp;
|
|
|
|
if (gamepad.buttons[0] == 1.0)
|
|
testRunner.setMockGamepadButtonValue(0, 0, 0.0);
|
|
else
|
|
testRunner.setMockGamepadButtonValue(0, 0, 1.0);
|
|
|
|
requestAnimationFrame(rafCallback);
|
|
}
|
|
|
|
function handleGamepadConnect()
|
|
{
|
|
requestAnimationFrame(rafCallback);
|
|
}
|
|
|
|
function runTest() {
|
|
addEventListener("gamepadconnected", handleGamepadConnect);
|
|
|
|
testRunner.setMockGamepadDetails(0, "Test Joystick", "", 2, 2);
|
|
testRunner.setMockGamepadAxisValue(0, 0, 0.7);
|
|
testRunner.setMockGamepadAxisValue(0, 1, -1.0);
|
|
testRunner.setMockGamepadButtonValue(0, 0, 1.0);
|
|
testRunner.setMockGamepadButtonValue(0, 1, 1.0);
|
|
testRunner.connectMockGamepad(0);
|
|
testRunner.setMockGamepadDetails(1, "Test Joystick 2", "", 2, 2);
|
|
testRunner.setMockGamepadAxisValue(1, 0, 0.7);
|
|
testRunner.setMockGamepadAxisValue(1, 1, -1.0);
|
|
testRunner.setMockGamepadButtonValue(1, 0, 1.0);
|
|
testRunner.setMockGamepadButtonValue(1, 1, 1.0);
|
|
testRunner.connectMockGamepad(1);
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="runTest();">
|
|
<div id="logger"></div>
|
|
</body>
|