diff options
author | Richard Gibson <richard.gibson@gmail.com> | 2017-01-09 11:23:47 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-09 11:23:47 -0800 |
commit | 14b393d0d64e119db7754b1075317a673810929c (patch) | |
tree | be94fd9d919916ec08917eaef0d0dd2b58af5f6f | |
parent | 25c6a0a2383dbd3176d9b90b1cbd1d621a9d3107 (diff) | |
download | jquery-14b393d0d64e119db7754b1075317a673810929c.tar.gz jquery-14b393d0d64e119db7754b1075317a673810929c.zip |
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
-rw-r--r-- | test/jquery.js | 67 |
1 files changed, 34 insertions, 33 deletions
diff --git a/test/jquery.js b/test/jquery.js index 8119d3fc0..e337a7940 100644 --- a/test/jquery.js +++ b/test/jquery.js @@ -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 } ); @@ -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>" ); + } } } )(); |