summaryrefslogtreecommitdiffstats
path: root/browser/components/safebrowsing/content/test/browser_whitelisted.js
blob: 92c42a5b520a62f0341c0b1ffd56cdfa3470cd5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* Ensure that hostnames in the whitelisted pref are not blocked. */

const PREF_WHITELISTED_HOSTNAMES = "urlclassifier.skipHostnames";
const TEST_PAGE = "http://www.itisatrap.org/firefox/its-an-attack.html";
var tabbrowser = null;

registerCleanupFunction(function () {
  tabbrowser = null;
  Services.prefs.clearUserPref(PREF_WHITELISTED_HOSTNAMES);
  while (gBrowser.tabs.length > 1) {
    gBrowser.removeCurrentTab();
  }
});

function testBlockedPage(window) {
  info("Non-whitelisted pages must be blocked");
  ok(true, "about:blocked was shown");
}

function testWhitelistedPage(window) {
  info("Whitelisted pages must be skipped");
  var getmeout_button = window.document.getElementById("getMeOutButton");
  var ignorewarning_button = window.document.getElementById(
    "ignoreWarningButton"
  );
  ok(!getmeout_button, "GetMeOut button not present");
  ok(!ignorewarning_button, "IgnoreWarning button not present");
}

add_task(async function testNormalBrowsing() {
  tabbrowser = gBrowser;
  let tab = (tabbrowser.selectedTab = BrowserTestUtils.addTab(tabbrowser));

  info("Load a test page that's whitelisted");
  Services.prefs.setCharPref(
    PREF_WHITELISTED_HOSTNAMES,
    "example.com,www.ItIsaTrap.org,example.net"
  );
  await promiseTabLoadEvent(tab, TEST_PAGE, "load");
  testWhitelistedPage(tab.ownerGlobal);

  info("Load a test page that's no longer whitelisted");
  Services.prefs.setCharPref(PREF_WHITELISTED_HOSTNAMES, "");
  await promiseTabLoadEvent(tab, TEST_PAGE, "AboutBlockedLoaded");
  testBlockedPage(tab.ownerGlobal);
});