test_cleanup.js (2256B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 async function checkMessages(expectedResult) { 7 let onBeforeAddons = false; 8 let onProfileAfterChange = false; 9 let onBeforeUIStartup = false; 10 let onAllWindowsRestored = false; 11 12 let errorListener = { 13 observe(subject) { 14 let message = subject.wrappedJSObject.arguments[0]; 15 if (message.includes("_cleanup from onBeforeAddons")) { 16 onBeforeAddons = true; 17 } else if (message.includes("_cleanup from onProfileAfterChange")) { 18 onProfileAfterChange = true; 19 } else if (message.includes("_cleanup from onBeforeUIStartup")) { 20 onBeforeUIStartup = true; 21 } else if (message.includes("_cleanup from onAllWindowsRestored")) { 22 onAllWindowsRestored = true; 23 } 24 }, 25 }; 26 27 Services.console.registerListener(errorListener); 28 29 const ConsoleAPIStorage = Cc["@mozilla.org/consoleAPI-storage;1"].getService( 30 Ci.nsIConsoleAPIStorage 31 ); 32 ConsoleAPIStorage.addLogEventListener( 33 errorListener.observe, 34 Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal) 35 ); 36 37 await setupPolicyEngineWithJson({ 38 policies: {}, 39 }); 40 41 equal( 42 onBeforeAddons, 43 expectedResult, 44 "onBeforeAddons should be " + expectedResult 45 ); 46 equal( 47 onProfileAfterChange, 48 expectedResult, 49 "onProfileAfterChange should be" + expectedResult 50 ); 51 equal( 52 onBeforeUIStartup, 53 expectedResult, 54 "onBeforeUIStartup should be" + expectedResult 55 ); 56 equal( 57 onAllWindowsRestored, 58 expectedResult, 59 "onAllWindowsRestored should be" + expectedResult 60 ); 61 } 62 63 /* If there is no existing policy, cleanup should not run. */ 64 add_task(async function test_cleanup_no_policy() { 65 await checkMessages(false); 66 }); 67 68 add_task(async function setup_policy() { 69 await setupPolicyEngineWithJson({ 70 policies: { 71 BlockAboutConfig: true, 72 }, 73 }); 74 }); 75 76 /* Since there was a policy, cleanup should run. */ 77 add_task(async function test_cleanup_with_policy() { 78 await checkMessages(true); 79 }); 80 81 /* Since cleanup was already done, cleanup should not run again. */ 82 add_task(async function test_cleanup_after_policy() { 83 await checkMessages(false); 84 });