diff -r 000000000000 -r 6474c204b198 dom/workers/test/test_csp.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/workers/test/test_csp.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,50 @@ +/** + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ +msg = null; +var errors = 5; + +onerror = function(event) { + ok(true, msg); + if (!--errors) SimpleTest.finish(); +} + +msg = "No Eval allowed"; +worker = new Worker("csp_worker.js"); +worker.postMessage(0); +worker.onmessage = function(event) { + ok(false, "Eval succeeded!"); +} + +msg = "No Eval allowed 2"; +worker = new Worker("csp_worker.js"); +worker.postMessage(4); +worker.onmessage = function(event) { + ok(false, "Eval succeeded!"); +} + +msg = "ImportScripts data:"; +worker = new Worker("csp_worker.js"); +worker.postMessage(-1); +worker.onmessage = function(event) { + ok(false, "Eval succeeded!"); +} + +msg = "ImportScripts javascript:"; +worker = new Worker("csp_worker.js"); +worker.postMessage(-2); +worker.onmessage = function(event) { + ok(false, "Eval succeeded!"); +} + +msg = "Loading data:something"; +try { + worker = new Worker("data:application/javascript;base64,ZHVtcCgnaGVsbG8gd29ybGQnKQo="); + ok(false, "Should have thrown!"); +} catch (e) { + ok(true, "Threw as expected."); +} + +worker = new Worker("javascript:dump(123);"); +SimpleTest.waitForExplicitFinish();