Commit cc5aa3e2 authored by keishi@chromium.org's avatar keishi@chromium.org

Regression: r170111 Tapping listbox items should fire change/input event

BUG=403184

Review URL: https://codereview.chromium.org/486583002

git-svn-id: svn://svn.chromium.org/blink/trunk@180436 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 93263ae7
Tapping on listbox items should fire an input and a change event.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS changeEventCounter is 0
PASS inputEventCounter is 0
PASS changeEventCounter is 1
PASS inputEventCounter is 1
PASS successfullyParsed is true
TEST COMPLETE
<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test.js"></script>
<select id="select1" multiple size="4">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<script>
description('Tapping on listbox items should fire an input and a change event.');
function tapOption(select, index) {
var itemHeight = Math.floor(select.offsetHeight / select.size);
var border = 1;
var y = border + index * itemHeight;
select.focus();
if (window.eventSender) {
eventSender.gestureTap(select.offsetLeft + border, select.offsetTop + y - window.pageYOffset + itemHeight / 2);
}
}
var select = document.getElementById('select1');
var changeEventCounter = 0;
var inputEventCounter = 0;
select.addEventListener('change', function () {
changeEventCounter++;
}, false);
select.addEventListener('input', function () {
inputEventCounter++;
}, false);
if (window.eventSender) {
shouldBe('changeEventCounter', '0');
shouldBe('inputEventCounter', '0');
tapOption(select, 0);
shouldBe('changeEventCounter', '1');
shouldBe('inputEventCounter', '1');
}
</script>
</html>
......@@ -1407,8 +1407,10 @@ void HTMLSelectElement::listBoxDefaultEventHandler(Event* event)
GestureEvent& gestureEvent = toGestureEvent(*event);
int listIndex = listIndexForEventTargetOption(gestureEvent);
if (listIndex >= 0) {
if (!isDisabledFormControl())
if (!isDisabledFormControl()) {
updateSelectedState(listIndex, true, gestureEvent.shiftKey());
listBoxOnChange();
}
event->setDefaultHandled();
}
} else if (event->type() == EventTypeNames::mousedown && event->isMouseEvent() && toMouseEvent(event)->button() == LeftButton) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment