| var inputEventCounter = 0; |
| var changeEventCounter = 0; |
| var testInput; |
| |
| function testClearButtonChangeAndInputEvents(inputType, initialValue) |
| { |
| description('Test for event dispatching by spin buttons in a type=' + inputType + ' input.'); |
| if (!window.eventSender) { |
| debug('No eventSender'); |
| return; |
| } |
| |
| testInput = document.createElement('input'); |
| testInput.type = inputType; |
| testInput.value = initialValue; |
| testInput.onchange = function() { changeEventCounter++; }; |
| testInput.oninput = function() { inputEventCounter++; }; |
| document.body.appendChild(testInput); |
| var anotherInput = document.createElement('input'); |
| document.body.appendChild(anotherInput); |
| |
| debug('Initial state'); |
| eventSender.mouseMoveTo(0, 0); |
| shouldEvaluateTo('changeEventCounter', 0); |
| shouldEvaluateTo('inputEventCounter', 0); |
| |
| debug('Click the clear button'); |
| // Move the cursor on to the clear button. |
| var clearButton = getElementByPseudoId(internals.oldestShadowRoot(testInput), "-webkit-clear-button"); |
| eventSender.mouseMoveTo(clearButton.offsetLeft + clearButton.offsetWidth / 2, clearButton.offsetTop + clearButton.offsetHeight / 2); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| shouldBeEqualToString('testInput.value', ''); |
| shouldEvaluateTo('changeEventCounter', 1); |
| shouldEvaluateTo('inputEventCounter', 1); |
| |
| debug('Focus on another field'); |
| anotherInput.focus(); |
| shouldEvaluateTo('changeEventCounter', 1); |
| shouldEvaluateTo('inputEventCounter', 1); |
| |
| parent.innerHTML = ''; |
| } |