summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resources/webidl2/test/web/make-web-tests.js
blob: 34c5a5c2b46d25d04372731bdcac527487974f85 (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

// 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");