|
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> |