Added tests for 193 and 170.
[jquery.git] / src / jquery / jquery.js
index 6f35c99..686c20d 100644 (file)
@@ -28,7 +28,7 @@ window.undefined = window.undefined;
  * @name jQuery
  * @cat Core
  */
-jQuery = function(a,c) {
+var jQuery = function(a,c) {
 
        // Shortcut for document ready (because $(document).each() is silly)
        if ( a && typeof a == "function" && jQuery.fn.ready )
@@ -63,12 +63,14 @@ jQuery = function(a,c) {
                // Find the matching elements and save them for later
                jQuery.find( a, c ) );
 
-  // See if an extra function was provided
+       // See if an extra function was provided
        var fn = arguments[ arguments.length - 1 ];
 
        // If so, execute it in context
        if ( fn && typeof fn == "function" )
                this.each(fn);
+
+       return this;
 };
 
 // Map over the $ in case of overwrite
@@ -532,6 +534,14 @@ jQuery.fn = jQuery.prototype = {
         * ok( !$('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden');
         * $('#foo').css({display: 'block'});
         * ok( $('#foo').is(':visible'), 'Modified CSS display: Assert element is visible');
+        * $('#floatTest').css({styleFloat: 'right'});
+        * ok( $('#floatTest').css('styleFloat') == 'right', 'Modified CSS float using "styleFloat": Assert float is right');
+        * $('#floatTest').css({cssFloat: 'left'});
+        * ok( $('#floatTest').css('cssFloat') == 'left', 'Modified CSS float using "cssFloat": Assert float is left');
+        * $('#floatTest').css({'float': 'right'});
+        * ok( $('#floatTest').css('cssFloat') == 'right', 'Modified CSS float using "cssFloat": Assert float is right');
+        * $('#floatTest').css({'font-size': '30px'});
+        * ok( $('#floatTest').css('font-size') == '30px', 'Modified CSS font-size: Assert font-size is 30px');
         * 
         * @name css
         * @type jQuery
@@ -553,6 +563,14 @@ jQuery.fn = jQuery.prototype = {
         * ok( !$('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden');
         * $('#foo').css('display', 'block');
         * ok( $('#foo').is(':visible'), 'Modified CSS display: Assert element is visible');
+        * $('#floatTest').css('styleFloat', 'left');
+        * ok( $('#floatTest').css('styleFloat') == 'left', 'Modified CSS float using "styleFloat": Assert float is left');
+        * $('#floatTest').css('cssFloat', 'right');
+        * ok( $('#floatTest').css('cssFloat') == 'right', 'Modified CSS float using "cssFloat": Assert float is right');
+        * $('#floatTest').css('float', 'left');
+        * ok( $('#floatTest').css('cssFloat') == 'left', 'Modified CSS float using "cssFloat": Assert float is left');
+        * $('#floatTest').css('font-size', '20px');
+        * ok( $('#floatTest').css('font-size') == '20px', 'Modified CSS font-size: Assert font-size is 20px');
         *
         * @name css
         * @type jQuery
@@ -1031,6 +1049,7 @@ jQuery.fn = jQuery.prototype = {
                                for ( var i = 0; i < t.length; i++ )
                                        if ( jQuery.filter(t[i],[a]).r.length )
                                                return a;
+                               return false;
                        }) ||
 
                        t.constructor == Boolean &&
@@ -1294,8 +1313,17 @@ jQuery.fn = jQuery.prototype = {
  * @cat Javascript
  */
 jQuery.extend = jQuery.fn.extend = function(obj,prop) {
+       // Watch for the case where null or undefined gets passed in by accident
+       if ( arguments.length > 1 && (prop === null || prop == undefined) )
+               return obj;
+
+       // If no property object was provided, then we're extending jQuery
        if ( !prop ) { prop = obj; obj = this; }
+
+       // Extend the base object
        for ( var i in prop ) obj[i] = prop[i];
+
+       // Return the modified object
        return obj;
 };
 
@@ -1384,7 +1412,7 @@ jQuery.extend({
        each: function( obj, fn, args ) {
                if ( obj.length == undefined )
                        for ( var i in obj )
-                               if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
+                               fn.apply( obj[i], args || [i, obj[i]] );
                else
                        for ( var i = 0; i < obj.length; i++ )
                                if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
@@ -1489,6 +1517,9 @@ jQuery.extend({
 
                } else if (document.defaultView && document.defaultView.getComputedStyle) {
 
+                       if (prop == "cssFloat" || prop == "styleFloat")
+                               prop = "float";
+
                        prop = prop.replace(/([A-Z])/g,"-$1").toLowerCase();
                        var cur = document.defaultView.getComputedStyle(elem, null);
 
@@ -1661,9 +1692,9 @@ jQuery.extend({
         * t( "Attribute Exists", "*[@title]", ["google"] );
         * t( "Attribute Exists", "[@title]", ["google"] );
         * 
-        * t( "Non-existing part of attribute [@name*=bla]", "[@name*=bla]", [] ); 
-        * t( "Non-existing start of attribute [@name^=bla]", "[@name^=bla]", [] ); 
-        * t( "Non-existing end of attribute [@name$=bla]", "[@name$=bla]", [] ); 
+        * t( "Non-existing part of attribute", "[@name*=bla]", [] ); 
+        * t( "Non-existing start of attribute", "[@name^=bla]", [] ); 
+        * t( "Non-existing end of attribute", "[@name$=bla]", [] ); 
         *
         * t( "Attribute Equals", "a[@rel='bookmark']", ["simon1"] );
         * t( "Attribute Equals", 'a[@rel="bookmark"]', ["simon1"] );
@@ -2233,12 +2264,12 @@ jQuery.extend({
                },
 
                handle: function(event) {
-                       if ( typeof jQuery == "undefined" ) return;
+                       if ( typeof jQuery == "undefined" ) return false;
 
                        event = event || jQuery.event.fix( window.event );
 
                        // If no correct event was found, fail
-                       if ( !event ) return;
+                       if ( !event ) return false;
 
                        var returnValue = true;