tor-browser

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

browser_rules_authored.js (1735B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 // Test for as-authored styles.
      7 
      8 add_task(async function () {
      9  const html = `
     10    <style type="text/css">
     11      #testid {
     12        /* Invalid property */
     13        something: random;
     14        /* Invalid value */
     15        color: orang;
     16        /* Override */
     17        background-color: blue;
     18        background-color: #f06;
     19      }
     20      </style>
     21      <div id="testid" class="testclass">Styled Node</div>`;
     22  await addTab("data:text/html;charset=utf-8," + encodeURIComponent(html));
     23 
     24  const { inspector, view } = await openRuleView();
     25  await selectNode("#testid", inspector);
     26 
     27  const elementStyle = view._elementStyle;
     28 
     29  const expected = [
     30    {
     31      name: "something",
     32      overridden: false,
     33      isNameValid: false,
     34      isValid: false,
     35    },
     36    { name: "color", overridden: false, isNameValid: true, isValid: false },
     37    {
     38      name: "background-color",
     39      overridden: true,
     40      isNameValid: true,
     41      isValid: true,
     42    },
     43    {
     44      name: "background-color",
     45      overridden: false,
     46      isNameValid: true,
     47      isValid: true,
     48    },
     49  ];
     50 
     51  const rule = elementStyle.rules[1];
     52 
     53  for (let i = 0; i < expected.length; ++i) {
     54    const prop = rule.textProps[i];
     55    is(prop.name, expected[i].name, "Check name for prop " + i);
     56    is(
     57      prop.overridden,
     58      expected[i].overridden,
     59      "Check overridden for prop " + i
     60    );
     61    is(
     62      prop.isNameValid(),
     63      expected[i].isNameValid,
     64      "Check if property name is valid for prop " + i
     65    );
     66    is(
     67      prop.isValid(),
     68      expected[i].isValid,
     69      "Check if whole declaration is valid for prop " + i
     70    );
     71  }
     72 });