12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Run before window.onload to make sure the specs have access to describe()
- // and other mocha methods. All feels very hacky though :-/
- this.mocha.setup('bdd');
-
- function runTests() {
- var runner = this.mocha.run();
-
- var failedTests = [];
-
- runner.on('end', function(){
- window.mochaResults = runner.stats;
- window.mochaResults.reports = failedTests;
- });
-
- function flattenTitles(test) {
- var titles = [];
-
- while (test.parent.title) {
- titles.push(test.parent.title);
- test = test.parent;
- }
-
- return titles.reverse();
- }
-
- function logFailure(test, err) {
- failedTests.push({
- name: test.title,
- result: false,
- message: err.message,
- stack: err.stack,
- titles: flattenTitles(test)
- });
- }
-
- runner.on('fail', logFailure);
- }
-
- if (!Array.prototype.forEach) {
- Array.prototype.forEach = function(callback, thisArg) {
- if (typeof(callback) !== "function") {
- throw new TypeError(callback + " is not a function!");
- }
- var len = this.length;
- for (var i = 0; i < len; i++) {
- callback.call(thisArg, this[i], i, this);
- }
- };
- }
-
- var require = this.require;
- if (require) {
-
- requirejs.config({
- paths: {
- localforage: '/dist/localforage'
- }
- });
- require(['localforage'], function(localforage) {
- window.localforage = localforage;
-
- require([
- '/test/test.api.js',
- '/test/test.config.js',
- '/test/test.datatypes.js',
- '/test/test.drivers.js',
- '/test/test.iframes.js',
- '/test/test.webworkers.js'
- ], runTests);
- });
- } else if (this.addEventListener) {
- this.addEventListener('load', runTests);
- } else if (this.attachEvent) {
- this.attachEvent('onload', runTests);
- }
|