1<!doctype html> 2<html> 3<head> 4<script src="/resources/testharness.js"></script> 5<script src="/resources/testharnessreport.js"></script> 6<script src="/resources/testdriver.js"></script> 7<script src="/resources/testdriver-actions.js"></script> 8<script src="/resources/testdriver-vendor.js"></script> 9 10</head> 11<body onload=runTest()> 12 <p>Moving the cursor using the arrow keys into an 13 input element fires scroll events when text has to scroll into view. 14 Uses arrow keys to move forward and backwards in the input 15 element.</p> 16 <input type="text" style='width: 50px' 17 value="Fooooooooooooooooooooooooooooooooooooooooooooooooo"/> 18 <textarea rows="4" cols="4"> 19 Fooooooooooooooooooooooooooooooooooooooooooooooooo 20 </textarea> 21 22 <script> 23 async function moveCursorRightInsideElement(element, value){ 24 var arrowRight = '\uE014'; 25 for(var i=0;i<value;i++){ 26 await test_driver.send_keys(element, arrowRight); 27 } 28 } 29 30 function runTest(){ 31 promise_test(async(t) => { return new Promise(async (resolve, reject) => { 32 var input = document.getElementsByTagName('input')[0]; 33 function handleScroll(){ 34 resolve("Scroll Event successfully fired!"); 35 } 36 input.addEventListener('scroll', handleScroll, false); 37 // move cursor to the right until the text scrolls 38 while(input.scrollLeft === 0){ 39 await moveCursorRightInsideElement(input, 1); 40 } 41 // if there is no scroll event fired then test will fail by timeout 42 })}, 43 /* 44 Moving the cursor using the arrow keys into an input element 45 fires scroll events when text has to scroll into view. 46 Uses arrow keys to move right in the input element. 47 */ 48 "Scroll event fired for <input> element."); 49 50 promise_test(async(t) => { return new Promise(async (resolve, reject) => { 51 var textarea = document.getElementsByTagName('textarea')[0]; 52 function handleScroll(){ 53 resolve("Scroll Event successfully fired!"); 54 } 55 textarea.addEventListener('scroll', handleScroll, false); 56 // move cursor to the right until the text scrolls 57 while(textarea.scrollLeft === 0){ 58 await moveCursorRightInsideElement(textarea, 1); 59 } 60 // if there is no scroll event fired then test will fail by timeout 61 })}, 62 /* 63 Moving the cursor using the arrow keys into a textarea element 64 fires scroll events when text has to scroll into view. 65 Uses arrow keys to move right in the textarea element. 66 */ 67 "Scroll event fired for <textarea> element."); 68 } 69 </script> 70</body> 71</html> 72