test to verify hanging on failed load of iframe
This commit is contained in:
parent
ea5334ec7e
commit
af73f349f8
28
Gruntfile.js
28
Gruntfile.js
@ -9,7 +9,22 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
grunt.initConfig({
|
||||
|
||||
connect: {
|
||||
return500: {
|
||||
options: {
|
||||
port: 9000,
|
||||
middleware: function(connect, options) {
|
||||
return [function(req, res, next){
|
||||
res.statusCode = 500;
|
||||
res.end();
|
||||
}];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js',
|
||||
@ -45,8 +60,16 @@ module.exports = function(grunt) {
|
||||
consolidate: true
|
||||
}
|
||||
}
|
||||
},
|
||||
selfTest: {
|
||||
options: {
|
||||
specs:["test/selfTest/*.js"],
|
||||
"--web-security": "no"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
nodeunit: {
|
||||
tasks: ['test/*_test.js']
|
||||
}
|
||||
@ -57,7 +80,8 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-nodeunit');
|
||||
grunt.loadNpmTasks('grunt-contrib-internal');
|
||||
grunt.loadNpmTasks('grunt-contrib-connect');
|
||||
|
||||
grunt.registerTask('test', ['jshint', 'jasmine', 'nodeunit']);
|
||||
grunt.registerTask('default', ['test', 'build-contrib']);
|
||||
grunt.registerTask('test', ['connect:return500', 'jasmine', 'nodeunit']);
|
||||
grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
|
||||
};
|
||||
|
@ -28,7 +28,7 @@
|
||||
"test": "grunt test"
|
||||
},
|
||||
"dependencies": {
|
||||
"grunt-lib-phantomjs": "~0.2.0",
|
||||
"grunt-lib-phantomjs": "git://github.com/HBehrens/grunt-lib-phantomjs.git#20f675c331893ee4b1a328ae7a1ce82d75099e50",
|
||||
"rimraf": "~2.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
32
test/selfTest/TaskSpec.js
Normal file
32
test/selfTest/TaskSpec.js
Normal file
@ -0,0 +1,32 @@
|
||||
describe("Task", function() {
|
||||
|
||||
/*
|
||||
when running this test with `grunt jasmine:selfTest -d` you got this output
|
||||
|
||||
[D] ["phantomjs","onLoadFinished","success"]
|
||||
[D] ["phantomjs","onResourceRequested","http://httpbin.org/status/500"]
|
||||
[D] ["phantomjs","onResourceReceived","http://httpbin.org/status/500"]
|
||||
[D] ["phantomjs","onLoadFinished","fail"]
|
||||
[D] ["phantomjs","fail.load","_SpecRunner.html"]
|
||||
|
||||
phantomjs.page.onLoadFinished seems to be called for iframes, too.
|
||||
A failing onLoadFinished caused this grunt taks to hang.
|
||||
Now, after removing the event handler, this following test should work as expected
|
||||
*/
|
||||
it("can handle fail on iframe", function(){
|
||||
var waitedLongEnough;
|
||||
runs(function(){
|
||||
iframe = document.createElement("iframe");
|
||||
iframe.src = "http://localhost:9000";
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
setTimeout(function(){waitedLongEnough=true;}, 50);
|
||||
});
|
||||
waitsFor(function(){
|
||||
return waitedLongEnough;
|
||||
});
|
||||
runs(function(){
|
||||
expect(true).toBeTruthy("without change in grunt-lib-phantomjs, jasmine would never reach this line");
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user