1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/url-classifier/tests/mochitest/test_classifier_worker.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,89 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<head> 1.7 + <title>Test the URI Classifier</title> 1.8 + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.9 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 1.10 +</head> 1.11 + 1.12 +<p id="display"></p> 1.13 +<div id="content" style="display: none"> 1.14 +</div> 1.15 +<pre id="test"> 1.16 + 1.17 +<script class="testbody" type="text/javascript"> 1.18 + 1.19 +var Cc = SpecialPowers.Cc; 1.20 +var Ci = SpecialPowers.Ci; 1.21 + 1.22 +// Add some URLs to the malware database. 1.23 +var testData = "example.com/tests/toolkit/components/url-classifier/tests/mochitest/evilWorker.js"; 1.24 +var testUpdate = 1.25 + "n:1000\ni:test-malware-simple\nad:550\n" + 1.26 + "a:550:32:" + testData.length + "\n" + 1.27 + testData; 1.28 + 1.29 +var dbService = Cc["@mozilla.org/url-classifier/dbservice;1"] 1.30 + .getService(Ci.nsIUrlClassifierDBService); 1.31 + 1.32 +function doUpdate(update) { 1.33 + var listener = { 1.34 + QueryInterface: function(iid) 1.35 + { 1.36 + if (iid.equals(Ci.nsISupports) || 1.37 + iid.equals(Ci.nsIUrlClassifierUpdateObserver)) 1.38 + return this; 1.39 + 1.40 + throw Cr.NS_ERROR_NO_INTERFACE; 1.41 + }, 1.42 + updateUrlRequested: function(url) { }, 1.43 + streamFinished: function(status) { }, 1.44 + updateError: function(errorCode) { 1.45 + ok(false, "Couldn't update classifier."); 1.46 + // Abort test. 1.47 + SimpleTest.finish(); 1.48 + }, 1.49 + updateSuccess: function(requestedTimeout) { 1.50 + SpecialPowers.pushPrefEnv( 1.51 + {"set" : [["browser.safebrowsing.malware.enabled", true]]}, 1.52 + function loadTestFrame() { 1.53 + document.getElementById("testFrame").src = 1.54 + "http://example.com/tests/toolkit/components/url-classifier/tests/mochitest/workerFrame.html"; 1.55 + } 1.56 + ); 1.57 + } 1.58 + }; 1.59 + 1.60 + dbService.beginUpdate(listener, "test-malware-simple", ""); 1.61 + dbService.beginStream("", ""); 1.62 + dbService.updateStream(update); 1.63 + dbService.finishStream(); 1.64 + dbService.finishUpdate(); 1.65 +} 1.66 + 1.67 +function onmessage(event) 1.68 +{ 1.69 + var pieces = event.data.split(':'); 1.70 + if (pieces[0] == "finish") { 1.71 + SimpleTest.finish(); 1.72 + return; 1.73 + } 1.74 + 1.75 + is(pieces[0], "success", pieces[1]); 1.76 +} 1.77 + 1.78 +SpecialPowers.pushPrefEnv( 1.79 + {"set" : [["urlclassifier.malware_table", "test-malware-simple"], 1.80 + ["urlclassifier.phish_table", "test-phish-simple"]]}, 1.81 + function() { doUpdate(testUpdate); }); 1.82 + 1.83 +window.addEventListener("message", onmessage, false); 1.84 + 1.85 +SimpleTest.waitForExplicitFinish(); 1.86 + 1.87 +</script> 1.88 + 1.89 +</pre> 1.90 +<iframe id="testFrame" onload=""></iframe> 1.91 +</body> 1.92 +</html>