| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| async_test(function(t) { |
| window.onload = t.step_func(function() { |
| if (!window.eventSender) { |
| t.done(); |
| return; |
| } |
| doSetSelectionRange('focus'); |
| doSetSelectionRange('mousedown'); |
| doSetSelectionRange('mouseup'); |
| doSetSelectionRange('click'); |
| t.done(); |
| }); |
| |
| function doSetSelectionRange(eventType) { |
| var textfield = document.getElementById('textfield'); |
| textfield.setSelectionRange(0, 1); |
| var tx = textfield.offsetLeft + 4; |
| var ty = textfield.offsetTop + 4; |
| |
| textfield.addEventListener(eventType, setSelectionRange); |
| eventSender.mouseMoveTo(tx, ty); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| if (eventType === 'mousedown') { |
| assert_equals(textfield.selectionStart, 0); |
| assert_equals(textfield.selectionEnd, 0); |
| } else { |
| assert_equals(textfield.selectionStart, 0); |
| assert_equals(textfield.selectionEnd, 5); |
| } |
| |
| eventSender.leapForward(1000); |
| eventSender.mouseMoveTo(textfield.offsetLeft , textfield.offsetTop); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| textfield.blur(); |
| |
| assert_equals(textfield.selectionStart, 0); |
| assert_equals(textfield.selectionEnd, 0); |
| textfield.removeEventListener(eventType, setSelectionRange); |
| } |
| |
| function setSelectionRange(e) { |
| var textfield = document.getElementById('textfield'); |
| textfield.setSelectionRange(0, textfield.value.length); |
| } |
| }, "This tests the selection of the text field after setSelectionRange is called."); |
| </script> |
| <input type="text" value="value" id="textfield"></input> |