Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
const SUPPORT_FILES_PATH =
const BLOCKED_PAGE = "policy_websitefilter_block.html";
const EXCEPTION_PAGE = "policy_websitefilter_exception.html";
const SAVELINKAS_PAGE = "policy_websitefilter_savelink.html";
async function clearWebsiteFilter() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: {
Block: [],
Exceptions: [],
},
},
});
}
add_task(async function test_http() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: {
Block: ["*://mochi.test/*policy_websitefilter_*"],
Exceptions: ["*://mochi.test/*_websitefilter_exception*"],
},
},
});
await checkBlockedPage(SUPPORT_FILES_PATH + BLOCKED_PAGE, true);
await checkBlockedPage(
"view-source:" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(
"about:reader?url=" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(
"about:READER?url=" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(SUPPORT_FILES_PATH + EXCEPTION_PAGE, false);
await checkBlockedPage(SUPPORT_FILES_PATH + "301.sjs", true);
await checkBlockedPage(SUPPORT_FILES_PATH + "302.sjs", true);
await clearWebsiteFilter();
});
add_task(async function test_http_mixed_case() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: {
Block: ["*://mochi.test/*policy_websitefilter_*"],
Exceptions: ["*://mochi.test/*_websitefilter_exception*"],
},
},
});
await checkBlockedPage(SUPPORT_FILES_PATH + BLOCKED_PAGE.toUpperCase(), true);
await checkBlockedPage(
SUPPORT_FILES_PATH + EXCEPTION_PAGE.toUpperCase(),
false
);
await clearWebsiteFilter();
});
add_task(async function test_file() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: {
Block: ["file:///*"],
},
},
});
await checkBlockedPage("file:///this_should_be_blocked", true);
await clearWebsiteFilter();
});
add_task(async function test_savelink() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: {
Block: ["*://mochi.test/*policy_websitefilter_block*"],
},
},
});
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
SUPPORT_FILES_PATH + SAVELINKAS_PAGE
);
let contextMenu = document.getElementById("contentAreaContextMenu");
let promiseContextMenuOpen = BrowserTestUtils.waitForEvent(
contextMenu,
"popupshown"
);
await BrowserTestUtils.synthesizeMouse(
"#savelink_blocked",
0,
0,
{
type: "contextmenu",
button: 2,
centered: true,
},
gBrowser.selectedBrowser
);
await promiseContextMenuOpen;
let saveLink = document.getElementById("context-savelink");
is(saveLink.disabled, true, "Save Link As should be disabled");
let promiseContextMenuHidden = BrowserTestUtils.waitForEvent(
contextMenu,
"popuphidden"
);
contextMenu.hidePopup();
await promiseContextMenuHidden;
promiseContextMenuOpen = BrowserTestUtils.waitForEvent(
contextMenu,
"popupshown"
);
await BrowserTestUtils.synthesizeMouse(
"#savelink_notblocked",
0,
0,
{
type: "contextmenu",
button: 2,
centered: true,
},
gBrowser.selectedBrowser
);
await promiseContextMenuOpen;
saveLink = document.getElementById("context-savelink");
is(saveLink.disabled, false, "Save Link As should not be disabled");
promiseContextMenuHidden = BrowserTestUtils.waitForEvent(
contextMenu,
"popuphidden"
);
contextMenu.hidePopup();
await promiseContextMenuHidden;
BrowserTestUtils.removeTab(tab);
await clearWebsiteFilter();
});
add_task(async function test_http_json_policy() {
await setupPolicyEngineWithJson({
policies: {
WebsiteFilter: `{
"Block": ["*://mochi.test/*policy_websitefilter_*"],
"Exceptions": ["*://mochi.test/*_websitefilter_exception*"]
}`,
},
});
await checkBlockedPage(SUPPORT_FILES_PATH + BLOCKED_PAGE, true);
await checkBlockedPage(
"view-source:" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(
"about:reader?url=" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(
"about:READER?url=" + SUPPORT_FILES_PATH + BLOCKED_PAGE,
true
);
await checkBlockedPage(SUPPORT_FILES_PATH + EXCEPTION_PAGE, false);
await checkBlockedPage(SUPPORT_FILES_PATH + "301.sjs", true);
await checkBlockedPage(SUPPORT_FILES_PATH + "302.sjs", true);
await clearWebsiteFilter();
});