diff options
author | Timmy Willison <timmywillisn@gmail.com> | 2013-08-15 14:15:49 -0400 |
---|---|---|
committer | Timmy Willison <timmywillisn@gmail.com> | 2013-08-15 14:15:49 -0400 |
commit | 6318ae6ab90d4b450dfadf32ab95fe52ed6331cb (patch) | |
tree | 50b247fed8569e909e380b281e9145bd1458a39e /test/jquery.js | |
parent | 7627b8b6d9ef6e57dbd20a55b946bd1991c1223e (diff) | |
download | jquery-6318ae6ab90d4b450dfadf32ab95fe52ed6331cb.tar.gz jquery-6318ae6ab90d4b450dfadf32ab95fe52ed6331cb.zip |
AMD-ify jQuery sourcegit s! Woo! Fixes #14113, #14163.
Diffstat (limited to 'test/jquery.js')
-rw-r--r-- | test/jquery.js | 82 |
1 files changed, 77 insertions, 5 deletions
diff --git a/test/jquery.js b/test/jquery.js index 93d1095cd..faebaaed0 100644 --- a/test/jquery.js +++ b/test/jquery.js @@ -1,5 +1,77 @@ -// Use the right jQuery source in iframe tests -document.write( "<script id='jquery-js' src='" + - parent.document.getElementById("jquery-js").src.replace( /^(?![^\/?#]+:)/, - parent.location.pathname.replace( /[^\/]$/, "$0/" ) ) + -"'><\x2Fscript>" ); +// Use the right jQuery source on the test page (and iframes) +(function() { + /* global loadTests: true, testSubproject: false */ + /* jshint eqeqeq: false */ + + var i, len, + // Parent is the current window if not an iframe, which is fine + src = /^(.*)test\//.exec( parent.location.pathname )[1], + QUnit = QUnit || parent.QUnit, + require = require || parent.require; + + // Config parameter to force basic code paths + QUnit.config.urlConfig.push({ + id: "basic", + label: "Bypass optimizations", + tooltip: "Force use of the most basic code by disabling native querySelectorAll; contains; compareDocumentPosition" + }); + if ( QUnit.urlParams.basic ) { + document.querySelectorAll = null; + document.documentElement.contains = null; + document.documentElement.compareDocumentPosition = null; + } + + // 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.urlParams.amd && parent == window ) { + require.config({ baseUrl: src }); + src = "src/jquery"; + // Include tests if specified + if ( typeof loadTests !== "undefined" ) { + QUnit.config.autostart = false; + require( [ src ], function() { + // Ensure load order (to preserve test numbers) + (function loadDep() { + var dep = loadTests.shift(); + if ( dep ) { + require( [ dep ], loadDep ); + } else { + // Subproject tests must be last because they replace our test fixture + testSubproject( "Sizzle", "../bower_components/sizzle/test/", /^unit\/.*\.js$/ ); + + QUnit.start(); + } + })(); + }); + } 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"; + } else { + src += "dist/jquery.min.js"; + } + + // Load jQuery + document.write( "<script id='jquery-js' src='" + src + "'><\x2Fscript>" ); + + // Load tests synchronously if available + if ( typeof loadTests !== "undefined" ) { + for ( i = 0, len = loadTests.length; i < len; i++ ) { + document.write( "<script src='" + loadTests.shift() + "'><\x2Fscript>" ); + } + } +})(); |