<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/js-test-pre.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>

<script src="../resources/js-test-post.js"></script>
</body>
</html>
