<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description('Test for a capturing spec change to consider .2 as valid real number for step');

var parent = document.createElement('div');
document.body.appendChild(parent);
parent.innerHTML = '<input type=number id=number value=0 step=".5">';
var numberInput = document.getElementById('number');

if (window.eventSender) {
    // Move the cursor on the upper button of the input field.
    eventSender.mouseMoveTo(numberInput.offsetLeft + numberInput.offsetWidth - 10, numberInput.offsetTop + numberInput.offsetHeight / 4);

    eventSender.mouseDown();
    eventSender.mouseUp();
    shouldBe('numberInput.value', '"0.5"');

    parent.innerHTML = '';
} else {
    document.getElementById('console').innerHTML = '<p>No eventSender. <p>Manual test instruction: Click the upper button of the input field.  Confirm that the input field value is 0.5';
}

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