Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
renderjs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Vincent Bechu
renderjs
Commits
377b9ebe
Commit
377b9ebe
authored
Jun 25, 2013
by
Romain Courteaud
🐸
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Run test with phantomjs
parent
b3c46357
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
0 deletions
+94
-0
Makefile
Makefile
+8
-0
config.mk
config.mk
+1
-0
test/run-qunit.js
test/run-qunit.js
+85
-0
No files found.
Makefile
View file @
377b9ebe
...
...
@@ -15,6 +15,14 @@ $(RENDERJS_MIN): $(RENDERJS)
lint
:
$(RENDERJS)
$(LINT_CMD)
"
$<
"
${TESTDIR}/shared/test/%.html.ok
:
${TESTDIR}/shared/test/%.html ${TESTDIR}/shared/test/qunit/%.js ${TESTDIR}/shared/js/%.js
test/index.html.ok
:
test/index.html
$(PHANTOMJS_CMD)
./test/run-qunit.js
$<
@
sleep
1
touch
$@
test
:
test/index.html.ok
doc
:
$(YUIDOC_CMD)
.
clean
:
...
...
config.mk
View file @
377b9ebe
...
...
@@ -3,3 +3,4 @@ UGLIFY_CMD = $(shell which uglifyjs || echo node ~/node_modules/uglify-js/bin/ug
# npm install jslint
LINT_CMD
=
$(
shell
which jslint
||
echo
node ~/node_modules/jslint/bin/jslint.js
)
--terse
YUIDOC_CMD
=
$(
shell
which yuidoc
)
PHANTOMJS_CMD
=
xvfb-run phantomjs
test/run-qunit.js
0 → 100644
View file @
377b9ebe
/**
* Wait until the test condition is true or a timeout occurs. Useful for waiting
* on a server response or for a ui change (fadeIn, etc.) to occur.
*
* @param testFx javascript condition that evaluates to a boolean,
* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
* as a callback function.
* @param onReady what to do when testFx condition is fulfilled,
* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
* as a callback function.
* @param timeOutMillis the max amount of time to wait. If not specified, 3 sec is used.
*/
function
waitFor
(
testFx
,
onReady
,
timeOutMillis
)
{
var
maxtimeOutMillis
=
timeOutMillis
?
timeOutMillis
:
3001
,
//< Default Max Timout is 3s
start
=
new
Date
().
getTime
(),
condition
=
false
,
interval
=
setInterval
(
function
()
{
if
(
(
new
Date
().
getTime
()
-
start
<
maxtimeOutMillis
)
&&
!
condition
)
{
// If not time-out yet and condition not yet fulfilled
condition
=
(
typeof
(
testFx
)
===
"
string
"
?
eval
(
testFx
)
:
testFx
());
//< defensive code
}
else
{
if
(
!
condition
)
{
// If condition still not fulfilled (timeout but condition is 'false')
console
.
log
(
"
'waitFor()' timeout
"
);
phantom
.
exit
(
1
);
}
else
{
// Condition fulfilled (timeout and/or condition is 'true')
console
.
log
(
"
'waitFor()' finished in
"
+
(
new
Date
().
getTime
()
-
start
)
+
"
ms.
"
);
typeof
(
onReady
)
===
"
string
"
?
eval
(
onReady
)
:
onReady
();
//< Do what it's supposed to do once the condition is fulfilled
clearInterval
(
interval
);
//< Stop this interval
}
}
},
100
);
//< repeat check every 250ms
};
if
(
phantom
.
args
.
length
===
0
||
phantom
.
args
.
length
>
2
)
{
console
.
log
(
'
Usage: run-qunit.js URL
'
);
phantom
.
exit
(
1
);
}
var
page
=
new
WebPage
();
// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this")
page
.
onConsoleMessage
=
function
(
msg
)
{
console
.
log
(
msg
);
};
page
.
open
(
phantom
.
args
[
0
],
function
(
status
){
if
(
status
!==
"
success
"
)
{
console
.
log
(
"
Unable to access network
"
);
phantom
.
exit
(
1
);
}
else
{
waitFor
(
function
(){
return
page
.
evaluate
(
function
(){
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
if
(
el
&&
el
.
innerText
.
match
(
'
completed
'
))
{
return
true
;
}
return
false
;
});
},
function
(){
var
failedNum
=
page
.
evaluate
(
function
(){
var
tests
=
document
.
getElementById
(
"
qunit-tests
"
).
childNodes
;
console
.
log
(
"
\n
Test name (failed, passed, total)
\n
"
);
for
(
var
i
in
tests
){
var
text
=
tests
[
i
].
innerText
;
if
(
text
!==
undefined
){
if
(
/Rerun$/
.
test
(
text
))
text
=
text
.
substring
(
0
,
text
.
length
-
5
);
console
.
log
(
text
+
"
\n
"
);
}
}
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
console
.
log
(
el
.
innerText
);
try
{
return
el
.
getElementsByClassName
(
'
failed
'
)[
0
].
innerHTML
;
}
catch
(
e
)
{
}
return
10000
;
});
phantom
.
exit
((
parseInt
(
failedNum
,
10
)
>
0
)
?
1
:
0
);
});
}
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment