| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <!-- allow fancy checkmarks to show up --> | |
| <meta charset="UTF-8"> | |
| <!-- complain about uncaught errors --> | |
| <script type="text/javascript"> | |
| window.onerror = function() { | |
| document.documentElement.style.background = 'red'; | |
| }; | |
| </script> | |
| <!-- better living through jQuery --> | |
| <script type="text/javascript" src="support/jquery-1.5.2.js"></script> | |
| <!-- mocha test framework --> | |
| <script type="text/javascript" src="../node_modules/mocha/mocha.js"></script> | |
| <link rel="stylesheet" type="text/css" href="../node_modules/mocha/mocha.css" /> | |
| <!-- home-grown assertions --> | |
| <script src="support/assert.js" type="text/javascript"></script> | |
| <!-- configure mocha and chai --> | |
| <script type="text/javascript"> | |
| var post_xunit_to = Mocha.utils.parseQuery(location.search).post_xunit_to; | |
| mocha.setup({ | |
| ui: 'tdd', | |
| reporter: post_xunit_to ? 'xunit' : 'html' | |
| }); | |
| var xunit = ''; | |
| Mocha.process.stdout.write = function(line) { xunit += line; }; | |
| </script> | |
| <!-- include the library with the tests inlined --> | |
| <script id="mathquill" type="text/javascript" src="../build/mathquill.test.js" | |
| onerror="alert('couldn\'t find `build/mathquill.test.js`. Please run `make test` before opening this file.')"> | |
| </script> | |
| <!-- include MathQuill-basic --> | |
| <link rel="stylesheet" type="text/css" href="../build/mathquill.css" /> | |
| <script type="text/javascript" src="../build/mathquill-basic.js"></script> | |
| <script type="text/javascript"> | |
| MQBasic = MathQuill.noConflict().getInterface(MathQuill.getInterface.MAX); | |
| MQ = MathQuill.getInterface(MathQuill.getInterface.MAX); | |
| </script> | |
| </head> | |
| <body> | |
| <h1>Unit Tests</h1> | |
| <div id="mocha"></div> | |
| <div id="mock"></div> | |
| <script type="text/javascript"> | |
| teardown(function() { $('#mock').empty(); }); | |
| var runner = mocha.run(); | |
| if (post_xunit_to) { | |
| // the following is based on https://github.com/saucelabs-sample-scripts/JavaScript/blob/4946c5cf0ab7325dce5562881dba7c28e30989e5/reporting_mocha.js | |
| var failedTests = []; | |
| runner.on('fail', function(test, err) { | |
| function flattenTitles(test) { | |
| var titles = []; | |
| while (test.parent.title) { | |
| titles.push(test.parent.title); | |
| test = test.parent; | |
| } | |
| return titles.reverse(); | |
| } | |
| failedTests.push({name: test.title, result: false, message: err.message, stack: err.stack, titles: flattenTitles(test) }); | |
| }); | |
| runner.on('end', function() { | |
| setTimeout(function() { | |
| $.post(post_xunit_to, xunit).complete(function() { | |
| window.mochaResults = runner.stats; | |
| window.mochaResults.reports = failedTests; | |
| }); | |
| }); | |
| }); | |
| } | |
| </script> | |
| </body> | |
| </html> |