tor-browser

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

test_sorted_alphabetically.js (1228B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 function checkArrayIsSorted(array, msg) {
      7  let sorted = true;
      8  let sortedArray = array.slice().sort(function (a, b) {
      9    return a.localeCompare(b);
     10  });
     11 
     12  for (let i = 0; i < array.length; i++) {
     13    if (array[i] != sortedArray[i]) {
     14      sorted = false;
     15      break;
     16    }
     17  }
     18  ok(sorted, msg);
     19 }
     20 
     21 add_task(async function test_policies_sorted() {
     22  let { schema } = ChromeUtils.importESModule(
     23    "resource:///modules/policies/schema.sys.mjs"
     24  );
     25  let { Policies } = ChromeUtils.importESModule(
     26    "resource:///modules/policies/Policies.sys.mjs"
     27  );
     28 
     29  checkArrayIsSorted(
     30    Object.keys(schema.properties),
     31    "policies-schema.json is alphabetically sorted."
     32  );
     33  checkArrayIsSorted(
     34    Object.keys(Policies),
     35    "Policies.sys.mjs is alphabetically sorted."
     36  );
     37 });
     38 
     39 add_task(async function check_naming_conventions() {
     40  let { schema } = ChromeUtils.importESModule(
     41    "resource:///modules/policies/schema.sys.mjs"
     42  );
     43  equal(
     44    Object.keys(schema.properties).some(key => key.includes("__")),
     45    false,
     46    "Can't use __ in a policy name as it's used as a delimiter"
     47  );
     48 });