]> source.dussan.org Git - jquery.git/commitdiff
Fixes #7413; isEmptyObject() check to see if obj passes isPlainObject 88/head
authorrwldrn <waldron.rick@gmail.com>
Tue, 9 Nov 2010 21:14:11 +0000 (16:14 -0500)
committerrwldrn <waldron.rick@gmail.com>
Tue, 9 Nov 2010 21:14:11 +0000 (16:14 -0500)
src/core.js
test/unit/core.js

index 9e1bfc67fbe0986a4eac88d43e23e81cd9f127f5..c11133f902522b7a3e8a51ad7aecbad797969be9 100644 (file)
@@ -532,6 +532,12 @@ jQuery.extend({
        },
 
        isEmptyObject: function( obj ) {
+
+    // Fixes #7413 Check to see if obj passes isPlainObject
+    if ( !jQuery.isPlainObject( obj ) ) {
+      return false;
+    }
+       
                for ( var name in obj ) {
                        return false;
                }
index 7ef2ad7e2a8ad2cdd560fd82d87aa508b80bb6bf..b634ade26094141f3d95f2f92efc5ad660c48f47 100644 (file)
@@ -848,13 +848,20 @@ test("jQuery.makeArray", function(){
 });
 
 test("jQuery.isEmptyObject", function(){
-       expect(2);
+       expect(11);
        
        equals(true, jQuery.isEmptyObject({}), "isEmptyObject on empty object literal" );
        equals(false, jQuery.isEmptyObject({a:1}), "isEmptyObject on non-empty object literal" );
-       
-       // What about this ?
-       // equals(true, jQuery.isEmptyObject(null), "isEmptyObject on null" );
+  equals(false, jQuery.isEmptyObject(1), "isEmptyObject on number (wrong argument type)");
+  equals(false, jQuery.isEmptyObject(0), "isEmptyObject on falsy number (wrong argument type)");  
+  equals(false, jQuery.isEmptyObject("test"), "isEmptyObject on string (wrong argument type)");
+  equals(false, jQuery.isEmptyObject(""), "isEmptyObject on falsy string (wrong argument type)");
+  equals(false, jQuery.isEmptyObject([1,2,3]), "isEmptyObject on array (wrong argument type)");
+  equals(false, jQuery.isEmptyObject([]), "isEmptyObject on an empty array (wrong argument type)");
+  equals(false, jQuery.isEmptyObject(undefined), "isEmptyObject on undefined (wrong argument type)");
+  equals(false, jQuery.isEmptyObject(false), "isEmptyObject on undefined (wrong argument type)");
+  equals(false, jQuery.isEmptyObject(null), "isEmptyObject on null (wrong argument type)" );   
+
 });
 
 test("jQuery.proxy", function(){