tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);