Tests: Update the loader so test pages always get jQuery

Pages used for iframe tests will now successfully load jQuery, even when
opened directly in the browser.

Closes gh-3489
This commit is contained in:
Richard Gibson 2017-01-09 11:23:47 -08:00 committed by GitHub
parent 25c6a0a238
commit 14b393d0d6

63
test/jquery.js vendored
View File

@ -2,21 +2,35 @@
( function() {
/* global loadTests: false */
var src,
path = window.location.pathname.split( "test" )[ 0 ],
var path = window.location.pathname.split( "test" )[ 0 ],
QUnit = window.QUnit || parent.QUnit,
require = window.require || parent.require;
require = window.require || parent.require,
// iFrames won't load AMD (the iframe tests synchronously expect jQuery to be there)
QUnit.config.urlConfig.push( {
id: "amd",
label: "Load with AMD",
tooltip: "Load the AMD jQuery file (and its dependencies)"
} );
// Default to unminified jQuery for directly-opened iframes
urlParams = QUnit ?
QUnit.urlParams :
{ dev: true },
src = urlParams.dev ?
"dist/jquery.js" :
"dist/jquery.min.js";
// If QUnit is on window, this is the main window
// This detection allows AMD tests to be run in an iframe
if ( QUnit.urlParams.amd && window.QUnit ) {
// Define configuration parameters controlling how jQuery is loaded
if ( QUnit ) {
QUnit.config.urlConfig.push( {
id: "amd",
label: "Load with AMD",
tooltip: "Load the AMD jQuery file (and its dependencies)"
} );
QUnit.config.urlConfig.push( {
id: "dev",
label: "Load unminified",
tooltip: "Load the development (unminified) jQuery file"
} );
}
// Honor AMD loading on the main window (detected by seeing QUnit on it).
// This doesn't apply to iframes because they synchronously expect jQuery to be there.
if ( urlParams.amd && window.QUnit ) {
require.config( {
baseUrl: path
} );
@ -28,28 +42,15 @@
} else {
require( [ src ] );
}
return;
}
// Config parameter to use minified jQuery
QUnit.config.urlConfig.push( {
id: "dev",
label: "Load unminified",
tooltip: "Load the development (unminified) jQuery file"
} );
if ( QUnit.urlParams.dev ) {
src = "dist/jquery.js";
// Otherwise, load synchronously
} else {
src = "dist/jquery.min.js";
}
document.write( "<script id='jquery-js' src='" + path + src + "'><\x2Fscript>" );
// Load jQuery
document.write( "<script id='jquery-js' src='" + path + src + "'><\x2Fscript>" );
// Synchronous-only tests
// Other tests are loaded from the test page
if ( typeof loadTests !== "undefined" ) {
document.write( "<script src='" + path + "test/unit/ready.js'><\x2Fscript>" );
// Synchronous-only tests (other tests are loaded from the test page)
if ( typeof loadTests !== "undefined" ) {
document.write( "<script src='" + path + "test/unit/ready.js'><\x2Fscript>" );
}
}
} )();