Make sure setting opacity does not clobber other inline filters. Fixes #7101.
[jquery.git] / test / unit / css.js
index 0e91ae1..468f763 100644 (file)
@@ -64,7 +64,8 @@ test("css(String|Hash)", function() {
 });
 
 test("css(String, Object)", function() {
-       expect(19);
+       expect(21);
+
        ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible');
        jQuery('#nothiddendiv').css("display", 'none');
        ok( !jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is hidden');
@@ -96,6 +97,13 @@ test("css(String, Object)", function() {
        // opera sometimes doesn't update 'display' correctly, see #2037
        jQuery("#t2037")[0].innerHTML = jQuery("#t2037")[0].innerHTML
        equals( jQuery("#t2037 .hidden").css("display"), "none", "Make sure browser thinks it is hidden" );
+
+       var div = jQuery("#nothiddendiv"),
+               display = div.css("display"),
+               ret = div.css("display", undefined);
+
+       equals( ret, div, "Make sure setting undefined returns the original set." );
+       equals( div.css("display"), display, "Make sure that the display wasn't changed." );
 });
 
 if(jQuery.browser.msie) {
@@ -104,13 +112,16 @@ if(jQuery.browser.msie) {
                jQuery('#foo').css("filter", "progid:DXImageTransform.Microsoft.Chroma(color='red');");
        equals( jQuery('#foo').css('opacity'), '1', "Assert opacity is 1 when a different filter is set in IE, #1438" );
 
-    var filterVal = "progid:DXImageTransform.Microsoft.alpha(opacity=30) progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";
+    var filterVal = "progid:DXImageTransform.Microsoft.Alpha(opacity=30) progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";
     var filterVal2 = "progid:DXImageTransform.Microsoft.alpha(opacity=100) progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";
+    var filterVal3 = "progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";
     jQuery('#foo').css("filter", filterVal);
     equals( jQuery('#foo').css("filter"), filterVal, "css('filter', val) works" );
-    jQuery('#foo').css("opacity", 1)
-    equals( jQuery('#foo').css("filter"), filterVal2, "Setting opacity in IE doesn't clobber other filters" );
-    equals( jQuery('#foo').css("opacity"), 1, "Setting opacity in IE with other filters works" )
+    jQuery('#foo').css("opacity", 1);
+    equals( jQuery('#foo').css("filter"), filterVal2, "Setting opacity in IE doesn't duplicate opacity filter" );
+    equals( jQuery('#foo').css("opacity"), 1, "Setting opacity in IE with other filters works" );
+    jQuery('#foo').css("filter", filterVal3).css("opacity", 1);
+    ok( jQuery('#foo').css("filter").indexOf(filterVal3) !== -1, "Setting opacity in IE doesn't clobber other filters" );
   });
 }