this.testIframe = function( title, fileName, func ) {
QUnit.test( title, function( assert ) {
- var iframe;
- var done = assert.async();
+ var done = assert.async(),
+ $iframe = supportjQuery( "<iframe/>" )
+ .css( { position: "absolute", width: "500px", left: "-600px" } )
+ .attr( { id: "qunit-fixture-iframe", src: url( "./data/" + fileName ) } );
// Test iframes are expected to invoke this via startIframeTest (cf. iframeTest.js)
window.iframeCallback = function() {
func.apply( this, args );
func = function() {};
- iframe.remove();
+ $iframe.remove();
done();
} );
};
- iframe = jQuery( "<div/>" ).css( { position: "absolute", width: "500px", left: "-600px" } )
- .append( jQuery( "<iframe/>" ).attr( "src", url( "./data/" + fileName ) ) )
- .appendTo( "#qunit-fixture" );
+
+ // Attach iframe to the body for visibility-dependent code
+ // It will be removed by either the above code, or the testDone callback in testrunner.js
+ $iframe.appendTo( document.body );
} );
};
this.iframeCallback = undefined;
// ...even if the jQuery under test has a broken .empty()
supportjQuery( "#qunit-fixture" ).empty();
+ // Remove the iframe fixture
+ supportjQuery( "#qunit-fixture-iframe" ).remove();
+
// Reset internal jQuery state
jQuery.event.global = {};
if ( ajaxSettings ) {