Fixed #1763 by checking to see if .createElement() is available on the context and...
[jquery.git] / test / unit / core.js
index ce70be6..f3a3aa3 100644 (file)
@@ -12,14 +12,19 @@ test("Basic requirements", function() {
 });
 
 test("$()", function() {
-       expect(5);
+       expect(4);
        
        var main = $("#main");
        isSet( $("div p", main).get(), q("sndp", "en", "sap"), "Basic selector with jQuery object as context" );
        
+/*
+       // disabled since this test was doing nothing. i tried to fix it but i'm not sure
+       // what the expected behavior should even be. FF returns "\n" for the text node
        // make sure this is handled
-       $('<p>\r\n</p>');
-       ok( true, "Check for \\r and \\n in jQuery()" );
+       var crlfContainer = $('<p>\r\n</p>');
+       var x = crlfContainer.contents().get(0).nodeValue;
+       equals( x, what???, "Check for \\r and \\n in jQuery()" );
+*/
        
        /* // Disabled until we add this functionality in
        var pass = true;
@@ -148,7 +153,7 @@ var foo = false;
 
 test("$('html')", function() {
        expect(4);
-       
+
        reset();
        foo = false;
        var s = $("<script>var foo='test';</script>")[0];
@@ -163,6 +168,14 @@ test("$('html')", function() {
        reset();
 });
 
+test("$('html', context)", function() {
+       expect(1);
+
+       var $div = $("<div/>");
+       var $span = $("<span/>", $div);
+       equals($span.length, 1, "Verify a span created with a div context works");
+});
+
 test("length", function() {
        expect(1);
        ok( $("p").length == 6, "Get Number of Elements Found" );
@@ -380,7 +393,7 @@ test("css(String|Hash)", function() {
 });
 
 test("css(String, Object)", function() {
-       expect(18);
+       expect(19);
        ok( $('#foo').is(':visible'), 'Modifying CSS display: Assert element is visible');
        $('#foo').css('display', 'none');
        ok( !$('#foo').is(':visible'), 'Modified CSS display: Assert element is hidden');
@@ -404,6 +417,11 @@ test("css(String, Object)", function() {
        });
        $('#foo').css('opacity', '');
        ok( $('#foo').css('opacity') == '1', "Assert opacity is 1 when set to an empty String" );
+       // for #1438, IE throws JS error when filter exists but doesn't have opacity in it
+       if (jQuery.browser.msie) {
+               $('#foo').css("filter", "progid:DXImageTransform.Microsoft.Chroma(color='red');");
+       }
+       equals( $('#foo').css('opacity'), '1', "Assert opacity is 1 when a different filter is set in IE, #1438" );
 });
 
 test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () {
@@ -837,7 +855,7 @@ test("is(String)", function() {
 });
 
 test("$.extend(Object, Object)", function() {
-       expect(15);
+       expect(17);
 
        var settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
                options =     { xnumber2: 1, xstring2: "x", xxx: "newstring" },
@@ -876,6 +894,14 @@ test("$.extend(Object, Object)", function() {
        var ret = jQuery.extend(true, { foo:"bar" }, { foo:null } );
        ok( typeof ret.foo !== 'undefined', "Make sure a null value doesn't crash with deep extend, for #1908" );
 
+       var obj = { foo:null };
+       jQuery.extend(true, obj, { foo:"notnull" } );
+       equals( obj.foo, "notnull", "Make sure a null value can be overwritten" );
+
+       function func() {}
+       jQuery.extend(func, { key: "value" } );
+       equals( func.key, "value", "Verify a function can be extended" );
+
        var defaults = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
                defaultsCopy = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" },
                options1 =     { xnumber2: 1, xstring2: "x" },