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

47
test/jquery.js vendored
View File

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