Made isPlainObject() supporting null, undefined, and window values on IE too. Also...
[jquery.git] / test / unit / core.js
index ba7fd17..1e03c96 100644 (file)
@@ -12,7 +12,7 @@ test("Basic requirements", function() {
 });
 
 test("jQuery()", function() {
-       expect(12);
+       expect(15);
 
        // Basic constructor's behavior
 
@@ -51,10 +51,13 @@ test("jQuery()", function() {
 
        var code = jQuery("<code/>");
        equals( code.length, 1, "Correct number of elements generated for code" );
+       equals( code.parent().length, 0, "Make sure that the generated HTML has no parent." );
        var img = jQuery("<img/>");
        equals( img.length, 1, "Correct number of elements generated for img" );
+       equals( img.parent().length, 0, "Make sure that the generated HTML has no parent." );
        var div = jQuery("<div/><hr/><code/><b/>");
        equals( div.length, 4, "Correct number of elements generated for div hr code b" );
+       equals( div.parent().length, 0, "Make sure that the generated HTML has no parent." );
 
        equals( jQuery([1,2,3]).get(1), 2, "Test passing an array to the factory" );
 
@@ -201,12 +204,22 @@ test("trim", function() {
 });
 
 test("isPlainObject", function() {
-       expect(7);
+       expect(14);
 
        stop();
 
        // The use case that we want to match
        ok(jQuery.isPlainObject({}), "{}");
+       
+       // Not objects shouldn't be matched
+       ok(!jQuery.isPlainObject(""), "string");
+       ok(!jQuery.isPlainObject(0) && !jQuery.isPlainObject(1), "number");
+       ok(!jQuery.isPlainObject(true) && !jQuery.isPlainObject(false), "boolean");
+       ok(!jQuery.isPlainObject(null), "null");
+       ok(!jQuery.isPlainObject(undefined), "undefined");
+       
+       // Arrays shouldn't be matched
+       ok(!jQuery.isPlainObject([]), "array");
  
        // Instantiated objects shouldn't be matched
        ok(!jQuery.isPlainObject(new Date), "new Date");
@@ -228,6 +241,9 @@ test("isPlainObject", function() {
 
        // DOM Element
        ok(!jQuery.isPlainObject(document.createElement("div")), "DOM Element");
+       
+       // Window
+       ok(!jQuery.isPlainObject(window), "window");
  
        var iframe = document.createElement("iframe");
        document.body.appendChild(iframe);