+
+ 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." );
+
+ // 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.support.opacity ) {
+ test("css(String, Object) for MSIE", function() {
+ // for #1438, IE throws JS error when filter exists but doesn't have opacity in it
+ 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 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 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" );
+ });
+}
+
+test("css(String, Function)", function() {
+ expect(3);
+
+ var sizes = ["10px", "20px", "30px"];
+
+ jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div></div>")
+ .appendTo("body");
+
+ var index = 0;
+
+ jQuery("#cssFunctionTest div").css("font-size", function() {
+ var size = sizes[index];
+ index++;
+ return size;
+ });
+
+ index = 0;
+
+ jQuery("#cssFunctionTest div").each(function() {
+ var computedSize = jQuery(this).css("font-size")
+ var expectedSize = sizes[index]
+ equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
+ index++;
+ });
+
+ jQuery("#cssFunctionTest").remove();
+});
+
+test("css(String, Function) with incoming value", function() {
+ expect(3);
+
+ var sizes = ["10px", "20px", "30px"];
+
+ jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div></div>")
+ .appendTo("body");
+
+ var index = 0;
+
+ jQuery("#cssFunctionTest div").css("font-size", function() {
+ var size = sizes[index];
+ index++;
+ return size;
+ });
+
+ index = 0;
+
+ jQuery("#cssFunctionTest div").css("font-size", function(i, computedSize) {
+ var expectedSize = sizes[index]
+ equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
+ index++;
+ return computedSize;
+ });
+
+ jQuery("#cssFunctionTest").remove();
+});
+
+test("css(Object) where values are Functions", function() {
+ expect(3);
+
+ var sizes = ["10px", "20px", "30px"];
+
+ jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div></div>")
+ .appendTo("body");
+
+ var index = 0;
+
+ jQuery("#cssFunctionTest div").css({fontSize: function() {
+ var size = sizes[index];
+ index++;
+ return size;
+ }});
+
+ index = 0;
+
+ jQuery("#cssFunctionTest div").each(function() {
+ var computedSize = jQuery(this).css("font-size")
+ var expectedSize = sizes[index]
+ equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
+ index++;
+ });
+
+ jQuery("#cssFunctionTest").remove();
+});
+
+test("css(Object) where values are Functions with incoming values", function() {
+ expect(3);
+
+ var sizes = ["10px", "20px", "30px"];
+
+ jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div>" +
+ "<div class='cssFunction'></div></div>")
+ .appendTo("body");
+
+ var index = 0;
+
+ jQuery("#cssFunctionTest div").css({fontSize: function() {
+ var size = sizes[index];
+ index++;
+ return size;
+ }});
+
+ index = 0;
+
+ jQuery("#cssFunctionTest div").css({"font-size": function(i, computedSize) {
+ var expectedSize = sizes[index]
+ equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize );
+ index++;
+ return computedSize;
+ }});
+
+ jQuery("#cssFunctionTest").remove();