Tests: Refactor testIframe() to make it DRYer and more consistent

Ref gh-3040
Closes gh-3049
This commit is contained in:
Dave Methvin
2016-04-10 15:42:44 -04:00
parent 08d73d7f9c
commit e5ffcb0838
42 changed files with 142 additions and 110 deletions

View File

@@ -4,6 +4,7 @@
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<title>onunload ajax requests (#14379)</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<form id="navigate" action="../iframe.html"></form>
@@ -17,7 +18,7 @@
ajaxStatus = status;
}
});
parent.iframeCallback( ajaxStatus );
startIframeTest( ajaxStatus );
});
jQuery(function() {

View File

@@ -4,13 +4,14 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Attempt to block tests because of dangling XHR requests (IE)</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript">
window.onunload = function() {};
jQuery(function() {
setTimeout(function() {
var parent = window.parent;
document.write("");
parent.iframeCallback();
startIframeTest();
}, 200 );
var number = 50;
while( number-- ) {

View File

@@ -10,15 +10,16 @@
};
</script>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<form>
<input type="text" id="nodeName"/>
</form>
<script>
jQuery(function() {
window.parent.iframeCallback( errors );
});
jQuery( function() {
startIframeTest( errors );
} );
</script>
</body>
</html>

View File

@@ -13,10 +13,11 @@
};
</script>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<script>
window.parent.iframeCallback( cc_on, errors, jQuery );
startIframeTest( cc_on, errors );
</script>
</body>
</html>

View File

@@ -4,6 +4,7 @@
<meta charset="utf-8">
<script src="../../jquery.js"></script>
<script>var $j = jQuery.noConflict();</script>
<script src="../iframeTest.js"></script>
</head>
<body>
<iframe id="dont_return" src="dont_return.php"></iframe>
@@ -20,14 +21,14 @@
$(function () {
clearTimeout( timeoutId );
if ( !timeoutFired ) {
window.parent.iframeCallback( true );
startIframeTest( true );
}
});
});
timeoutId = setTimeout(function () {
timeoutFired = true;
window.parent.iframeCallback( false );
startIframeTest( false );
}, 10000);
});
</script>

View File

@@ -8,6 +8,7 @@
window.onready = function() { error = "Called window.onready"; };
</script>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<form>
@@ -16,7 +17,7 @@
<script>
jQuery(function() {
setTimeout( function() {
window.parent.iframeCallback( error );
startIframeTest( error );
});
});
</script>

View File

@@ -14,8 +14,9 @@
<body>
<div id="test"></div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
window.parent.iframeCallback( jQuery( "#test" ).css( 'width' ) );
startIframeTest( jQuery( "#test" ).css( 'width' ) );
</script>
</body>
</html>

View File

@@ -4,9 +4,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE11 onpageshow strangeness (#14894)</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
$(function(){
window.parent.iframeCallback( $( "body" ).data().result );
startIframeTest( $( "body" ).data().result );
});
</script>
</head>

View File

@@ -8,14 +8,13 @@
height: 1000px;
}
</style>
<script src="../iframeTest.js"></script>
</head>
<body>
<div>
<script src="../../jquery.js"></script>
<script>
jQuery( function() {
window.parent.iframeCallback( jQuery, window, document );
} );
jQuery( startIframeTest );
</script>
</div>
</body>

View File

@@ -5,12 +5,13 @@
<title>.focus() (activeElement access #13393)</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<a href="#" id="frame-link"></a>
<script>
jQuery( "#frame-link" ).trigger( "focus" );
window.parent.iframeCallback( true );
startIframeTest( true );
</script>
</body>
</html>

View File

@@ -5,13 +5,14 @@
<title>focusin event cross-frame (#14180)</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<input type="text" id="frame-input" />
<script>
// Call parent when this frame is fully loaded, it will mess with #frame-input
jQuery( window ).one( "load", function() {
window.parent.iframeCallback( document );
startIframeTest();
});
</script>
</body>

View File

@@ -4,13 +4,14 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Test case for gh-2100</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<script type="text/javascript">
jQuery( document ).ready(function () {
window.parent.iframeCallback( jQuery("#container").length === 1 );
});
jQuery( function () {
startIframeTest( jQuery("#container").length === 1 );
} );
</script>
<!-- external resources that come before elements trick

View File

@@ -4,10 +4,11 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Test case for jQuery ticket #11470</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript">
jQuery.when( jQuery.ready ).done(function() {
jQuery("body").append("<div>modifying DOM</div>");
window.parent.iframeCallback( $("div").text() === "modifying DOM" );
startIframeTest( $("div").text() === "modifying DOM" );
});
</script>
</head>

View File

@@ -4,12 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Test case for jQuery ticket #10067</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
</head>
<body>
<script type="text/javascript">
jQuery( document ).ready(function () {
window.parent.iframeCallback( jQuery('#container').length === 1 );
startIframeTest( jQuery('#container').length === 1 );
});
</script>

View File

@@ -1,6 +1,7 @@
<!doctype html>
<html>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
var called = false,
error = false;
@@ -12,7 +13,7 @@
return "maybe";
}).on( "load", function( event ) {
$( window ).triggerHandler( "beforeunload" );
window.parent.iframeCallback( called && !error );
startIframeTest( called && !error );
});
</script>
</html>

8
test/data/iframeTest.js Normal file
View File

@@ -0,0 +1,8 @@
window.startIframeTest = function() {
var args = Array.prototype.slice.call( arguments );
// Note: jQuery may be undefined if page did not load it
args.unshift( window.jQuery, window, document );
window.parent.iframeCallback.apply( null, args );
};

View File

@@ -7,6 +7,7 @@
<body>
<div id="qunit-fixture"></div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
var script = document.getElementsByTagName( "script" )[ 0 ],
div = document.createElement( "div" ),
@@ -25,7 +26,7 @@
error = e;
}
window.parent.iframeCallback({
startIframeTest({
status: success,
description: "buildFragment sets the context without throwing an exception" +
( error ? ": " + error : "" )

View File

@@ -7,12 +7,9 @@
<body>
<div id="qunit-fixture"></div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
window.parent.iframeCallback(
window,
document.body,
"<script>window.scriptTest = true;<\x2fscript>"
);
startIframeTest();
</script>
</body>
</html>

View File

@@ -16,6 +16,7 @@
#positionTest { position: absolute; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
$(".absolute").click(function() {
@@ -24,7 +25,7 @@
$(this).css({ top: pos.top, left: pos.left });
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -10,13 +10,14 @@
#firstElement { width: 50px; height: 50px; background: green; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
$("body").click(function() {
$("marker").css( $(this).offset() );
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -13,6 +13,7 @@
#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
window.scrollTo(1000,1000);
@@ -20,7 +21,7 @@
$("#marker").css( $(this).offset() );
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -12,6 +12,7 @@
#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
$(".relative").click(function() {
@@ -20,7 +21,7 @@
$(this).css({ position: 'absolute', top: pos.top, left: pos.left });
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -15,6 +15,7 @@
#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
window.scrollTo(1000,1000);
@@ -24,7 +25,7 @@
$("#marker").css( $(this).offset() );
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -11,6 +11,7 @@
#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
$(".static").click(function() {
@@ -19,7 +20,7 @@
$(this).css({ position: 'absolute', top: pos.top, left: pos.left });
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -11,13 +11,14 @@
#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
</style>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script type="text/javascript" charset="utf-8">
jQuery(function($) {
$("table, th, td").click(function() {
$("#marker").css( $(this).offset() );
return false;
});
window.parent.iframeCallback( jQuery, window, document );
startIframeTest();
});
</script>
</head>

View File

@@ -5,7 +5,7 @@
<title>jQuery selector - attributes</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script id="script1"
defer
async></script>
@@ -16,9 +16,7 @@
document.createElement('article');
document.createElement('details');
jQuery( function() {
window.parent.iframeCallback( jQuery, window, document );
} );
jQuery( startIframeTest );
</script>
</head>
<body>

View File

@@ -5,6 +5,7 @@
<title>jQuery selector - sizzle cache</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
document.write(
"<script>var $cached = jQuery.noConflict(true);<\x2Fscript>" +
@@ -18,9 +19,7 @@
<a href="#" id="collision">Worlds collide</a>
</div>
<script>
jQuery( function() {
window.parent.iframeCallback( jQuery, window, document );
} );
jQuery( startIframeTest );
</script>
</body>
</html>

View File

@@ -18,10 +18,11 @@
<body>
<div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script src="getComputedSupport.js"></script>
</div>
<script>
window.parent.iframeCallback( jQuery( "body" ).css( "backgroundColor" ),
startIframeTest( jQuery( "body" ).css( "backgroundColor" ),
getComputedSupport( jQuery.support ) );
</script>
</body>

View File

@@ -1,3 +1,3 @@
jQuery( function() {
parent.iframeCallback( getComputedSupport( jQuery.support ) );
startIframeTest( getComputedSupport( jQuery.support ) );
} );

View File

@@ -9,6 +9,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSP Test Page</title>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script src="csp.js"></script>
<script src="getComputedSupport.js"></script>
</head>

View File

@@ -232,15 +232,15 @@ this.ajaxTest = function( title, expect, options ) {
} );
};
this.testIframeWithCallback = function( title, fileName, func ) {
QUnit.test( title, 1, function( assert ) {
this.testIframe = function( title, fileName, func ) {
QUnit.test( title, function( assert ) {
var iframe;
var done = assert.async();
window.iframeCallback = function() {
var args = Array.prototype.slice.call( arguments );
args.push( assert );
args.unshift( assert );
setTimeout( function() {
this.iframeCallback = undefined;
@@ -248,7 +248,6 @@ this.testIframeWithCallback = function( title, fileName, func ) {
func.apply( this, args );
func = function() {};
iframe.remove();
done();
} );
};