]> source.dussan.org Git - jquery.git/commitdiff
Modularize offset (exclude w/ grunt build:*:*:-offset). Closes #813. Fixes #11865
authorMike Sherov <mike.sherov@gmail.com>
Thu, 7 Jun 2012 15:24:35 +0000 (11:24 -0400)
committerRick Waldron <waldron.rick@gmail.com>
Thu, 7 Jun 2012 15:24:35 +0000 (11:24 -0400)
README.md
grunt.js
test/unit/attributes.js
test/unit/core.js
test/unit/offset.js

index 51d40f9886191007a3986a1d4b4b0d90d21669bc..1af92ee5633d8e51654ea5f36ef29130e6c4a542 100644 (file)
--- a/README.md
+++ b/README.md
@@ -62,6 +62,37 @@ Then, to get a complete, minified (w/ Uglify.js), linted (w/ JSHint) version of
 The built version of jQuery will be put in the `dist/` subdirectory.
 
 
+### Modules (new in 1.8)
+
+Starting in jQuery 1.8, special builds can now be created that optionally exlude or include any of the following modules:
+
+- dimensions
+- effects
+- offset
+
+
+To create a custom build, use the following special `grunt` commands:
+
+Exclude `dimensions`:
+
+#### `grunt build:*:*:-dimensions` ####
+
+Exclude `effects`:
+
+#### `grunt build:*:*:-effects` ####
+
+Exclude `offset`:
+
+#### `grunt build:*:*:-offset` ####
+
+
+Exclude **all** optional modules:
+
+#### `grunt build:*:*:-dimensions:-effects:-offset` ####
+
+
+
+
 Running the Unit Tests
 --------------------------------------
 
index a54b85c9f4d3a5b1429c970cf3312a1934d04e06..58329faa986e2bb056ea822bc28f7041fec539a2 100644 (file)
--- a/grunt.js
+++ b/grunt.js
@@ -69,7 +69,7 @@ module.exports = function( grunt ) {
                                "src/ajax/script.js",
                                "src/ajax/xhr.js",
                                { flag: "effects", src: "src/effects.js" },
-                               "src/offset.js",
+                               { flag: "offset", src: "src/offset.js" },
                                { flag: "dimensions", src: "src/dimensions.js" },
                                "src/exports.js",
                                "src/outro.js"
index 7dec6061954bf83b73318efb11dc10068d712721..33551ba9437965104dc9eab41528edf7ca877b45 100644 (file)
@@ -368,44 +368,55 @@ test("attr(String, Object)", function() {
 });
 
 test("attr(jquery_method)", function(){
-       expect(7);
 
        var $elem = jQuery("<div />"),
-               elem = $elem[0];
+               elem = $elem[0],
+               expected = 5,
+               attrObj = {
+                       css: { paddingLeft: 1, paddingRight: 1 }
+               };
+
+       if ( jQuery.fn.width ) {
+               expected += 2;
+               attrObj.width = 10;
+       }
+
+       if ( jQuery.fn.offset ) {
+               expected += 2;
+               attrObj.offset = { top: 1, left: 0 };
+       }
+
+       expect( expected );
 
        // one at a time
-       $elem.attr({html: "foo"}, true);
-       equal( elem.innerHTML, "foo", "attr(html)");
+       $elem.attr( { html: "foo" }, true );
+       equal( elem.innerHTML, "foo", "attr(html)" );
 
-       $elem.attr({text: "bar"}, true);
-       equal( elem.innerHTML, "bar", "attr(text)");
+       $elem.attr( { text: "bar" }, true );
+       equal( elem.innerHTML, "bar", "attr(text)" );
 
-       $elem.attr({css: {color: "red"}}, true);
-       ok( /^(#ff0000|red)$/i.test(elem.style.color), "attr(css)");
+       $elem.attr( { css: { color: "red" } }, true );
+       ok( /^(#ff0000|red)$/i.test( elem.style.color ), "attr(css)" );
 
-       if ( jQuery.fn.width ) {
-               $elem.attr({height: 10}, true);
-               equal( elem.style.height, "10px", "attr(height)");
+       // Multiple attributes
+       $elem.attr( attrObj, true );
 
-               // Multiple attributes
-               $elem.attr({
-               width:10,
-               css:{ paddingLeft:1, paddingRight:1 }
-               }, true);
+       if ( jQuery.fn.width ) {
+               equal( elem.style.width, "10px", "attr({width:})" );
 
-               equal( elem.style.width, "10px", "attr({...})");
-       } else {
+               $elem.attr( { height: 10 }, true );
+               equal( elem.style.height, "10px", "attr(height)" );
+       }
 
-               $elem.attr({
-               css:{ paddingLeft:1, paddingRight:1 }
-               }, true);
+       if ( jQuery.fn.offset ) {
+               equal( elem.style.top, "1px", "attr({offset:})" );
 
-               ok( true, "DUMMY: attr(height)" );
-               ok( true, "DUMMY: attr({...})" );
+               $elem.attr( { offset: { top: 1, left: 1 } }, true );
+               equal( elem.style.left, "1px", "attr(offset)" );
        }
 
-       equal( elem.style.paddingLeft, "1px", "attr({...})");
-       equal( elem.style.paddingRight, "1px", "attr({...})");
+       equal( elem.style.paddingLeft, "1px", "attr({css:})" );
+       equal( elem.style.paddingRight, "1px", "attr({css:})" );
 });
 
 test("attr(String, Object) - Loaded via XML document", function() {
index f7de6c702118e58cc33b67797ff771be399384c2..2daf5d24dc5a99308cb3ec5e7f4b66fab07c34ae 100644 (file)
@@ -18,24 +18,48 @@ test("Basic requirements", function() {
 });
 
 test("jQuery()", function() {
-       expect(29);
 
-       // Basic constructor's behavior
+       var elem, i,
+               obj = jQuery("div"),
+               main = jQuery("#qunit-fixture"),
+               code = jQuery("<code/>"),
+               img = jQuery("<img/>"),
+               div = jQuery("<div/><hr/><code/><b/>"),
+               exec = false,
+               long = "",
+               expected = 28,
+               attrObj = {
+                       css: { paddingLeft: 1, paddingRight: 1 },
+                       click: function() { ok( exec, "Click executed." ); },
+                       text: "test",
+                       "class": "test2",
+                       id: "test3"
+               };
 
+       if ( jQuery.fn.width ) {
+               expected++;
+               attrObj.width = 10;
+       }
+
+       if ( jQuery.fn.offset ) {
+               expected++;
+               attrObj.offset = { top: 1, left: 1 };
+       }
+
+       expect( expected );
+
+       // Basic constructor's behavior
        equal( jQuery().length, 0, "jQuery() === jQuery([])" );
        equal( jQuery(undefined).length, 0, "jQuery(undefined) === jQuery([])" );
        equal( jQuery(null).length, 0, "jQuery(null) === jQuery([])" );
        equal( jQuery("").length, 0, "jQuery('') === jQuery([])" );
        equal( jQuery("#").length, 0, "jQuery('#') === jQuery([])" );
 
-       var obj = jQuery("div");
        equal( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
 
-               // can actually yield more than one, when iframes are included, the window is an array as well
+       // can actually yield more than one, when iframes are included, the window is an array as well
        equal( jQuery(window).length, 1, "Correct number of elements generated for jQuery(window)" );
 
-
-       var main = jQuery("#qunit-fixture");
        deepEqual( jQuery("div p", main).get(), q("sndp", "en", "sap"), "Basic selector with jQuery object as context" );
 
 /*
@@ -56,13 +80,12 @@ test("jQuery()", function() {
        }
        ok( pass, "jQuery('&lt;tag&gt;') needs optional document parameter to ease cross-frame DOM wrangling, see #968" );*/
 
-       var code = jQuery("<code/>");
        equal( code.length, 1, "Correct number of elements generated for code" );
        equal( code.parent().length, 0, "Make sure that the generated HTML has no parent." );
-       var img = jQuery("<img/>");
+
        equal( img.length, 1, "Correct number of elements generated for img" );
        equal( img.parent().length, 0, "Make sure that the generated HTML has no parent." );
-       var div = jQuery("<div/><hr/><code/><b/>");
+
        equal( div.length, 4, "Correct number of elements generated for div hr code b" );
        equal( div.parent().length, 0, "Make sure that the generated HTML has no parent." );
 
@@ -70,30 +93,14 @@ test("jQuery()", function() {
 
        equal( jQuery(document.body).get(0), jQuery("body").get(0), "Test passing an html node to the factory" );
 
-       var exec = false,
-                       elem;
+       elem = jQuery("<div/>", attrObj );
 
        if ( jQuery.fn.width ) {
-               elem = jQuery("<div/>", {
-                       width: 10,
-                       css: { paddingLeft:1, paddingRight:1 },
-                       click: function(){ ok(exec, "Click executed."); },
-                       text: "test",
-                       "class": "test2",
-                       id: "test3"
-               });
-
                equal( elem[0].style.width, "10px", "jQuery() quick setter width");
-       } else {
-               elem = jQuery("<div/>", {
-                       css: { paddingLeft:1, paddingRight:1 },
-                       click: function(){ ok(exec, "Click executed."); },
-                       text: "test",
-                       "class": "test2",
-                       id: "test3"
-               });
+       }
 
-               ok( true, "DUMMY: jQuery() quick setter width");
+       if ( jQuery.fn.offset ) {
+               equal( elem[0].style.top, "1px", "jQuery() quick setter offset");
        }
 
        equal( elem[0].style.paddingLeft, "1px", "jQuery quick setter css");
@@ -109,7 +116,7 @@ test("jQuery()", function() {
        // manually clean up detached elements
        elem.remove();
 
-       for ( var i = 0; i < 3; ++i ) {
+       for ( i = 0; i < 3; ++i ) {
                elem = jQuery("<input type='text' value='TEST' />");
        }
        equal( elem[0].defaultValue, "TEST", "Ensure cached nodes are cloned properly (Bug #6655)" );
@@ -120,8 +127,7 @@ test("jQuery()", function() {
        equal( jQuery(" <div/> ").length, 1, "Make sure whitespace is trimmed." );
        equal( jQuery(" a<div/>b ").length, 1, "Make sure whitespace and other characters are trimmed." );
 
-       var long = "";
-       for ( var i = 0; i < 128; i++ ) {
+       for ( i = 0; i < 128; i++ ) {
                long += "12345678";
        }
 
index 7502282817748369dd06a4c75acd37fa47f4291c..f3f93bace4fac283ef85d8086f8208fb81bc8ea0 100644 (file)
@@ -1,3 +1,5 @@
+if ( jQuery.fn.offset ) {
+
 module("offset", { teardown: moduleTeardown });
 
 test("disconnected node", function() {
@@ -475,3 +477,5 @@ test("fractions (see #7730 and #7885)", function() {
 
        div.remove();
 });
+
+}