toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:30da731d38ca
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test the URI Classifier</title>
5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
7 </head>
8
9 <p id="display"></p>
10 <div id="content" style="display: none">
11 </div>
12 <pre id="test">
13
14 <script class="testbody" type="text/javascript">
15
16 var Cc = SpecialPowers.Cc;
17 var Ci = SpecialPowers.Ci;
18
19 // Add some URLs to the malware database.
20 var testData = "example.com/tests/toolkit/components/url-classifier/tests/mochitest/evilWorker.js";
21 var testUpdate =
22 "n:1000\ni:test-malware-simple\nad:550\n" +
23 "a:550:32:" + testData.length + "\n" +
24 testData;
25
26 var dbService = Cc["@mozilla.org/url-classifier/dbservice;1"]
27 .getService(Ci.nsIUrlClassifierDBService);
28
29 function doUpdate(update) {
30 var listener = {
31 QueryInterface: function(iid)
32 {
33 if (iid.equals(Ci.nsISupports) ||
34 iid.equals(Ci.nsIUrlClassifierUpdateObserver))
35 return this;
36
37 throw Cr.NS_ERROR_NO_INTERFACE;
38 },
39 updateUrlRequested: function(url) { },
40 streamFinished: function(status) { },
41 updateError: function(errorCode) {
42 ok(false, "Couldn't update classifier.");
43 // Abort test.
44 SimpleTest.finish();
45 },
46 updateSuccess: function(requestedTimeout) {
47 SpecialPowers.pushPrefEnv(
48 {"set" : [["browser.safebrowsing.malware.enabled", true]]},
49 function loadTestFrame() {
50 document.getElementById("testFrame").src =
51 "http://example.com/tests/toolkit/components/url-classifier/tests/mochitest/workerFrame.html";
52 }
53 );
54 }
55 };
56
57 dbService.beginUpdate(listener, "test-malware-simple", "");
58 dbService.beginStream("", "");
59 dbService.updateStream(update);
60 dbService.finishStream();
61 dbService.finishUpdate();
62 }
63
64 function onmessage(event)
65 {
66 var pieces = event.data.split(':');
67 if (pieces[0] == "finish") {
68 SimpleTest.finish();
69 return;
70 }
71
72 is(pieces[0], "success", pieces[1]);
73 }
74
75 SpecialPowers.pushPrefEnv(
76 {"set" : [["urlclassifier.malware_table", "test-malware-simple"],
77 ["urlclassifier.phish_table", "test-phish-simple"]]},
78 function() { doUpdate(testUpdate); });
79
80 window.addEventListener("message", onmessage, false);
81
82 SimpleTest.waitForExplicitFinish();
83
84 </script>
85
86 </pre>
87 <iframe id="testFrame" onload=""></iframe>
88 </body>
89 </html>

mercurial