<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test-pre.js"></script>
<select id="selectElement" multiple size="4">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
</select>

<script>
description('Click on a listbox scrollbar should not dispatch change evnet.');
jsTestIsAsync = true;
var selectElement = document.getElementById('selectElement');
var changeEventCounter = 0;
selectElement.onchange = function() {
    debug('A change event was dispatched.');
    ++changeEventCounter;
}

window.onload = function() {
    if (!window.eventSender)
        debug('Click on the scrollbar. The test passes if nothing is printed.');
    else {
        debug('Click on the scrollbar. No change event should be fired.')
        eventSender.mouseMoveTo(selectElement.offsetLeft + selectElement.offsetWidth - 2, selectElement.offsetTop + selectElement.offsetHeight - 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
        shouldBe('selectElement.selectedIndex', '-1');
        shouldBe('changeEventCounter', '0');

        debug('');
        debug('Click on the first option. A change event should be fired.');
        eventSender.mouseMoveTo(selectElement.offsetLeft + 4, selectElement.offsetTop + 4);
        eventSender.mouseDown();
        eventSender.mouseUp();
        shouldBe('selectElement.selectedIndex', '0');
        shouldBe('changeEventCounter', '1');

        debug('');
        debug('Add an option item and then click on the scrollbar again. No change event should be fired.');
        selectElement.appendChild(new Option('9'));
        eventSender.mouseMoveTo(selectElement.offsetLeft + selectElement.offsetWidth - 2, selectElement.offsetTop + selectElement.offsetHeight - 2);
        eventSender.mouseDown();
        eventSender.mouseUp();
        shouldBe('selectElement.selectedIndex', '0');
        shouldBe('changeEventCounter', '1');

        debug('');
        finishJSTest();
    }
};
</script>

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