+if(jQuery.browser.msie) {
+ 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)";
+ 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" )
+ });
+}
+
+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();
+});
+