Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: LayoutTests/gamepad/gamepad-api.html

Issue 212813008: Gamepad API: tests for gamepad events (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/gamepad/gamepad-api.html
diff --git a/LayoutTests/gamepad/gamepad-api.html b/LayoutTests/gamepad/gamepad-api.html
index cac387458fd9b2b3557679591b14e090ed6d366a..5ddd3819eccfe57617b481dc5149c9c87accdd84 100644
--- a/LayoutTests/gamepad/gamepad-api.html
+++ b/LayoutTests/gamepad/gamepad-api.html
@@ -2,8 +2,75 @@
<body>
<script src="../resources/js-test.js"></script>
<script>
+ description("Validates the exposed Gamepad API.")
+
shouldBeDefined("navigator.webkitGetGamepads");
shouldBeDefined("navigator.getGamepads");
+ shouldBeDefined("GamepadEvent");
+
+ webkitGamepads = navigator.webkitGetGamepads();
+ shouldBeEqualToString("Object.prototype.toString.call(webkitGamepads)", "[object WebKitGamepadList]");
sof 2014/03/26 21:43:46 This is a curious way to do a type test -- how abo
+ shouldBe("webkitGamepads.length", "4");
+ shouldBe("webkitGamepads[0]", "undefined");
+ shouldBeEqualToString("Object.prototype.toString.call(webkitGamepads.item)", "[object Function]")
+ shouldBe("webkitGamepads.item(0)", "null");
sof 2014/03/26 21:43:46 shouldBeNull() instead?
kbalazs 2014/03/26 23:27:13 Done.
+
+ gamepads = navigator.getGamepads();
+ shouldBeEqualToString("Object.prototype.toString.call(gamepads)", "[object GamepadList]");
+ shouldBe("gamepads.length", "4");
+ shouldBe("gamepads[0]", "undefined");
sof 2014/03/26 21:43:46 You can use shouldBeUndefined() instead here.
kbalazs 2014/03/26 23:27:13 Done.
+ shouldBeEqualToString("Object.prototype.toString.call(gamepads.item)", "[object Function]");
+ shouldBe("webkitGamepads.item(0)", "null");
+
+ if (window.gamepadController)
+ {
+ shouldNotThrow("window.addEventListener('gamepadconnected', function(){}, false)");
+ shouldNotThrow("window.addEventListener('gamepaddisconnected', function(){}, false)");
+
+ gamepadController.connect(0);
+ gamepadController.setId(0, "MockStick 3000");
+ gamepadController.setButtonCount(0, 1);
+ gamepadController.setAxisCount(0, 1);
+
+ function checkProperties(isPrefixed) {
+ if (isPrefixed)
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad)", "[object WebKitGamepad]");
+ else
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad)", "[object Gamepad]");
+
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.id)", "[object String]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.connected)", "[object Boolean]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.index)", "[object Number]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.timestamp)", "[object Number]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.axes)", "[object Array]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.axes[0])", "[object Number]");
+
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.buttons)", "[object Array]");
+ if (isPrefixed) {
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.buttons[0])", "[object Number]");
+ } else {
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.buttons[0])", "[object GamepadButton]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.buttons[0].pressed)", "[object Boolean]");
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.buttons[0].value)", "[object Number]");
+ }
+
+ if (!isPrefixed)
+ shouldBeEqualToString("Object.prototype.toString.call(gamepad.mapping)", "[object String]");
+ }
+
+ gamepad = navigator.webkitGetGamepads()[0];
+ shouldBeNonNull("gamepad");
+ shouldBeTrue("gamepad.connected")
+ checkProperties(true);
+
+ gamepad = navigator.getGamepads()[0];
+ shouldBeNonNull("gamepad");
+ shouldBeTrue("gamepad.connected");
+ checkProperties(false);
+ }
+ else
+ {
+ console.log("FAIL: no gamepadController available.")
+ }
</script>
-<p>Make sure the main polling access point exists on navigator.</p>
</body>
« no previous file with comments | « no previous file | LayoutTests/gamepad/gamepad-api-expected.txt » ('j') | LayoutTests/gamepad/gamepad-events-basic.html » ('J')

Powered by Google App Engine
This is Rietveld 408576698