| |
| // generates tests that work in a browser |
| |
| // XXX |
| // have it run through valid and invalid properly |
| |
| var pth = require("path") |
| , fs = require("fs") |
| , dir = function (path) { |
| return pth.join(__dirname, "..", path); |
| } |
| , allFromDir = function (dir, ext, asJSON) { |
| return fs.readdirSync(dir) |
| .filter(function (it) { return ext.test(it); }) |
| .map(function (it) { |
| var cnt = fs.readFileSync(pth.join(dir, it), "utf8"); |
| return asJSON ? JSON.parse(cnt) : cnt; |
| }); |
| } |
| , data = { |
| valid: { |
| json: allFromDir(dir("syntax/json"), /\.json$/, true) |
| , idl: allFromDir(dir("syntax/idl"), /\.w?idl$/, false) |
| } |
| , invalid:{ |
| json: allFromDir(dir("invalid/json"), /\.json$/, true) |
| , idl: allFromDir(dir("invalid/idl"), /\.w?idl$/, false) |
| } |
| } |
| , html = [ |
| "<!DOCTYPE html>" |
| , "<html>" |
| , " <head><meta charset='utf-8''><link rel='stylesheet' href='../../node_modules/mocha/mocha.css'>" |
| , " <title>WebIDL2 Browser Tests</title>" |
| , " <script>var data = " + JSON.stringify(data) + "</script>" |
| , " </head>" |
| , " <body><div id='mocha'></div>" |
| , " <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>" |
| , " <script src='../../node_modules/expect.js/expect.js'></script>" |
| , " <script src='../../node_modules/mocha/mocha.js'></script>" |
| , " <script src='../../node_modules/jsondiffpatch/jsondiffpatch.min.js'></script>" |
| , " <script src='../../lib/webidl2.js'></script>" |
| , " <script>mocha.setup('bdd');</script>" |
| , " <script src='run-tests.js'></script>" |
| , " <script>mocha.run();</script>" |
| , " </body>" |
| , "</html>" |
| ].join("\n") |
| ; |
| |
| fs.writeFileSync("browser-tests.html", html, "utf8"); |