forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
async function checkMessages(expectedResult) {
 | 
						|
  let onBeforeAddons = false;
 | 
						|
  let onProfileAfterChange = false;
 | 
						|
  let onBeforeUIStartup = false;
 | 
						|
  let onAllWindowsRestored = false;
 | 
						|
 | 
						|
  let errorListener = {
 | 
						|
    observe(subject) {
 | 
						|
      let message = subject.wrappedJSObject.arguments[0];
 | 
						|
      if (message.includes("_cleanup from onBeforeAddons")) {
 | 
						|
        onBeforeAddons = true;
 | 
						|
      } else if (message.includes("_cleanup from onProfileAfterChange")) {
 | 
						|
        onProfileAfterChange = true;
 | 
						|
      } else if (message.includes("_cleanup from onBeforeUIStartup")) {
 | 
						|
        onBeforeUIStartup = true;
 | 
						|
      } else if (message.includes("_cleanup from onAllWindowsRestored")) {
 | 
						|
        onAllWindowsRestored = true;
 | 
						|
      }
 | 
						|
    },
 | 
						|
  };
 | 
						|
 | 
						|
  Services.console.registerListener(errorListener);
 | 
						|
  Services.obs.addObserver(errorListener, "console-api-log-event");
 | 
						|
 | 
						|
  await setupPolicyEngineWithJson({
 | 
						|
    policies: {},
 | 
						|
  });
 | 
						|
 | 
						|
  equal(
 | 
						|
    onBeforeAddons,
 | 
						|
    expectedResult,
 | 
						|
    "onBeforeAddons should be " + expectedResult
 | 
						|
  );
 | 
						|
  equal(
 | 
						|
    onProfileAfterChange,
 | 
						|
    expectedResult,
 | 
						|
    "onProfileAfterChange should be" + expectedResult
 | 
						|
  );
 | 
						|
  equal(
 | 
						|
    onBeforeUIStartup,
 | 
						|
    expectedResult,
 | 
						|
    "onBeforeUIStartup should be" + expectedResult
 | 
						|
  );
 | 
						|
  equal(
 | 
						|
    onAllWindowsRestored,
 | 
						|
    expectedResult,
 | 
						|
    "onAllWindowsRestored should be" + expectedResult
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
/* If there is no existing policy, cleanup should not run. */
 | 
						|
add_task(async function test_cleanup_no_policy() {
 | 
						|
  await checkMessages(false);
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function setup_policy() {
 | 
						|
  await setupPolicyEngineWithJson({
 | 
						|
    policies: {
 | 
						|
      BlockAboutConfig: true,
 | 
						|
    },
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
/* Since there was a policy, cleanup should run. */
 | 
						|
add_task(async function test_cleanup_with_policy() {
 | 
						|
  await checkMessages(true);
 | 
						|
});
 | 
						|
 | 
						|
/* Since cleanup was already done, cleanup should not run again. */
 | 
						|
add_task(async function test_cleanup_after_policy() {
 | 
						|
  await checkMessages(false);
 | 
						|
});
 |