blob: 09895624dde624260a396f5a5cc7654bb3d3e9c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<!-- $Id$ -->
<html>
<head>
<title>Redirector Unit Tests</title>
<style type="text/css">
body { font-family: Verdana, Arial; color:black; background-color:white; font-size:0.8em; width:800px; margin:auto; text-align:center;}
a { color:blue; }
h1 { text-align:center; margin:20px 0px; }
table { margin:auto; border:solid 1px black; width:700px; border-collapse:collapse;}
td { border:solid 1px black; padding:3px; }
td.result { width:20px; height:20px; padding:0;}
td.result div { width:70%; height:70%; margin:auto; }
</style>
<script type="text/javascript">
//Global variables
var subscriptLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
var redirector = Components.classes["@einaregilsson.com/redirector;1"].getService(Components.interfaces.nsISupports).wrappedJSObject;
function setupTest(name, testcase) {
var table = document.createElement('table');
var row = document.createElement('tr');
var cell = document.createElement('th');
var testdata;
cell.setAttribute('colspan', 2);
row.appendChild(cell);
table.appendChild(row);
cell.innerHTML = name;
document.getElementsByTagName('body')[0].appendChild(table);
for (var i = 0; i < testcase.tests.length; i++) {
var testdata = testcase.tests[i];
row = document.createElement('tr');
cell = document.createElement('td');
cell.setAttribute('class', 'result');
var dot = document.createElement('div');
dot.setAttribute('id', name + '_' + i);
cell.appendChild(dot);
row.appendChild(cell);
cell = document.createElement('td');
cell.innerHTML = testcase.describe(testdata);
row.appendChild(cell);
table.appendChild(row);
}
}
function setup() {
var tables = document.getElementsByTagName('table');
for (var i = 0; i < tables.length; i++) {
tables[i].parentNode.removeChild(tables[i]);
}
subscriptLoader.loadSubScript('chrome://redirector/content/unittests.js');
redirector.reload();
for (var name in tests) {
setupTest(name, tests[name]);
}
}
function runTests() {
for (var testcaseName in tests) {
var testcase = tests[testcaseName];
for (var i = 0; i < testcase.tests.length; i++) {
try {
var result = testcase.run(testcase.tests[i]);
if (result) {
document.getElementById(testcaseName + '_' + i).style.backgroundColor = '#17f816';
} else {
document.getElementById(testcaseName + '_' + i).style.backgroundColor = '#ff0000';
}
} catch(e) {
document.getElementById(testcaseName + '_' + i).style.backgroundColor = '#ff0000';
}
}
}
}
</script>
</head>
<body onload="setup();">
<h1>Redirector Unit Tests</h1>
<button onclick="runTests();">Run tests</button>
<button onclick="setup();">Reload tests</button>
</body>
</html>
|