tor-browser

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

browser_jsterm_helper_dollar_x.js (3918B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const TEST_URI = `data:text/html,<!DOCTYPE html>
      7 <main>
      8  <ul>
      9    <li>First</li>
     10    <li>Second</li>
     11  </ul>
     12  <aside>Sidebar</aside>
     13 </main>
     14 `;
     15 
     16 add_task(async function () {
     17  const hud = await openNewTabAndConsole(TEST_URI);
     18 
     19  // Place the mouse on the top left corner to avoid triggering an highlighter request
     20  // to the server. See Bug 1531572.
     21  EventUtils.synthesizeMouse(
     22    hud.ui.outputNode,
     23    0,
     24    0,
     25    { type: "mousemove" },
     26    hud.iframeWindow
     27  );
     28 
     29  let message = await executeAndWaitForResultMessage(
     30    hud,
     31    "$x('.//li')",
     32    "Array [ li, li ]"
     33  );
     34  ok(message, "`$x` worked");
     35 
     36  message = await executeAndWaitForResultMessage(
     37    hud,
     38    "$x('.//li', document.body)[0]",
     39    "<li>"
     40  );
     41  ok(message, "`$x()` result can be used right away");
     42 
     43  message = await executeAndWaitForResultMessage(
     44    hud,
     45    "$x('count(.//li)', document.body, XPathResult.NUMBER_TYPE)",
     46    "2"
     47  );
     48  ok(message, "$x works as expected with XPathResult.NUMBER_TYPE");
     49 
     50  message = await executeAndWaitForResultMessage(
     51    hud,
     52    "$x('count(.//li)', document.body, 'number')",
     53    "2"
     54  );
     55  ok(message, "$x works as expected number type");
     56 
     57  message = await executeAndWaitForResultMessage(
     58    hud,
     59    "$x('.//li', document.body, XPathResult.STRING_TYPE)",
     60    "First"
     61  );
     62  ok(message, "$x works as expected with XPathResult.STRING_TYPE");
     63 
     64  message = await executeAndWaitForResultMessage(
     65    hud,
     66    "$x('.//li', document.body, 'string')",
     67    "First"
     68  );
     69  ok(message, "$x works as expected with string type");
     70 
     71  message = await executeAndWaitForResultMessage(
     72    hud,
     73    "$x('//li[not(@foo)]', document.body, XPathResult.BOOLEAN_TYPE)",
     74    "true"
     75  );
     76  ok(message, "$x works as expected with XPathResult.BOOLEAN_TYPE");
     77 
     78  message = await executeAndWaitForResultMessage(
     79    hud,
     80    "$x('//li[not(@foo)]', document.body, 'bool')",
     81    "true"
     82  );
     83  ok(message, "$x works as expected with bool type");
     84 
     85  message = await executeAndWaitForResultMessage(
     86    hud,
     87    "$x('.//li', document.body, XPathResult.UNORDERED_NODE_ITERATOR_TYPE)",
     88    "Array [ li, li ]"
     89  );
     90  ok(
     91    message,
     92    "$x works as expected with XPathResult.UNORDERED_NODE_ITERATOR_TYPE"
     93  );
     94 
     95  message = await executeAndWaitForResultMessage(
     96    hud,
     97    "$x('.//li', document.body, 'nodes')",
     98    "Array [ li, li ]"
     99  );
    100  ok(message, "$x works as expected with nodes type");
    101 
    102  message = await executeAndWaitForResultMessage(
    103    hud,
    104    "$x('.//li', document.body, XPathResult.ORDERED_NODE_ITERATOR_TYPE)",
    105    "Array [ li, li ]"
    106  );
    107  ok(
    108    message,
    109    "$x works as expected with XPathResult.ORDERED_NODE_ITERATOR_TYPE"
    110  );
    111 
    112  message = await executeAndWaitForResultMessage(
    113    hud,
    114    "$x('.//li', document.body, XPathResult.ANY_UNORDERED_NODE_TYPE)",
    115    "<li>"
    116  );
    117  ok(message, "$x works as expected with XPathResult.ANY_UNORDERED_NODE_TYPE");
    118 
    119  message = await executeAndWaitForResultMessage(
    120    hud,
    121    "$x('.//li', document.body, XPathResult.FIRST_ORDERED_NODE_TYPE)",
    122    "<li>"
    123  );
    124  ok(message, "$x works as expected with XPathResult.FIRST_ORDERED_NODE_TYPE");
    125 
    126  message = await executeAndWaitForResultMessage(
    127    hud,
    128    "$x('.//li', document.body, 'node')",
    129    "<li>"
    130  );
    131  ok(message, "$x works as expected with node type");
    132 
    133  message = await executeAndWaitForResultMessage(
    134    hud,
    135    "$x('.//li', document.body, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE)",
    136    "Array [ li, li ]"
    137  );
    138  ok(
    139    message,
    140    "$x works as expected with XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE"
    141  );
    142 
    143  message = await executeAndWaitForResultMessage(
    144    hud,
    145    "$x('.//li', document.body, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE)",
    146    "Array [ li, li ]"
    147  );
    148  ok(
    149    message,
    150    "$x works as expected with XPathResult.ORDERED_NODE_SNAPSHOT_TYPE"
    151  );
    152 });