Skip to content

Commit 243d445

Browse files
committed
Update the PhantomJS test suite
1 parent aeec7eb commit 243d445

File tree

3 files changed

+91
-55
lines changed

3 files changed

+91
-55
lines changed

script/test

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ while ! lsof -i :$port >/dev/null; do
1111
sleep .05
1212
done
1313

14-
phantomjs ./test/run-qunit.coffee "http://localhost:$port/"
14+
phantomjs ./test/run-qunit.js \
15+
"http://localhost:$port/?jquery=3.2" \
16+
"http://localhost:$port/?jquery=2.2" \
17+
"http://localhost:$port/?jquery=1.12"

test/run-qunit.coffee

Lines changed: 0 additions & 54 deletions
This file was deleted.

test/run-qunit.js

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
var fs = require('fs')
2+
var suites = require('system').args.slice(1)
3+
4+
function print(s) {
5+
fs.write('/dev/stdout', s, 'w')
6+
}
7+
8+
var page = require('webpage').create()
9+
page.onConsoleMessage = function(msg) {
10+
console.log(msg)
11+
}
12+
page.onError = function(msg) {
13+
console.error('ERROR: ' + msg)
14+
}
15+
16+
var timeoutId = null
17+
function deferTimeout() {
18+
if (timeoutId) clearTimeout(timeoutId)
19+
timeoutId = setTimeout(function() {
20+
console.error('Timeout')
21+
phantom.exit(1)
22+
}, 3000)
23+
}
24+
25+
var endresult = 0
26+
27+
function runSuite() {
28+
var suite = suites.shift()
29+
if (!suite) {
30+
phantom.exit(endresult)
31+
return
32+
}
33+
34+
page.open(suite, function() {
35+
deferTimeout()
36+
37+
var interval = setInterval(function() {
38+
var tests = page.evaluate(function() {
39+
var results = []
40+
var els = document.getElementById('qunit-tests').children
41+
42+
for (var i = 0; i < els.length; i++) {
43+
var test = els[i]
44+
if (test.className !== 'running' && !test.recorded) {
45+
test.recorded = true
46+
if (test.className === 'pass') results.push('.')
47+
else if (test.className === 'fail') results.push('F')
48+
}
49+
}
50+
51+
return results
52+
})
53+
54+
for (var i = 0; i < tests.length; i++) {
55+
deferTimeout()
56+
print(tests[i])
57+
}
58+
59+
var result = page.evaluate(function() {
60+
var testresult = document.getElementById('qunit-testresult')
61+
var els = document.getElementById('qunit-tests').children
62+
63+
if (testresult.innerText.match(/completed/)) {
64+
console.log('')
65+
66+
for (var i = 0; i < els.length; i++) {
67+
var test = els[i]
68+
if (test.className === 'fail') {
69+
console.error(test.innerText)
70+
}
71+
}
72+
73+
console.log(testresult.innerText)
74+
return parseInt(testresult.getElementsByClassName('failed')[0].innerText)
75+
}
76+
})
77+
78+
if (result != null) {
79+
endresult = result
80+
clearInterval(interval)
81+
runSuite()
82+
}
83+
}, 100)
84+
})
85+
}
86+
87+
runSuite()

0 commit comments

Comments
 (0)