<!DOCTYPE html>
<meta charset="utf-8" />
<title>Gamepad Test: non-secure contexts</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  test(() => {
    // To avoid breaking legacy apps getGamepads() should always be exposed on
    // the navigator object, even in non-secure contexts.
    assert_true("getGamepads" in Navigator.prototype, "in prototype");
    assert_true("getGamepads" in navigator, "on instance");

    // Calling navigator.getGamepads() should return an empty array even if
    // there are connected gamepads.
    assert_array_equals(navigator.getGamepads(), [],
                        "getGamepads returns an empty array");

    // Gamepad API types should not be exposed in non-secure contexts.
    assert_equals(typeof(Gamepad), "undefined", "Gamepad type is undefined");
    assert_equals(typeof(GamepadButton), "undefined",
                  "GamepadButton type is undefined");
    assert_equals(typeof(GamepadEvent), "undefined",
                  "GamepadEvent type is undefined");
  }, "Gamepad API is not exposed in non-secure contexts");
</script>
