Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /*
2 * worker_helper.js
3 * bug 764234 tests
4 */
5 function runTestInWorker(files) {
6 function workerRun() {
7 var tests = [];
8 var asserts;
9 test = function(func, msg) {
10 asserts = [];
11 tests.push({asserts: asserts, msg: msg});
12 }
13 assert_equals = function(result, expected, msg) {
14 asserts.push(["assert_equals", result, expected, msg]);
15 };
16 assert_true = function(condition, msg) {
17 asserts.push(["assert_true", condition, msg]);
18 };
19 assert_unreached = function(condition, msg) {
20 asserts.push(["assert_unreached", condition, msg]);
21 };
22 onmessage = function(event) {
23 importScripts.apply(self, event.data);
24 runTest();
25 postMessage(tests);
26 };
27 }
29 var url = URL.createObjectURL(new Blob([
30 runTest.toString(), "\n\n",
31 "(", workerRun.toString(), ")();"
32 ]));
33 var worker = new Worker(url);
34 var base = location.toString().replace(/\/[^\/]*$/,"/");
35 worker.postMessage(files.map(function(f) { return base + f; }));
36 worker.onmessage = function(event) {
37 URL.revokeObjectURL(url);
38 event.data.forEach(function(t) {
39 test(function() {
40 t.asserts.forEach(function(a) {
41 func = a.shift();
42 self[func].apply(self, a);
43 });
44 }, "worker " + t.msg);
45 });
46 done();
47 };
48 }