Index: LayoutTests/fast/forms/setrangetext-within-events.html |
diff --git a/LayoutTests/fast/forms/setrangetext-within-events.html b/LayoutTests/fast/forms/setrangetext-within-events.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..06af3801ce57e3f4a23689ef241e51a17d92886c |
--- /dev/null |
+++ b/LayoutTests/fast/forms/setrangetext-within-events.html |
@@ -0,0 +1,53 @@ |
+<!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> |