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