forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
// This tests the Privacy pane's Firefox QuickActions UI.
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
ChromeUtils.defineESModuleGetters(this, {
 | 
						|
  UrlbarProviderQuickActions:
 | 
						|
    "resource:///modules/UrlbarProviderQuickActions.sys.mjs",
 | 
						|
  UrlbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs",
 | 
						|
});
 | 
						|
 | 
						|
add_setup(async function setup() {
 | 
						|
  await SpecialPowers.pushPrefEnv({
 | 
						|
    set: [
 | 
						|
      ["browser.urlbar.suggest.quickactions", true],
 | 
						|
      ["browser.urlbar.quickactions.enabled", true],
 | 
						|
    ],
 | 
						|
  });
 | 
						|
 | 
						|
  UrlbarProviderQuickActions.addAction("testaction", {
 | 
						|
    commands: ["testaction"],
 | 
						|
    label: "quickactions-downloads2",
 | 
						|
  });
 | 
						|
 | 
						|
  registerCleanupFunction(() => {
 | 
						|
    UrlbarProviderQuickActions.removeAction("testaction");
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
async function isGroupHidden(tab) {
 | 
						|
  return SpecialPowers.spawn(
 | 
						|
    tab.linkedBrowser,
 | 
						|
    [],
 | 
						|
    async () => content.document.getElementById("quickActionsBox").hidden
 | 
						|
  );
 | 
						|
}
 | 
						|
 | 
						|
add_task(async function test_show_prefs() {
 | 
						|
  Services.prefs.setBoolPref("browser.urlbar.quickactions.showPrefs", false);
 | 
						|
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab(
 | 
						|
    gBrowser,
 | 
						|
    "about:preferences#privacy"
 | 
						|
  );
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    await isGroupHidden(tab),
 | 
						|
    "The preferences are hidden when pref disabled"
 | 
						|
  );
 | 
						|
 | 
						|
  Services.prefs.setBoolPref("browser.urlbar.quickactions.showPrefs", true);
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    !(await isGroupHidden(tab)),
 | 
						|
    "The preferences are shown when pref enabled"
 | 
						|
  );
 | 
						|
 | 
						|
  Services.prefs.clearUserPref("browser.urlbar.quickactions.showPrefs");
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
});
 | 
						|
 | 
						|
async function testActionIsShown(window) {
 | 
						|
  await UrlbarTestUtils.promiseAutocompleteResultPopup({
 | 
						|
    window,
 | 
						|
    value: "testact",
 | 
						|
    waitForFocus: SimpleTest.waitForFocus,
 | 
						|
  });
 | 
						|
  try {
 | 
						|
    let { result } = await UrlbarTestUtils.getDetailsOfResultAt(window, 1);
 | 
						|
    return result.providerName == "quickactions";
 | 
						|
  } catch (e) {
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
add_task(async function test_prefs() {
 | 
						|
  Services.prefs.setBoolPref("browser.urlbar.quickactions.showPrefs", true);
 | 
						|
  Services.prefs.setBoolPref("browser.urlbar.suggest.quickactions", false);
 | 
						|
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab(
 | 
						|
    gBrowser,
 | 
						|
    "about:preferences#privacy"
 | 
						|
  );
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    !(await testActionIsShown(window)),
 | 
						|
    "Actions are not shown while pref disabled"
 | 
						|
  );
 | 
						|
 | 
						|
  await SpecialPowers.spawn(tab.linkedBrowser, [], async () => {
 | 
						|
    let checkbox = content.document.getElementById("enableQuickActions");
 | 
						|
    is(
 | 
						|
      checkbox.checked,
 | 
						|
      false,
 | 
						|
      "Checkbox is not checked while feature is disabled"
 | 
						|
    );
 | 
						|
    checkbox.click();
 | 
						|
  });
 | 
						|
 | 
						|
  Assert.ok(
 | 
						|
    await testActionIsShown(window),
 | 
						|
    "Actions are shown after user clicks checkbox"
 | 
						|
  );
 | 
						|
 | 
						|
  Services.prefs.clearUserPref("browser.urlbar.quickactions.showPrefs");
 | 
						|
  Services.prefs.clearUserPref("browser.urlbar.suggest.quickactions");
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
});
 |