diff options
author | Einar Egilsson <einar@einaregilsson.com> | 2015-09-02 12:14:24 +0000 |
---|---|---|
committer | Einar Egilsson <einar@einaregilsson.com> | 2015-09-02 12:14:24 +0000 |
commit | a7506a34544f4df3ba65a854c81fadcca2eb303f (patch) | |
tree | 7421ff72bcfabfac94bb5ddd48e33c73af75a7e2 /unittest/run.html | |
parent | 4d9993f230c59f8a97767599b1d81eeeac3d35ec (diff) |
CRUD stuff almost ready
Diffstat (limited to 'unittest/run.html')
-rw-r--r-- | unittest/run.html | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/unittest/run.html b/unittest/run.html new file mode 100644 index 0000000..1c056d5 --- /dev/null +++ b/unittest/run.html @@ -0,0 +1,98 @@ +<!-- $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:10px 0px; } + table { margin:10px 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; } + button { margin:20px auto; } + </style> + <script type="text/javascript"> + + //Global variables + Components.utils.import("chrome://redirector/content/js/redirect.js"); + Components.utils.import("chrome://redirector/content/js/redirector.js"); + var redirector = Redirector; + + 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.getElementById('tests').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() { + //quick and dirty cleanup + document.getElementById('tests').innerHTML = ''; + + var sorted = []; + for (var name in tests) { + sorted.push(name); + } + + sorted.sort(); + for each(var name in sorted) { + 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 dot = document.getElementById(testcaseName + '_' + i); + var result = testcase.run(testcase.tests[i]); + if (result && result.passed) { + dot.style.backgroundColor = '#17f816'; + } else { + dot.style.backgroundColor = '#ff0000'; + if (result && result.message) { + dot.parentNode.nextSibling.innerHTML += '<br/><span style="color:red;">' + result.message + '</span>'; + } + } + } catch(e) { + dot.style.backgroundColor = '#ff0000'; + dot.parentNode.nextSibling.innerHTML += '<br/><span style="color:red;">' + e + '</span>'; + ; + } + } + } + } + + </script> + <script type="text/javascript" src="testcases.js"></script> + </head> + <body onload="setup();"> + <h1>Redirector Unit Tests</h1> + <button onclick="runTests();">Run tests</button> + <button onclick="setup();">Reload tests</button> + <div id="tests"> + </div> + </body> +</html>
\ No newline at end of file |