Prevent IE from throwing errors when setting RGBA values. Fixes #5509.
[jquery.git] / test / unit / css.js
index 24aba79..26dd704 100644 (file)
@@ -64,7 +64,7 @@ test("css(String|Hash)", function() {
 });
 
 test("css(String, Object)", function() {
-       expect(21);
+       expect(22);
 
        ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible');
        jQuery('#nothiddendiv').css("display", 'none');
@@ -104,6 +104,16 @@ test("css(String, Object)", function() {
 
        equals( ret, div, "Make sure setting undefined returns the original set." );
        equals( div.css("display"), display, "Make sure that the display wasn't changed." );
+
+       // Test for Bug #5509
+       var success = true;
+       try {
+               jQuery('#foo').css("backgroundColor", "rgba(0, 0, 0, 0.1)");
+       }
+       catch (e) {
+               success = false;
+       }
+       ok( success, "Setting RGBA values does not throw Error" );
 });
 
 if(jQuery.browser.msie) {
@@ -112,13 +122,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" );
   });
 }