summaryrefslogtreecommitdiffstats
path: root/toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html
blob: 1f54d45b05a6d35d9368370b7fd78ce7069ede34 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!DOCTYPE HTML>
<html>
<head>
  <title>Test the URI Classifier</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="text/javascript" src="classifierHelper.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>

<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">

<script class="testbody" type="text/javascript">

// Add some URLs to the malware database.
var testData = [
  { url: "example.com/tests/toolkit/components/url-classifier/tests/mochitest/evilWorker.js",
    db: "test-malware-simple"
  },
  { url: "example.com/tests/toolkit/components/url-classifier/tests/mochitest/unwantedWorker.js",
    db: "test-unwanted-simple"
  }
];

function loadTestFrame() {
  document.getElementById("testFrame").src =
    "http://example.com/tests/toolkit/components/url-classifier/tests/mochitest/workerFrame.html";
}

function onmessage(event)
{
  var pieces = event.data.split(':');
  if (pieces[0] == "finish") {
    SimpleTest.finish();
    return;
  }

  is(pieces[0], "success", pieces[1]);
}

function updateSuccess() {
  SpecialPowers.pushPrefEnv(
    {"set" : [["browser.safebrowsing.malware.enabled", true]]},
    loadTestFrame);
}

function updateError(errorCode) {
  ok(false, "Couldn't update classifier. Error code: " + errorCode);
  // Abort test.
  SimpleTest.finish();
};

SpecialPowers.pushPrefEnv(
  {"set" : [["urlclassifier.malwareTable", "test-malware-simple,test-unwanted-simple"],
            ["urlclassifier.phishTable", "test-phish-simple"]]},
  function() {
    classifierHelper.waitForInit()
      .then(() => classifierHelper.addUrlToDB(testData))
      .then(updateSuccess)
      .catch(err => {
        updateError(err);
      });
  });

window.addEventListener("message", onmessage, false);

SimpleTest.waitForExplicitFinish();

</script>

</pre>
<iframe id="testFrame" onload=""></iframe>
</body>
</html>