2011-01-09 21:58:47 +00:00
module ( "css" , { teardown : moduleTeardown } ) ;
2009-04-20 17:05:18 +00:00
2009-03-22 23:25:03 +00:00
test ( "css(String|Hash)" , function ( ) {
2011-12-12 15:22:38 +00:00
expect ( 46 ) ;
2009-03-22 23:25:03 +00:00
2011-12-12 15:22:38 +00:00
equal ( jQuery ( "#qunit-fixture" ) . css ( "display" ) , "block" , "Check for css property \"display\"" ) ;
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" ) ;
var $child = jQuery ( "#nothiddendivchild" ) . css ( { width : "20%" , height : "20%" } ) ;
notEqual ( $child . css ( "width" ) , "20px" , "Retrieving a width percentage on the child of a hidden div returns percentage" ) ;
notEqual ( $child . css ( "height" ) , "20px" , "Retrieving a height percentage on the child of a hidden div returns percentage" ) ;
2009-03-22 23:25:03 +00:00
2011-04-11 20:33:29 +00:00
jQuery ( "#nothiddendiv" ) . css ( { display : "block" } ) ;
ok ( jQuery ( "#nothiddendiv" ) . is ( ":visible" ) , "Modified CSS display: Assert element is visible" ) ;
2011-09-15 13:27:36 +00:00
ok ( jQuery ( window ) . is ( ":visible" ) , "Calling is(':visible') on window does not throw an error in IE." ) ;
ok ( jQuery ( document ) . is ( ":visible" ) , "Calling is(':visible') on document does not throw an error in IE." ) ;
2009-03-22 23:25:03 +00:00
2010-10-22 04:28:33 +00:00
var div = jQuery ( "<div>" ) ;
2010-11-10 04:29:26 +00:00
// These should be "auto" (or some better value)
// temporarily provide "0px" for backwards compat
2011-11-06 20:27:42 +00:00
equal ( div . css ( "width" ) , "0px" , "Width on disconnected node." ) ;
equal ( div . css ( "height" ) , "0px" , "Height on disconnected node." ) ;
2010-10-22 04:28:33 +00:00
div . css ( { width : 4 , height : 4 } ) ;
2011-11-06 20:27:42 +00:00
equal ( div . css ( "width" ) , "4px" , "Width on disconnected node." ) ;
equal ( div . css ( "height" ) , "4px" , "Height on disconnected node." ) ;
2010-10-22 04:28:33 +00:00
2010-10-22 06:16:14 +00:00
var div2 = jQuery ( "<div style='display:none;'><input type='text' style='height:20px;'/><textarea style='height:20px;'/><div style='height:20px;'></div></div>" ) . appendTo ( "body" ) ;
2010-10-22 04:28:33 +00:00
2011-11-06 20:27:42 +00:00
equal ( div2 . find ( "input" ) . css ( "height" ) , "20px" , "Height on hidden input." ) ;
equal ( div2 . find ( "textarea" ) . css ( "height" ) , "20px" , "Height on hidden textarea." ) ;
equal ( div2 . find ( "div" ) . css ( "height" ) , "20px" , "Height on hidden textarea." ) ;
2010-10-22 04:28:33 +00:00
2010-10-22 04:29:52 +00:00
div2 . remove ( ) ;
2012-04-23 19:05:12 +00:00
// handle negative numbers by setting to zero #11604
2011-04-11 20:33:29 +00:00
jQuery ( "#nothiddendiv" ) . css ( { width : 1 , height : 1 } ) ;
2009-12-16 22:08:10 +00:00
2011-04-11 20:33:29 +00:00
var width = parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "width" ) ) , height = parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "height" ) ) ;
2012-05-16 14:08:50 +00:00
jQuery ( "#nothiddendiv" ) . css ( { overflow : "hidden" , width : - 1 , height : - 1 } ) ;
2012-04-23 19:05:12 +00:00
equal ( parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "width" ) ) , 0 , "Test negative width set to 0" ) ;
equal ( parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "height" ) ) , 0 , "Test negative height set to 0" ) ;
2009-04-22 05:23:53 +00:00
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "<div style='display: none;'>" ) . css ( "display" ) , "none" , "Styles on disconnected nodes" ) ;
2010-10-11 19:11:03 +00:00
2011-04-11 20:33:29 +00:00
jQuery ( "#floatTest" ) . css ( { "float" : "right" } ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#floatTest" ) . css ( "float" ) , "right" , "Modified CSS float using \"float\": Assert float is right" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#floatTest" ) . css ( { "font-size" : "30px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#floatTest" ) . css ( "font-size" ) , "30px" , "Modified CSS font-size: Assert font-size is 30px" ) ;
2011-04-11 20:33:29 +00:00
jQuery . each ( "0,0.25,0.5,0.75,1" . split ( "," ) , function ( i , n ) {
jQuery ( "#foo" ) . css ( { opacity : n } ) ;
2011-04-22 04:02:08 +00:00
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , parseFloat ( n ) , "Assert opacity is " + parseFloat ( n ) + " as a String" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( { opacity : parseFloat ( n ) } ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , parseFloat ( n ) , "Assert opacity is " + parseFloat ( n ) + " as a Number" ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( { opacity : "" } ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , "1" , "Assert opacity is 1 when set to an empty String" ) ;
2009-05-14 14:44:31 +00:00
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#empty" ) . css ( "opacity" ) , "0" , "Assert opacity is accessible via filter property set in stylesheet in IE" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#empty" ) . css ( { opacity : "1" } ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#empty" ) . css ( "opacity" ) , "1" , "Assert opacity is taken from style attribute when set vs stylesheet in IE with filters" ) ;
2011-04-11 19:14:41 +00:00
jQuery . support . opacity ?
ok ( true , "Requires the same number of tests" ) :
2011-04-11 19:33:15 +00:00
ok ( ~ jQuery ( "#empty" ) [ 0 ] . currentStyle . filter . indexOf ( "gradient" ) , "Assert setting opacity doesn't overwrite other filters of the stylesheet in IE" ) ;
2009-11-11 19:17:16 +00:00
2011-09-15 13:27:36 +00:00
div = jQuery ( "#nothiddendiv" ) ;
var child = jQuery ( "#nothiddendivchild" ) ;
2009-11-11 19:17:16 +00:00
2011-11-06 20:27:42 +00:00
equal ( parseInt ( div . css ( "fontSize" ) ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( div . css ( "font-size" ) ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( child . css ( "fontSize" ) ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( child . css ( "font-size" ) ) , 16 , "Verify fontSize px set." ) ;
2009-11-11 19:17:16 +00:00
2010-09-21 21:12:42 +00:00
child . css ( "height" , "100%" ) ;
2011-11-06 20:27:42 +00:00
equal ( child [ 0 ] . style . height , "100%" , "Make sure the height is being set correctly." ) ;
2010-09-21 21:12:42 +00:00
2009-11-11 19:17:16 +00:00
child . attr ( "class" , "em" ) ;
2011-11-06 20:27:42 +00:00
equal ( parseInt ( child . css ( "fontSize" ) ) , 32 , "Verify fontSize em set." ) ;
2009-11-11 19:17:16 +00:00
2009-12-03 17:34:27 +00:00
// Have to verify this as the result depends upon the browser's CSS
// support for font-size percentages
2009-11-11 19:17:16 +00:00
child . attr ( "class" , "prct" ) ;
2009-12-03 17:34:27 +00:00
var prctval = parseInt ( child . css ( "fontSize" ) ) , checkval = 0 ;
if ( prctval === 16 || prctval === 24 ) {
checkval = prctval ;
}
2011-11-06 20:27:42 +00:00
equal ( prctval , checkval , "Verify fontSize % set." ) ;
2009-12-10 04:51:58 +00:00
2011-11-06 20:27:42 +00:00
equal ( typeof child . css ( "width" ) , "string" , "Make sure that a string width is returned from css('width')." ) ;
2010-10-09 14:52:53 +00:00
var old = child [ 0 ] . style . height ;
// Test NaN
child . css ( "height" , parseFloat ( "zoo" ) ) ;
2011-11-06 20:27:42 +00:00
equal ( child [ 0 ] . style . height , old , "Make sure height isn't changed on NaN." ) ;
2010-10-09 14:52:53 +00:00
// Test null
child . css ( "height" , null ) ;
2011-11-06 20:27:42 +00:00
equal ( child [ 0 ] . style . height , old , "Make sure height isn't changed on null." ) ;
2010-10-09 14:52:53 +00:00
old = child [ 0 ] . style . fontSize ;
// Test NaN
child . css ( "font-size" , parseFloat ( "zoo" ) ) ;
2011-11-06 20:27:42 +00:00
equal ( child [ 0 ] . style . fontSize , old , "Make sure font-size isn't changed on NaN." ) ;
2010-10-09 14:52:53 +00:00
// Test null
child . css ( "font-size" , null ) ;
2011-11-06 20:27:42 +00:00
equal ( child [ 0 ] . style . fontSize , old , "Make sure font-size isn't changed on null." ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2011-04-04 18:21:15 +00:00
test ( "css() explicit and relative values" , function ( ) {
2011-08-16 22:00:44 +00:00
expect ( 29 ) ;
2011-04-11 20:33:29 +00:00
var $elem = jQuery ( "#nothiddendiv" ) ;
2011-04-04 23:48:24 +00:00
2011-05-13 16:14:31 +00:00
$elem . css ( { width : 1 , height : 1 , paddingLeft : "1px" , opacity : 1 } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "Initial css set or width/height works (hash)" ) ;
equal ( $elem . css ( "paddingLeft" ) , "1px" , "Initial css set of paddingLeft works (hash)" ) ;
equal ( $elem . css ( "opacity" ) , "1" , "Initial css set of opacity works (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( { width : "+=9" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 10 , "'+=9' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( { width : "-=9" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "'-=9' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( { width : "+=9px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 10 , "'+=9px' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( { width : "-=9px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "'-=9px' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "+=9" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 10 , "'+=9' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "-=9" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "'-=9' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "+=9px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 10 , "'+=9px' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "-=9px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "'-=9px' on width (params)" ) ;
2011-08-16 22:00:44 +00:00
$elem . css ( "width" , "-=-9px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 10 , "'-=-9px' on width (params)" ) ;
2011-08-16 22:00:44 +00:00
$elem . css ( "width" , "+=-9px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . width ( ) , 1 , "'+=-9px' on width (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { paddingLeft : "+=4" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4' on paddingLeft (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { paddingLeft : "-=4" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4' on paddingLeft (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { paddingLeft : "+=4px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4px' on paddingLeft (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { paddingLeft : "-=4px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4px' on paddingLeft (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { "padding-left" : "+=4" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4' on padding-left (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { "padding-left" : "-=4" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4' on padding-left (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { "padding-left" : "+=4px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4px' on padding-left (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { "padding-left" : "-=4px" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4px' on padding-left (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "paddingLeft" , "+=4" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4' on paddingLeft (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "paddingLeft" , "-=4" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4' on paddingLeft (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "padding-left" , "+=4px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "5px" , "'+=4px' on padding-left (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "padding-left" , "-=4px" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "paddingLeft" ) , "1px" , "'-=4px' on padding-left (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { opacity : "-=0.5" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "opacity" ) , "0.5" , "'-=0.5' on opacity (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( { opacity : "+=0.5" } ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "opacity" ) , "1" , "'+=0.5' on opacity (hash)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "opacity" , "-=0.5" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "opacity" ) , "0.5" , "'-=0.5' on opacity (params)" ) ;
2011-05-13 16:09:49 +00:00
$elem . css ( "opacity" , "+=0.5" ) ;
2011-11-06 20:27:42 +00:00
equal ( $elem . css ( "opacity" ) , "1" , "'+=0.5' on opacity (params)" ) ;
2011-04-04 18:21:15 +00:00
} ) ;
2009-03-22 23:25:03 +00:00
test ( "css(String, Object)" , function ( ) {
2010-10-09 14:42:01 +00:00
expect ( 22 ) ;
2010-09-28 15:53:09 +00:00
2011-04-11 20:33:29 +00:00
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" ) ;
jQuery ( "#nothiddendiv" ) . css ( "display" , "block" ) ;
ok ( jQuery ( "#nothiddendiv" ) . is ( ":visible" ) , "Modified CSS display: Assert element is visible" ) ;
2009-03-22 23:25:03 +00:00
2009-12-05 20:12:02 +00:00
jQuery ( "#nothiddendiv" ) . css ( "top" , "-1em" ) ;
ok ( jQuery ( "#nothiddendiv" ) . css ( "top" ) , - 16 , "Check negative number in EMs." ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#floatTest" ) . css ( "float" , "left" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#floatTest" ) . css ( "float" ) , "left" , "Modified CSS float using \"float\": Assert float is left" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#floatTest" ) . css ( "font-size" , "20px" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#floatTest" ) . css ( "font-size" ) , "20px" , "Modified CSS font-size: Assert font-size is 20px" ) ;
2009-03-22 23:25:03 +00:00
2011-04-11 20:33:29 +00:00
jQuery . each ( "0,0.25,0.5,0.75,1" . split ( "," ) , function ( i , n ) {
jQuery ( "#foo" ) . css ( "opacity" , n ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , parseFloat ( n ) , "Assert opacity is " + parseFloat ( n ) + " as a String" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "opacity" , parseFloat ( n ) ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , parseFloat ( n ) , "Assert opacity is " + parseFloat ( n ) + " as a Number" ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "opacity" , "" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , "1" , "Assert opacity is 1 when set to an empty String" ) ;
2009-03-22 23:25:03 +00:00
// using contents will get comments regular, text, and comment nodes
var j = jQuery ( "#nonnodes" ) . contents ( ) ;
2010-10-15 01:31:36 +00:00
j . css ( "overflow" , "visible" ) ;
2011-11-06 20:27:42 +00:00
equal ( j . css ( "overflow" ) , "visible" , "Check node,textnode,comment css works" ) ;
2009-03-22 23:25:03 +00:00
// opera sometimes doesn't update 'display' correctly, see #2037
2011-09-15 13:27:36 +00:00
jQuery ( "#t2037" ) [ 0 ] . innerHTML = jQuery ( "#t2037" ) [ 0 ] . innerHTML ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#t2037 .hidden" ) . css ( "display" ) , "none" , "Make sure browser thinks it is hidden" ) ;
2010-09-28 15:53:09 +00:00
var div = jQuery ( "#nothiddendiv" ) ,
display = div . css ( "display" ) ,
ret = div . css ( "display" , undefined ) ;
2011-11-06 20:27:42 +00:00
equal ( ret , div , "Make sure setting undefined returns the original set." ) ;
equal ( div . css ( "display" ) , display , "Make sure that the display wasn't changed." ) ;
2010-10-09 14:42:01 +00:00
// Test for Bug #5509
var success = true ;
try {
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "backgroundColor" , "rgba(0, 0, 0, 0.1)" ) ;
2010-10-09 14:42:01 +00:00
}
catch ( e ) {
success = false ;
}
ok ( success , "Setting RGBA values does not throw Error" ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2010-10-13 04:42:05 +00:00
if ( ! jQuery . support . opacity ) {
2010-10-28 16:58:03 +00:00
test ( "css(String, Object) for MSIE" , function ( ) {
// for #1438, IE throws JS error when filter exists but doesn't have opacity in it
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "filter" , "progid:DXImageTransform.Microsoft.Chroma(color='red');" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , "1" , "Assert opacity is 1 when a different filter is set in IE, #1438" ) ;
2010-10-28 16:58:03 +00:00
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)" ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "filter" , filterVal ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "filter" ) , filterVal , "css('filter', val) works" ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#foo" ) . css ( "opacity" , 1 ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#foo" ) . css ( "filter" ) , filterVal2 , "Setting opacity in IE doesn't duplicate opacity filter" ) ;
equal ( jQuery ( "#foo" ) . css ( "opacity" ) , 1 , "Setting opacity in IE with other filters works" ) ;
2011-04-11 20:33:29 +00:00
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" ) ;
2010-10-28 16:58:03 +00:00
} ) ;
2011-07-14 03:54:25 +00:00
test ( "Setting opacity to 1 properly removes filter: style (#6652)" , function ( ) {
var rfilter = /filter:[^;]*/i ,
test = jQuery ( "#t6652" ) . css ( "opacity" , 1 ) ,
test2 = test . find ( "div" ) . css ( "opacity" , 1 ) ;
function hasFilter ( elem ) {
var match = rfilter . exec ( elem [ 0 ] . style . cssText ) ;
if ( match ) {
return true ;
}
return false ;
}
expect ( 2 ) ;
ok ( ! hasFilter ( test ) , "Removed filter attribute on element without filter in stylesheet" ) ;
ok ( hasFilter ( test2 ) , "Filter attribute remains on element that had filter in stylesheet" ) ;
} ) ;
2009-12-01 19:40:28 +00:00
}
2009-07-12 18:31:26 +00:00
test ( "css(String, Function)" , function ( ) {
2010-01-07 18:44:53 +00:00
expect ( 3 ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
var sizes = [ "10px" , "20px" , "30px" ] ;
2010-12-30 06:34:48 +00:00
jQuery ( "<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
2010-01-07 18:44:53 +00:00
"<div class='cssFunction'></div></div>" )
. appendTo ( "body" ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
var index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( "font-size" , function ( ) {
var size = sizes [ index ] ;
index ++ ;
return size ;
} ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
jQuery ( "#cssFunctionTest div" ) . each ( function ( ) {
var computedSize = jQuery ( this ) . css ( "font-size" )
var expectedSize = sizes [ index ]
2011-11-06 20:27:42 +00:00
equal ( computedSize , expectedSize , "Div #" + index + " should be " + expectedSize ) ;
2010-01-07 18:44:53 +00:00
index ++ ;
} ) ;
jQuery ( "#cssFunctionTest" ) . remove ( ) ;
2009-07-12 18:31:26 +00:00
} ) ;
2010-01-07 18:52:20 +00:00
test ( "css(String, Function) with incoming value" , function ( ) {
expect ( 3 ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
var sizes = [ "10px" , "20px" , "30px" ] ;
2010-12-30 06:34:48 +00:00
jQuery ( "<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
2010-01-07 18:52:20 +00:00
"<div class='cssFunction'></div></div>" )
. appendTo ( "body" ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
var index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( "font-size" , function ( ) {
var size = sizes [ index ] ;
index ++ ;
return size ;
} ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( "font-size" , function ( i , computedSize ) {
var expectedSize = sizes [ index ]
2011-11-06 20:27:42 +00:00
equal ( computedSize , expectedSize , "Div #" + index + " should be " + expectedSize ) ;
2010-01-07 18:52:20 +00:00
index ++ ;
return computedSize ;
} ) ;
jQuery ( "#cssFunctionTest" ) . remove ( ) ;
} ) ;
2009-07-12 18:31:26 +00:00
test ( "css(Object) where values are Functions" , function ( ) {
2010-01-07 18:44:53 +00:00
expect ( 3 ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
var sizes = [ "10px" , "20px" , "30px" ] ;
2010-12-30 06:34:48 +00:00
jQuery ( "<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
2010-01-07 18:44:53 +00:00
"<div class='cssFunction'></div></div>" )
. appendTo ( "body" ) ;
var index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( { fontSize : function ( ) {
var size = sizes [ index ] ;
index ++ ;
return size ;
} } ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
jQuery ( "#cssFunctionTest div" ) . each ( function ( ) {
var computedSize = jQuery ( this ) . css ( "font-size" )
var expectedSize = sizes [ index ]
2011-11-06 20:27:42 +00:00
equal ( computedSize , expectedSize , "Div #" + index + " should be " + expectedSize ) ;
2010-01-07 18:44:53 +00:00
index ++ ;
} ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:44:53 +00:00
jQuery ( "#cssFunctionTest" ) . remove ( ) ;
2009-07-12 18:31:26 +00:00
} ) ;
2010-01-07 18:52:20 +00:00
test ( "css(Object) where values are Functions with incoming values" , function ( ) {
expect ( 3 ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
var sizes = [ "10px" , "20px" , "30px" ] ;
2010-12-30 06:34:48 +00:00
jQuery ( "<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
2010-01-07 18:52:20 +00:00
"<div class='cssFunction'></div></div>" )
. appendTo ( "body" ) ;
var index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( { fontSize : function ( ) {
var size = sizes [ index ] ;
index ++ ;
return size ;
} } ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( { "font-size" : function ( i , computedSize ) {
var expectedSize = sizes [ index ]
2011-11-06 20:27:42 +00:00
equal ( computedSize , expectedSize , "Div #" + index + " should be " + expectedSize ) ;
2010-01-07 18:52:20 +00:00
index ++ ;
return computedSize ;
} } ) ;
2010-12-30 06:34:48 +00:00
2010-01-07 18:52:20 +00:00
jQuery ( "#cssFunctionTest" ) . remove ( ) ;
} ) ;
2009-03-22 23:25:03 +00:00
test ( "jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)" , function ( ) {
expect ( 4 ) ;
var $checkedtest = jQuery ( "#checkedtest" ) ;
// IE6 was clearing "checked" in jQuery.css(elem, "height");
jQuery . css ( $checkedtest [ 0 ] , "height" ) ;
ok ( ! ! jQuery ( ":radio:first" , $checkedtest ) . attr ( "checked" ) , "Check first radio still checked." ) ;
ok ( ! jQuery ( ":radio:last" , $checkedtest ) . attr ( "checked" ) , "Check last radio still NOT checked." ) ;
ok ( ! ! jQuery ( ":checkbox:first" , $checkedtest ) . attr ( "checked" ) , "Check first checkbox still checked." ) ;
ok ( ! jQuery ( ":checkbox:last" , $checkedtest ) . attr ( "checked" ) , "Check last checkbox still NOT checked." ) ;
2009-04-20 17:05:18 +00:00
} ) ;
2010-10-05 18:23:10 +00:00
test ( ":visible selector works properly on table elements (bug #4512)" , function ( ) {
expect ( 1 ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#table" ) . html ( "<tr><td style='display:none'>cell</td><td>cell</td></tr>" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#table td:visible" ) . length , 1 , "hidden cell is not perceived as visible" ) ;
2010-10-05 18:23:10 +00:00
} ) ;
test ( ":visible selector works properly on children with a hidden parent (bug #4512)" , function ( ) {
expect ( 1 ) ;
2011-04-11 20:33:29 +00:00
jQuery ( "#table" ) . css ( "display" , "none" ) . html ( "<tr><td>cell</td><td>cell</td></tr>" ) ;
2011-11-06 20:27:42 +00:00
equal ( jQuery ( "#table td:visible" ) . length , 0 , "hidden cell children not perceived as visible" ) ;
2010-10-13 04:10:32 +00:00
} ) ;
2011-01-05 18:32:59 +00:00
test ( "internal ref to elem.runtimeStyle (bug #7608)" , function ( ) {
2011-01-10 18:17:08 +00:00
expect ( 1 ) ;
2011-01-18 00:55:40 +00:00
var result = true ;
2011-10-22 20:08:14 +00:00
2011-01-10 18:17:08 +00:00
try {
2011-01-18 00:55:40 +00:00
jQuery ( "#foo" ) . css ( { width : "0%" } ) . css ( "width" ) ;
2011-01-10 18:17:08 +00:00
} catch ( e ) {
result = false ;
}
ok ( result , "elem.runtimeStyle does not throw exception" ) ;
2011-01-05 18:32:59 +00:00
} ) ;
2011-03-24 19:41:46 +00:00
test ( "marginRight computed style (bug #3333)" , function ( ) {
expect ( 1 ) ;
var $div = jQuery ( "#foo" ) ;
$div . css ( {
width : "1px" ,
marginRight : 0
} ) ;
2011-11-06 20:27:42 +00:00
equal ( $div . css ( "marginRight" ) , "0px" , "marginRight correctly calculated with a width and display block" ) ;
2011-03-24 19:41:46 +00:00
} ) ;
2011-04-12 04:17:07 +00:00
2011-04-11 18:33:52 +00:00
test ( "jQuery.cssProps behavior, (bug #8402)" , function ( ) {
var div = jQuery ( "<div>" ) . appendTo ( document . body ) . css ( {
position : "absolute" ,
top : 0 ,
left : 10
} ) ;
jQuery . cssProps . top = "left" ;
equal ( div . css ( "top" ) , "10px" , "the fixed property is used when accessing the computed style" ) ;
div . css ( "top" , "100px" ) ;
equal ( div [ 0 ] . style . left , "100px" , "the fixed property is used when setting the style" ) ;
// cleanup jQuery.cssProps
jQuery . cssProps . top = undefined ;
2011-03-24 19:41:46 +00:00
} ) ;
2011-04-22 04:02:08 +00:00
test ( "widows & orphans #8936" , function ( ) {
2011-04-27 20:33:12 +00:00
var $p = jQuery ( "<p>" ) . appendTo ( "#qunit-fixture" ) ;
2011-04-22 04:02:08 +00:00
2011-04-25 17:10:23 +00:00
if ( "widows" in $p [ 0 ] . style ) {
2011-10-22 20:08:14 +00:00
expect ( 4 ) ;
2011-04-25 17:10:23 +00:00
$p . css ( {
widows : 0 ,
orphans : 0
} ) ;
2011-04-22 04:02:08 +00:00
2011-04-28 19:56:02 +00:00
equal ( $p . css ( "widows" ) || jQuery . style ( $p [ 0 ] , "widows" ) , 0 , "widows correctly start with value 0" ) ;
equal ( $p . css ( "orphans" ) || jQuery . style ( $p [ 0 ] , "orphans" ) , 0 , "orphans correctly start with value 0" ) ;
2011-04-22 04:02:08 +00:00
2011-04-25 17:10:23 +00:00
$p . css ( {
widows : 3 ,
orphans : 3
} ) ;
2011-04-28 19:56:02 +00:00
equal ( $p . css ( "widows" ) || jQuery . style ( $p [ 0 ] , "widows" ) , 3 , "widows correctly set to 3" ) ;
equal ( $p . css ( "orphans" ) || jQuery . style ( $p [ 0 ] , "orphans" ) , 3 , "orphans correctly set to 3" ) ;
2011-04-25 17:10:23 +00:00
} else {
expect ( 1 ) ;
ok ( true , "jQuery does not attempt to test for style props that definitely don't exist in older versions of IE" ) ;
}
2011-04-22 04:02:08 +00:00
$p . remove ( ) ;
} ) ;
2011-06-14 19:59:22 +00:00
2011-10-22 20:08:14 +00:00
test ( "can't get css for disconnected in IE<9, see #10254 and #8388" , function ( ) {
expect ( 2 ) ;
var span = jQuery ( "<span/>" ) . css ( "background-image" , "url(http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif)" ) ;
2011-10-23 19:31:50 +00:00
notEqual ( span . css ( "background-image" ) , null , "can't get background-image in IE<9, see #10254" ) ;
2011-10-22 20:08:14 +00:00
var div = jQuery ( "<div/>" ) . css ( "top" , 10 ) ;
equal ( div . css ( "top" ) , "10px" , "can't get top in IE<9, see #8388" ) ;
} ) ;
2011-12-06 21:44:32 +00:00
test ( "can't get background-position in IE<9, see #10796" , function ( ) {
var div = jQuery ( "<div/>" ) . appendTo ( "#qunit-fixture" ) ,
units = [
"0 0" ,
"12px 12px" ,
"13px 12em" ,
"12em 13px" ,
"12em center" ,
"+12em center" ,
"12.2em center" ,
"center center" ,
] ,
l = units . length ,
i = 0 ;
expect ( l ) ;
for ( ; i < l ; i ++ ) {
div . css ( "background-position" , units [ i ] ) ;
ok ( div . css ( "background-position" ) , "can't get background-position in IE<9, see #10796" ) ;
}
} ) ;
2012-05-25 01:39:31 +00:00
test ( "percentage position properties in IE<9 should not be incorrectly transformed to pixels, see #11311" , function ( ) {
expect ( 1 ) ;
var div = jQuery ( "<div style='position: absolute; width: 1px; height: 20px; bottom:50%;'></div>" ) . appendTo ( "#qunit-fixture" ) ;
ok ( window . getComputedStyle || div . css ( "bottom" ) === "50%" , "position properties get incorrectly transformed in IE<8, see #11311" ) ;
} ) ;
2011-06-14 19:59:22 +00:00
test ( "Do not append px to 'fill-opacity' #9548" , 1 , function ( ) {
var $div = jQuery ( "<div>" ) . appendTo ( "#qunit-fixture" ) ;
$div . css ( "fill-opacity" , 0 ) . animate ( { "fill-opacity" : 1.0 } , 0 , function ( ) {
equal ( jQuery ( this ) . css ( "fill-opacity" ) , 1 , "Do not append px to 'fill-opacity'" ) ;
} ) ;
2011-12-07 01:32:26 +00:00
} ) ;
test ( "outerWidth(true) and css('margin') returning % instead of px in Webkit, see #10639" , function ( ) {
var container = jQuery ( "<div/>" ) . width ( 400 ) . appendTo ( "#qunit-fixture" ) ,
el = jQuery ( "<div/>" ) . css ( { width : "50%" , marginRight : "50%" } ) . appendTo ( container ) ;
equal ( el . outerWidth ( true ) , 400 , "outerWidth(true) and css('margin') returning % instead of px in Webkit, see #10639" ) ;
2011-12-09 01:01:23 +00:00
} ) ;
2012-05-21 17:44:19 +00:00
test ( "css('width') and css('height') should respect box-sizing, see #11004" , function ( ) {
var el _dis = jQuery ( "<div style='width:300px;height:300px;margin:2px;padding:2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;'>test</div>" ) ,
el = el _dis . clone ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( el . css ( "width" ) , el . css ( "width" , el . css ( "width" ) ) . css ( "width" ) , "css('width') is not respecting box-sizing, see #11004" ) ;
equal ( el _dis . css ( "width" ) , el _dis . css ( "width" , el _dis . css ( "width" ) ) . css ( "width" ) , "css('width') is not respecting box-sizing for disconnected element, see #11004" ) ;
equal ( el . css ( "height" ) , el . css ( "height" , el . css ( "height" ) ) . css ( "height" ) , "css('height') is not respecting box-sizing, see #11004" ) ;
equal ( el _dis . css ( "height" ) , el _dis . css ( "height" , el _dis . css ( "height" ) ) . css ( "height" ) , "css('height') is not respecting box-sizing for disconnected element, see #11004" ) ;
2012-04-10 21:18:00 +00:00
} ) ;
2011-12-09 01:01:23 +00:00
test ( "cssHooks - expand" , function ( ) {
expect ( 15 ) ;
var result ,
properties = {
margin : [ "marginTop" , "marginRight" , "marginBottom" , "marginLeft" ] ,
borderWidth : [ "borderTopWidth" , "borderRightWidth" , "borderBottomWidth" , "borderLeftWidth" ] ,
padding : [ "paddingTop" , "paddingRight" , "paddingBottom" , "paddingLeft" ]
} ;
jQuery . each ( properties , function ( property , keys ) {
var hook = jQuery . cssHooks [ property ] ,
expected = { } ;
jQuery . each ( keys , function ( _ , key ) {
expected [ key ] = 10 ;
} ) ;
result = hook . expand ( 10 ) ;
deepEqual ( result , expected , property + " expands properly with a number" ) ;
jQuery . each ( keys , function ( _ , key ) {
expected [ key ] = "10px" ;
} ) ;
result = hook . expand ( "10px" ) ;
deepEqual ( result , expected , property + " expands properly with '10px'" ) ;
expected [ keys [ 1 ] ] = expected [ keys [ 3 ] ] = "20px" ;
result = hook . expand ( "10px 20px" ) ;
deepEqual ( result , expected , property + " expands properly with '10px 20px'" ) ;
expected [ keys [ 2 ] ] = "30px" ;
result = hook . expand ( "10px 20px 30px" ) ;
deepEqual ( result , expected , property + " expands properly with '10px 20px 30px'" ) ;
expected [ keys [ 3 ] ] = "40px" ;
result = hook . expand ( "10px 20px 30px 40px" ) ;
deepEqual ( result , expected , property + " expands properly with '10px 20px 30px 40px'" ) ;
} ) ;
2011-10-22 20:08:14 +00:00
} ) ;