<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description('Test for spinbutton behavior for out-of-range values.');

var parent = document.createElement('div');
document.body.appendChild(parent);
parent.innerHTML = '<input type=number id=lower value=-10 min=0 max=100>'
    + '<input type=number id=higher value=200 min=0 max=100>';
var lower = document.getElementById('lower');
var higher = document.getElementById('higher');

function sendKeyEvent(element, key)
{
    element.focus();
    var event = document.createEvent('KeyboardEvents');
    event.initKeyboardEvent('keydown', true, true, document.defaultView, key, 0, false, false, false, false, false);
    element.dispatchEvent(event);
}

debug('Pressing the down arrow key on an input field of which value is lower than the minimum:');
sendKeyEvent(lower, 'Down');
var unchanged = "-10";
shouldBe('lower.value', 'unchanged');

debug('Pressing the up arrow key on the input:');
sendKeyEvent(lower, 'Up');
shouldBe('lower.value', 'lower.min');

debug('Pressing the up arrow key on an input field of which value is higher than the maximum:');
sendKeyEvent(higher, 'Up');
unchanged = "200";
shouldBe('higher.value', 'unchanged');

debug('Pressing the down arrow key on the input:');
sendKeyEvent(higher, 'Down');
shouldBe('higher.value', 'higher.max');

parent.innerHTML = '';
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
