Skip to content

Commit

Permalink
Tests: Update the loader so test pages always get jQuery
Browse files Browse the repository at this point in the history
Pages used for iframe tests will now successfully load jQuery, even when
opened directly in the browser.

Closes gh-3489
  • Loading branch information
gibson042 committed Jan 9, 2017
1 parent 25c6a0a commit 14b393d
Showing 1 changed file with 34 additions and 33 deletions.
67 changes: 34 additions & 33 deletions test/jquery.js
Expand Up @@ -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;

// 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)"
} );

// 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 ) {
require = window.require || parent.require,

// 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( {
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
} );
Expand All @@ -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";
}

// 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
// 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>" );
}
}

} )();

0 comments on commit 14b393d

Please sign in to comment.