aboutsummaryrefslogtreecommitdiffstats
path: root/test/jquery.js
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2013-08-15 14:15:49 -0400
committerTimmy Willison <timmywillisn@gmail.com>2013-08-15 14:15:49 -0400
commit6318ae6ab90d4b450dfadf32ab95fe52ed6331cb (patch)
tree50b247fed8569e909e380b281e9145bd1458a39e /test/jquery.js
parent7627b8b6d9ef6e57dbd20a55b946bd1991c1223e (diff)
downloadjquery-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.js82
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>" );
+ }
+ }
+})();