<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body id="body">
<span role="spinbutton" tabindex="-1" id="spinbutton1"></span>
<span role="spinbutton" tabindex="-1" id="spinbutton2" aria-valuemin=1></span>
<span role="spinbutton" tabindex="-1" id="spinbutton3" aria-valuenow=1></span>
<span role="spinbutton" tabindex="-1" id="spinbutton4" aria-valuemax=1></span>

<p id="description"></p>
<div id="console"></div>

<script>
    description("Verifies the implicit values for aria-value* are correct for the spinbutton role.");

    if (window.accessibilityController) {
        var spinbutton1 = accessibilityController.accessibleElementById("spinbutton1");
        shouldBeTrue("spinbutton1.minValue <= Number.MIN_SAFE_INTEGER");
        shouldBe("spinbutton1.intValue", "0");
        shouldBeTrue("spinbutton1.maxValue >= Number.MAX_SAFE_INTEGER");

        var spinbutton2 = accessibilityController.accessibleElementById("spinbutton2");
        shouldBe("spinbutton2.minValue", "1");
        shouldBe("spinbutton2.intValue", "0");
        shouldBeTrue("spinbutton2.maxValue >= Number.MAX_SAFE_INTEGER");

        var spinbutton3 = accessibilityController.accessibleElementById("spinbutton3");
        shouldBeTrue("spinbutton3.minValue <= Number.MIN_SAFE_INTEGER");
        shouldBe("spinbutton3.intValue", "1");
        shouldBeTrue("spinbutton3.maxValue >= Number.MAX_SAFE_INTEGER");

        var spinbutton4 = accessibilityController.accessibleElementById("spinbutton4");
        shouldBeTrue("spinbutton4.minValue <= Number.MIN_SAFE_INTEGER");
        shouldBe("spinbutton4.intValue", "0");
        shouldBe("spinbutton4.maxValue", "1");
    }

</script>

</body>
</html>
