test to verify hanging on failed load of iframe

0.5.x-hotfixes
Heiko Behrens 12 years ago
parent ea5334ec7e
commit af73f349f8

@ -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": {

@ -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…
Cancel
Save