tor-browser

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

test_inspectFields.js (1492B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 https://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const { FormAutofillChild } = ChromeUtils.importESModule(
      7  "resource://autofill/FormAutofillChild.sys.mjs"
      8 );
      9 
     10 add_task(async function test_inspectFields() {
     11  const doc = MockDocument.createTestDocument(
     12    "http://localhost:8080/test/",
     13    `<form>
     14       <input id="cc-number" autocomplete="cc-number">
     15       <input id="cc-name" autocomplete="cc-name">
     16       <input id="cc-exp" autocomplete="cc-exp">
     17     </form>
     18     <select id="cc-type" autocomplete="cc-type">
     19       <option/>
     20       <option value="visa">VISA</option>
     21     </select>
     22     <form>
     23       <input id="name" autocomplete="name">
     24       <select id="country" autocomplete="country">
     25         <option/>
     26         <option value="US">United States</option>
     27       </select>
     28     </form>
     29     <input id="email" autocomplete="email">
     30     <input id="unknown" autocomplete="unknown">
     31    `
     32  );
     33  const fac = new FormAutofillChild();
     34  sinon.stub(fac, "document").get(() => {
     35    return doc;
     36  });
     37  sinon.stub(fac, "browsingContext").get(() => {
     38    return {};
     39  });
     40 
     41  const fields = fac.inspectFields();
     42 
     43  const expectedElements = Array.from(doc.querySelectorAll("input, select"));
     44  const inspectedElements = fields.map(field => field.element);
     45  Assert.deepEqual(
     46    expectedElements,
     47    inspectedElements,
     48    "inspectedElements should return all the eligible fields"
     49  );
     50 
     51  sinon.restore();
     52 });