summaryrefslogtreecommitdiff
path: root/help3/xhpeditor/cm/test/run.js
diff options
context:
space:
mode:
Diffstat (limited to 'help3/xhpeditor/cm/test/run.js')
-rwxr-xr-xhelp3/xhpeditor/cm/test/run.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/help3/xhpeditor/cm/test/run.js b/help3/xhpeditor/cm/test/run.js
new file mode 100755
index 00000000..7e4b3897
--- /dev/null
+++ b/help3/xhpeditor/cm/test/run.js
@@ -0,0 +1,41 @@
+#!/usr/bin/env node
+
+var ok = require("./lint").ok;
+
+var files = new (require('node-static').Server)();
+
+var server = require('http').createServer(function (req, res) {
+ req.addListener('end', function () {
+ files.serve(req, res, function (err/*, result */) {
+ if (err) {
+ console.error(err);
+ process.exit(1);
+ }
+ });
+ }).resume();
+}).addListener('error', function (err) {
+ throw err;
+}).listen(3000,(async () => {
+ const puppeteer = require('puppeteer');
+ const browser = await puppeteer.launch({args: ["--no-sandbox", "--disable-setuid-sandbox"]})
+ const page = await browser.newPage()
+ page.on('console', msg => console.log("console:", msg.text()))
+ page.on('dialog', async dialog => {
+ console.log(dialog.message())
+ await dialog.dismiss()
+ })
+ page.evaluateOnNewDocument(() => window.automatedTests = true)
+ await page.goto('http://localhost:3000/test/index.html#' + (process.argv[2] || ""))
+ while(1) {
+ if (await page.evaluate(() => window.done)) break
+ await sleep(200)
+ }
+ let [failed, errors] = await page.evaluate(() => [window.failed, window.errored])
+ for (let error of errors) console.log(error)
+ console.log(await page.evaluate(() => document.getElementById('output').innerText + "\n" +
+ document.getElementById('status').innerText))
+ process.exit(failed > 0 || errors.length ? 1 : 0)
+ await browser.close()
+})())
+
+function sleep(n) { return new Promise(acc => setTimeout(acc, n)) }