browser_test_textcaret.js (1562B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 /** 7 * Caret move events checker. 8 */ 9 function caretMoveChecker(target, caretOffset) { 10 return function (event) { 11 let cmEvent = event.QueryInterface(nsIAccessibleCaretMoveEvent); 12 return ( 13 cmEvent.accessible == getAccessible(target) && 14 cmEvent.caretOffset == caretOffset 15 ); 16 }; 17 } 18 19 async function checkURLBarCaretEvents() { 20 const kURL = "about:mozilla"; 21 let newWin = await BrowserTestUtils.openNewBrowserWindow(); 22 BrowserTestUtils.startLoadingURIString(newWin.gBrowser.selectedBrowser, kURL); 23 newWin.gBrowser.selectedBrowser.focus(); 24 25 await waitForEvent(EVENT_DOCUMENT_LOAD_COMPLETE, event => { 26 try { 27 return event.accessible.QueryInterface(nsIAccessibleDocument).URL == kURL; 28 } catch (e) { 29 return false; 30 } 31 }); 32 info("Loaded " + kURL); 33 34 let urlbarInputEl = newWin.gURLBar.inputField; 35 let urlbarInput = getAccessible(urlbarInputEl, [nsIAccessibleText]); 36 37 let onCaretMove = waitForEvents([ 38 [EVENT_TEXT_CARET_MOVED, caretMoveChecker(urlbarInput, kURL.length)], 39 [EVENT_FOCUS, urlbarInput], 40 ]); 41 42 urlbarInput.caretOffset = -1; 43 await onCaretMove; 44 ok(true, "Caret move in URL bar #1"); 45 46 onCaretMove = waitForEvent( 47 EVENT_TEXT_CARET_MOVED, 48 caretMoveChecker(urlbarInput, 0) 49 ); 50 51 urlbarInput.caretOffset = 0; 52 await onCaretMove; 53 ok(true, "Caret move in URL bar #2"); 54 55 await BrowserTestUtils.closeWindow(newWin); 56 } 57 58 add_task(checkURLBarCaretEvents);