Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jio-main
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
Hardik Juneja
jio-main
Commits
016942d9
Commit
016942d9
authored
Jun 01, 2013
by
Tristan Cavelier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
run-qunit.js passes jslint + modify default timeout to 10 seconds
Because 4 times over 5 the script fails on timeout.
parent
e3b5e700
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
63 deletions
+67
-63
test/run-qunit.js
test/run-qunit.js
+67
-63
No files found.
test/run-qunit.js
View file @
016942d9
/*jslint indent: 2, maxlen: 80 */
/*global require: true, phantom: true, document: true */
"
use strict
"
;
var
system
=
require
(
'
system
'
);
var
system
=
require
(
'
system
'
);
/**
/**
* Wait until the test condition is true or a timeout occurs. Useful for waiting
* 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.
* on a server response or for a ui change (fadeIn, etc.) to occur.
*
*
* @param testFx javascript condition that evaluates to a boolean,
* @method waitFor
* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
* @param {Function} testFx Condition that evaluates to a boolean
* as a callback function.
* @param {Function} onReady What to do when testFx condition is fulfilled
* @param onReady what to do when testFx condition is fulfilled,
* @param {Number} time_out_millis The max amount of time to wait.
* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
* If not specified, 10 sec is used.
* 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
)
{
function
waitFor
(
testFx
,
onReady
,
time_out_millis
)
{
var
maxtimeOutMillis
=
timeOutMillis
?
timeOutMillis
:
3001
,
//< Default Max Timout is 3s
var
maxtime_out_millis
,
start
,
condition
,
interval
;
start
=
new
Date
().
getTime
(),
maxtime_out_millis
=
time_out_millis
||
10001
;
condition
=
false
,
start
=
new
Date
().
getTime
();
interval
=
setInterval
(
function
()
{
condition
=
false
;
if
(
(
new
Date
().
getTime
()
-
start
<
maxtimeOutMillis
)
&&
!
condition
)
{
interval
=
setInterval
(
function
()
{
// If not time-out yet and condition not yet fulfilled
if
((
new
Date
().
getTime
()
-
start
<
maxtime_out_millis
)
&&
!
condition
)
{
condition
=
(
typeof
(
testFx
)
===
"
string
"
?
eval
(
testFx
)
:
testFx
());
//< defensive code
// If not time-out yet and condition not yet fulfilled
}
else
{
condition
=
testFx
();
if
(
!
condition
)
{
}
else
{
// If condition still not fulfilled (timeout but condition is 'false')
if
(
!
condition
)
{
console
.
log
(
"
'waitFor()' timeout
"
);
// If condition still not fulfilled (timeout but condition is 'false')
phantom
.
exit
(
1
);
console
.
log
(
"
'waitFor()' timeout
"
);
}
else
{
phantom
.
exit
(
1
);
// Condition fulfilled (timeout and/or condition is 'true')
}
else
{
console
.
log
(
"
'waitFor()' finished in
"
+
(
new
Date
().
getTime
()
-
start
)
+
"
ms.
"
);
// Condition fulfilled (timeout and/or condition is 'true')
typeof
(
onReady
)
===
"
string
"
?
eval
(
onReady
)
:
onReady
();
//< Do what it's supposed to do once the condition is fulfilled
console
.
log
(
"
'waitFor()' finished in
"
+
clearInterval
(
interval
);
//< Stop this interval
(
new
Date
().
getTime
()
-
start
)
+
"
ms.
"
);
}
onReady
();
}
clearInterval
(
interval
);
//< Stop this interval
},
100
);
//< repeat check every 250ms
}
};
}
},
100
);
//< repeat check every 100ms
}
if
(
system
.
args
.
length
!==
2
)
{
if
(
system
.
args
.
length
!==
2
)
{
console
.
log
(
'
Usage: run-qunit.js URL
'
);
console
.
log
(
'
Usage: run-qunit.js URL
'
);
phantom
.
exit
(
1
);
phantom
.
exit
(
1
);
}
}
var
page
=
require
(
'
webpage
'
).
create
();
var
page
=
require
(
'
webpage
'
).
create
();
// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this")
// Route "console.log()" calls from within the Page context to the main Phantom
page
.
onConsoleMessage
=
function
(
msg
)
{
// context (i.e. current "this")
console
.
log
(
msg
);
page
.
onConsoleMessage
=
function
(
msg
)
{
console
.
log
(
msg
);
};
};
page
.
open
(
system
.
args
[
1
],
function
(
status
){
page
.
open
(
system
.
args
[
1
],
function
(
status
)
{
if
(
status
!==
"
success
"
)
{
if
(
status
!==
"
success
"
)
{
console
.
log
(
"
Unable to access network
"
);
console
.
log
(
"
Unable to access network
"
);
phantom
.
exit
(
1
);
phantom
.
exit
(
1
);
}
else
{
}
waitFor
(
function
(){
waitFor
(
function
()
{
return
page
.
evaluate
(
function
(){
return
page
.
evaluate
(
function
()
{
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
if
(
el
&&
el
.
innerText
.
match
(
'
completed
'
))
{
if
(
el
&&
el
.
innerText
.
match
(
'
completed
'
))
{
return
true
;
return
true
;
}
}
return
false
;
return
false
;
});
});
},
function
(){
},
function
()
{
var
failedNum
=
page
.
evaluate
(
function
(){
var
failedNum
=
page
.
evaluate
(
function
()
{
console
.
log
(
"
========================================================
"
)
console
.
log
(
"
========================================================
"
);
console
.
log
(
document
.
documentElement
.
innerHTML
);
console
.
log
(
document
.
documentElement
.
innerHTML
);
console
.
log
(
"
========================================================
"
)
console
.
log
(
"
========================================================
"
);
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
var
el
=
document
.
getElementById
(
'
qunit-testresult
'
);
console
.
log
(
el
.
innerText
);
console
.
log
(
el
.
innerText
);
try
{
try
{
return
el
.
getElementsByClassName
(
'
failed
'
)[
0
].
innerHTML
;
return
el
.
getElementsByClassName
(
'
failed
'
)[
0
].
innerHTML
;
}
catch
(
e
)
{
}
}
catch
(
e
)
{
}
return
10000
;
return
10000
;
});
});
phantom
.
exit
((
parseInt
(
failedNum
,
10
)
>
0
)
?
1
:
0
);
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