2012-06-11 01:54:16 +00:00
if ( jQuery . css ) {
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 ( ) {
2013-10-15 19:48:53 +00:00
expect ( 42 ) ;
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\"" ) ;
2013-04-09 15:45:09 +00:00
var $child , div , div2 , width , height , child , prctval , checkval , old ;
$child = jQuery ( "#nothiddendivchild" ) . css ( { "width" : "20%" , "height" : "20%" } ) ;
2011-12-12 15:22:38 +00:00
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
2013-10-15 19:48:53 +00:00
div = jQuery ( "<div/>" ) ;
2010-10-22 04:28:33 +00:00
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
2012-07-05 19:52:13 +00:00
div . css ( { "width" : 4 , "height" : 4 } ) ;
2010-10-22 04:28:33 +00:00
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
2013-04-09 15:45:09 +00:00
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
2012-07-05 19:52:13 +00:00
jQuery ( "#nothiddendiv" ) . css ( { "width" : 1 , "height" : 1 } ) ;
2009-12-16 22:08:10 +00:00
2013-04-09 15:45:09 +00:00
width = parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "width" ) ) ;
height = parseFloat ( jQuery ( "#nothiddendiv" ) . css ( "height" ) ) ;
2012-07-05 19:52:13 +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
2013-10-15 19:48:53 +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 ) {
2012-07-05 19:52:13 +00:00
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" ) ;
2012-07-05 19:52:13 +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
} ) ;
2012-07-05 19:52:13 +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" ) ;
2012-07-05 19:52:13 +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" ) ;
2009-11-11 19:17:16 +00:00
2011-09-15 13:27:36 +00:00
div = jQuery ( "#nothiddendiv" ) ;
2013-04-09 15:45:09 +00:00
child = jQuery ( "#nothiddendivchild" ) ;
2009-11-11 19:17:16 +00:00
2012-06-21 19:30:24 +00:00
equal ( parseInt ( div . css ( "fontSize" ) , 10 ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( div . css ( "font-size" ) , 10 ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( child . css ( "fontSize" ) , 10 ) , 16 , "Verify fontSize px set." ) ;
equal ( parseInt ( child . css ( "font-size" ) , 10 ) , 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" ) ;
2012-06-21 19:30:24 +00:00
equal ( parseInt ( child . css ( "fontSize" ) , 10 ) , 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" ) ;
2013-04-09 15:45:09 +00:00
prctval = parseInt ( child . css ( "fontSize" ) , 10 ) ;
checkval = 0 ;
2009-12-03 17:34:27 +00:00
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
2013-04-09 15:45:09 +00:00
old = child [ 0 ] . style . height ;
2010-10-09 14:52:53 +00:00
// 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." ) ;
2013-10-15 19:48:53 +00:00
strictEqual ( child . css ( "x-fake" ) , undefined , "Make sure undefined is returned from css(nonexistent)." ) ;
div = jQuery ( "<div/>" ) . css ( { position : "absolute" , "z-index" : 1000 } ) . appendTo ( "#qunit-fixture" ) ;
strictEqual ( div . css ( "z-index" ) , "1000" ,
"Make sure that a string z-index is returned from css('z-index') (#14432)." ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2013-08-07 21:10:35 +00:00
test ( "css() explicit and relative values" , 29 , function ( ) {
2011-04-11 20:33:29 +00:00
var $elem = jQuery ( "#nothiddendiv" ) ;
2011-04-04 23:48:24 +00:00
2012-07-05 19:52:13 +00:00
$elem . css ( { "width" : 1 , "height" : 1 , "paddingLeft" : "1px" , "opacity" : 1 } ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "Initial css set or width/height works (hash)" ) ;
2011-11-06 20:27:42 +00:00
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" } ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "10px" , "'+=9' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
2012-07-05 19:52:13 +00:00
$elem . css ( { "width" : "-=9" } ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "'-=9' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
2012-07-05 19:52:13 +00:00
$elem . css ( { "width" : "+=9px" } ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "10px" , "'+=9px' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
2012-07-05 19:52:13 +00:00
$elem . css ( { "width" : "-=9px" } ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "'-=9px' on width (hash)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "+=9" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "10px" , "'+=9' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "-=9" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "'-=9' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "+=9px" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "10px" , "'+=9px' on width (params)" ) ;
2011-04-04 23:48:24 +00:00
$elem . css ( "width" , "-=9px" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "'-=9px' on width (params)" ) ;
2011-08-16 22:00:44 +00:00
$elem . css ( "width" , "-=-9px" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "10px" , "'-=-9px' on width (params)" ) ;
2011-08-16 22:00:44 +00:00
$elem . css ( "width" , "+=-9px" ) ;
2012-06-05 19:29:46 +00:00
equal ( $elem . css ( "width" ) , "1px" , "'+=-9px' on width (params)" ) ;
2011-05-13 16:09:49 +00:00
2012-07-05 19:52:13 +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
2012-07-05 19:52:13 +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
2012-07-05 19:52:13 +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
2012-07-05 19:52:13 +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
2012-07-05 19:52:13 +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
2012-07-05 19:52:13 +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 ( ) {
2014-12-09 21:30:22 +00:00
expect ( 19 ) ;
2013-04-09 15:45:09 +00:00
var j , div , display , ret , success ;
2009-03-22 23:25:03 +00:00
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
2013-04-09 15:45:09 +00:00
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" ) ;
equal ( jQuery ( "#t2037 .hidden" ) . css ( "display" ) , "none" , "Make sure browser thinks it is hidden" ) ;
2010-09-28 15:53:09 +00:00
2013-04-09 15:45:09 +00:00
div = jQuery ( "#nothiddendiv" ) ;
display = div . css ( "display" ) ;
ret = div . css ( "display" , undefined ) ;
2010-09-28 15:53:09 +00:00
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
2013-04-09 15:45:09 +00:00
success = true ;
2010-10-09 14:42:01 +00:00
try {
2014-03-09 23:59:14 +00:00
jQuery ( "#foo" ) . css ( "backgroundColor" , "rgba(0, 0, 0, 0.1)" ) ;
2010-10-09 14:42:01 +00:00
}
catch ( e ) {
success = false ;
}
2014-03-09 23:59:14 +00:00
ok ( success , "Setting RGBA values does not throw Error (#5509)" ) ;
jQuery ( "#foo" ) . css ( "font" , "7px/21px sans-serif" ) ;
strictEqual ( jQuery ( "#foo" ) . css ( "line-height" ) , "21px" ,
"Set font shorthand property (#14759)" ) ;
2009-03-22 23:25:03 +00:00
} ) ;
2012-12-11 13:06:48 +00:00
test ( "css(Array)" , function ( ) {
expect ( 2 ) ;
var expectedMany = {
"overflow" : "visible" ,
"width" : "16px"
} ,
expectedSingle = {
"width" : "16px"
} ,
elem = jQuery ( "<div></div>" ) . appendTo ( "#qunit-fixture" ) ;
deepEqual ( elem . css ( expectedMany ) . css ( [ "overflow" , "width" ] ) , expectedMany , "Getting multiple element array" ) ;
deepEqual ( elem . css ( expectedSingle ) . css ( [ "width" ] ) , expectedSingle , "Getting single element array" ) ;
} ) ;
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
2013-04-09 15:45:09 +00:00
var index ,
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
2013-04-09 15:45:09 +00:00
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 ( ) {
2013-04-09 15:45:09 +00:00
var computedSize = jQuery ( this ) . css ( "font-size" ) ,
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
2013-04-09 15:45:09 +00:00
var index ,
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
2013-04-09 15:45:09 +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 ( ) {
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 ) {
2012-06-21 19:30:24 +00:00
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
2013-04-09 15:45:09 +00:00
var index ,
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" ) ;
2013-04-09 15:45:09 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2012-07-05 19:52:13 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( { "fontSize" : function ( ) {
2010-01-07 18:44:53 +00:00
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 ( ) {
2013-04-09 15:45:09 +00:00
var computedSize = jQuery ( this ) . css ( "font-size" ) ,
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
2013-04-09 15:45:09 +00:00
var index ,
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" ) ;
2013-04-09 15:45:09 +00:00
index = 0 ;
2010-12-30 06:34:48 +00:00
2012-07-05 19:52:13 +00:00
jQuery ( "#cssFunctionTest div" ) . css ( { "fontSize" : function ( ) {
2010-01-07 18:52:20 +00:00
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 ) {
2012-06-21 19:30:24 +00:00
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 ( ) ;
} ) ;
2012-05-29 02:25:04 +00:00
test ( "show(); hide()" , function ( ) {
2013-12-11 16:34:05 +00:00
expect ( 4 ) ;
var hiddendiv , div ;
2013-04-09 15:45:09 +00:00
hiddendiv = jQuery ( "div.hidden" ) ;
2012-05-29 02:25:04 +00:00
hiddendiv . hide ( ) ;
equal ( hiddendiv . css ( "display" ) , "none" , "Non-detached div hidden" ) ;
hiddendiv . show ( ) ;
equal ( hiddendiv . css ( "display" ) , "block" , "Pre-hidden div shown" ) ;
2013-04-09 15:45:09 +00:00
div = jQuery ( "<div>" ) . hide ( ) ;
2012-05-29 02:25:04 +00:00
equal ( div . css ( "display" ) , "none" , "Detached div hidden" ) ;
div . appendTo ( "#qunit-fixture" ) . show ( ) ;
equal ( div . css ( "display" ) , "block" , "Pre-hidden div shown" ) ;
2013-12-11 16:34:05 +00:00
} ) ;
test ( "show();" , function ( ) {
expect ( 18 ) ;
2012-05-29 02:25:04 +00:00
2013-12-11 16:34:05 +00:00
var hiddendiv , div , pass , old , test ;
2012-05-29 02:25:04 +00:00
hiddendiv = jQuery ( "div.hidden" ) ;
equal ( jQuery . css ( hiddendiv [ 0 ] , "display" ) , "none" , "hiddendiv is display: none" ) ;
hiddendiv . css ( "display" , "block" ) ;
equal ( jQuery . css ( hiddendiv [ 0 ] , "display" ) , "block" , "hiddendiv is display: block" ) ;
hiddendiv . show ( ) ;
equal ( jQuery . css ( hiddendiv [ 0 ] , "display" ) , "block" , "hiddendiv is display: block" ) ;
hiddendiv . css ( "display" , "" ) ;
2013-04-09 15:45:09 +00:00
pass = true ;
2012-05-29 02:25:04 +00:00
div = jQuery ( "#qunit-fixture div" ) ;
div . show ( ) . each ( function ( ) {
2013-04-09 15:45:09 +00:00
if ( this . style . display === "none" ) {
2012-06-21 19:30:24 +00:00
pass = false ;
}
2012-05-29 02:25:04 +00:00
} ) ;
ok ( pass , "Show" ) ;
// #show-tests * is set display: none in CSS
jQuery ( "#qunit-fixture" ) . append ( "<div id='show-tests'><div><p><a href='#'></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div><table id='test-table'></table>" ) ;
2013-04-09 15:45:09 +00:00
old = jQuery ( "#test-table" ) . show ( ) . css ( "display" ) !== "table" ;
2012-05-29 02:25:04 +00:00
jQuery ( "#test-table" ) . remove ( ) ;
2013-04-09 15:45:09 +00:00
test = {
2012-05-29 02:25:04 +00:00
"div" : "block" ,
"p" : "block" ,
"a" : "inline" ,
"code" : "inline" ,
"pre" : "block" ,
"span" : "inline" ,
"table" : old ? "block" : "table" ,
"thead" : old ? "block" : "table-header-group" ,
"tbody" : old ? "block" : "table-row-group" ,
"tr" : old ? "block" : "table-row" ,
"th" : old ? "block" : "table-cell" ,
"td" : old ? "block" : "table-cell" ,
"ul" : "block" ,
"li" : old ? "block" : "list-item"
} ;
jQuery . each ( test , function ( selector , expected ) {
var elem = jQuery ( selector , "#show-tests" ) . show ( ) ;
equal ( elem . css ( "display" ) , expected , "Show using correct display type for " + selector ) ;
} ) ;
// Make sure that showing or hiding a text node doesn't cause an error
jQuery ( "<div>test</div> text <span>test</span>" ) . show ( ) . remove ( ) ;
jQuery ( "<div>test</div> text <span>test</span>" ) . hide ( ) . remove ( ) ;
} ) ;
test ( "show() resolves correct default display #8099" , function ( ) {
expect ( 7 ) ;
var tt8099 = jQuery ( "<tt/>" ) . appendTo ( "body" ) ,
2012-07-05 19:52:13 +00:00
dfn8099 = jQuery ( "<dfn/>" , { "html" : "foo" } ) . appendTo ( "body" ) ;
2012-05-29 02:25:04 +00:00
equal ( tt8099 . css ( "display" ) , "none" , "default display override for all tt" ) ;
equal ( tt8099 . show ( ) . css ( "display" ) , "inline" , "Correctly resolves display:inline" ) ;
equal ( jQuery ( "#foo" ) . hide ( ) . show ( ) . css ( "display" ) , "block" , "Correctly resolves display:block after hide/show" ) ;
equal ( tt8099 . hide ( ) . css ( "display" ) , "none" , "default display override for all tt" ) ;
equal ( tt8099 . show ( ) . css ( "display" ) , "inline" , "Correctly resolves display:inline" ) ;
equal ( dfn8099 . css ( "display" ) , "none" , "default display override for all dfn" ) ;
equal ( dfn8099 . show ( ) . css ( "display" ) , "inline" , "Correctly resolves display:inline" ) ;
tt8099 . remove ( ) ;
dfn8099 . remove ( ) ;
} ) ;
2012-09-28 20:56:49 +00:00
test ( "show() resolves correct default display for detached nodes" , function ( ) {
expect ( 13 ) ;
2012-05-29 02:25:04 +00:00
2012-09-28 20:56:49 +00:00
var div , span , tr , trDisplay ;
2012-05-29 02:25:04 +00:00
div = jQuery ( "<div class='hidden'>" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a detached, pre-hidden( through stylesheets ) div is visible." ) ;
div = jQuery ( "<div style='display: none'>" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a detached, pre-hidden( through inline style ) div is visible." ) ;
span = jQuery ( "<span class='hidden'/>" ) ;
span . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( span . css ( "display" ) , "inline" , "Make sure a detached, pre-hidden( through stylesheets ) span has default display." ) ;
span = jQuery ( "<span style='display: inline'/>" ) ;
span . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( span . css ( "display" ) , "inline" , "Make sure a detached, pre-hidden( through inline style ) span has default display." ) ;
div = jQuery ( "<div><div class='hidden'></div></div>" ) . children ( "div" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a detached, pre-hidden( through stylesheets ) div inside another visible div is visible." ) ;
div = jQuery ( "<div><div style='display: none'></div></div>" ) . children ( "div" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a detached, pre-hidden( through inline style ) div inside another visible div is visible." ) ;
div = jQuery ( "div.hidden" ) ;
div . detach ( ) . show ( ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a detached( through detach() ), pre-hidden div is visible." ) ;
div . remove ( ) ;
span = jQuery ( "<span>" ) ;
span . appendTo ( "#qunit-fixture" ) . detach ( ) . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( span . css ( "display" ) , "inline" , "Make sure a detached( through detach() ), pre-hidden span has default display." ) ;
span . remove ( ) ;
div = jQuery ( "<div>" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
ok ( ! ! div . get ( 0 ) . style . display , "Make sure not hidden div has a inline style." ) ;
2012-07-02 15:30:22 +00:00
div . remove ( ) ;
2012-05-29 02:25:04 +00:00
div = jQuery ( document . createElement ( "div" ) ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "block" , "Make sure a pre-created element has default display." ) ;
2012-07-02 15:30:22 +00:00
div . remove ( ) ;
2012-05-29 02:25:04 +00:00
div = jQuery ( "<div style='display: inline'/>" ) ;
div . show ( ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "inline" , "Make sure that element has same display when it was created." ) ;
2012-07-02 15:30:22 +00:00
div . remove ( ) ;
2012-09-28 20:56:49 +00:00
tr = jQuery ( "<tr/>" ) ;
jQuery ( "#table" ) . append ( tr ) ;
trDisplay = tr . css ( "display" ) ;
tr . detach ( ) . hide ( ) . show ( ) ;
equal ( tr [ 0 ] . style . display , trDisplay , "For detached tr elements, display should always be like for attached trs" ) ;
tr . remove ( ) ;
2013-04-08 22:18:45 +00:00
span = jQuery ( "<span/>" ) . hide ( ) . show ( ) ;
2012-09-28 20:56:49 +00:00
equal ( span [ 0 ] . style . display , "inline" , "For detached span elements, display should always be inline" ) ;
span . remove ( ) ;
2012-05-29 02:25:04 +00:00
} ) ;
2013-09-17 11:47:31 +00:00
test ( "show() resolves correct default display #10227" , 4 , function ( ) {
var html = jQuery ( document . documentElement ) ,
body = jQuery ( "body" ) ;
2012-10-04 17:25:50 +00:00
2013-09-17 11:47:31 +00:00
body . append ( "<p class='ddisplay'>a<style>body{display:none}</style></p>" ) ;
2012-10-04 17:25:50 +00:00
2013-09-17 11:47:31 +00:00
equal ( body . css ( "display" ) , "none" , "Initial display for body element: none" ) ;
2012-10-04 17:25:50 +00:00
2012-12-08 23:04:13 +00:00
body . show ( ) ;
2013-09-17 11:47:31 +00:00
equal ( body . css ( "display" ) , "block" , "Correct display for body element: block" ) ;
body . append ( "<p class='ddisplay'>a<style>html{display:none}</style></p>" ) ;
equal ( html . css ( "display" ) , "none" , "Initial display for html element: none" ) ;
html . show ( ) ;
equal ( html . css ( "display" ) , "block" , "Correct display for html element: block" ) ;
2012-10-04 17:25:50 +00:00
2013-09-17 11:47:31 +00:00
jQuery ( ".ddisplay" ) . remove ( ) ;
2012-12-08 23:04:13 +00:00
} ) ;
test ( "show() resolves correct default display when iframe display:none #12904" , function ( ) {
expect ( 2 ) ;
var ddisplay = jQuery (
"<p id='ddisplay'>a<style>p{display:none}iframe{display:none !important}</style></p>"
) . appendTo ( "body" ) ;
equal ( ddisplay . css ( "display" ) , "none" , "Initial display: none" ) ;
ddisplay . show ( ) ;
equal ( ddisplay . css ( "display" ) , "block" , "Correct display: block" ) ;
2012-10-04 17:25:50 +00:00
2012-12-08 23:04:13 +00:00
ddisplay . remove ( ) ;
2012-10-04 17:25:50 +00:00
} ) ;
2012-05-29 02:25:04 +00:00
test ( "toggle()" , function ( ) {
2012-07-26 01:58:59 +00:00
expect ( 9 ) ;
2013-04-09 15:45:09 +00:00
var div , oldHide ,
2012-07-26 01:58:59 +00:00
x = jQuery ( "#foo" ) ;
2012-05-29 02:25:04 +00:00
ok ( x . is ( ":visible" ) , "is visible" ) ;
x . toggle ( ) ;
ok ( x . is ( ":hidden" ) , "is hidden" ) ;
x . toggle ( ) ;
ok ( x . is ( ":visible" ) , "is visible again" ) ;
x . toggle ( true ) ;
ok ( x . is ( ":visible" ) , "is visible" ) ;
x . toggle ( false ) ;
ok ( x . is ( ":hidden" ) , "is hidden" ) ;
x . toggle ( true ) ;
ok ( x . is ( ":visible" ) , "is visible again" ) ;
2012-07-26 01:58:59 +00:00
div = jQuery ( "<div style='display:none'><div></div></div>" ) . appendTo ( "#qunit-fixture" ) ;
x = div . find ( "div" ) ;
strictEqual ( x . toggle ( ) . css ( "display" ) , "none" , "is hidden" ) ;
strictEqual ( x . toggle ( ) . css ( "display" ) , "block" , "is visible" ) ;
2012-07-26 01:24:49 +00:00
// Ensure hide() is called when toggled (#12148)
2013-04-09 15:45:09 +00:00
oldHide = jQuery . fn . hide ;
2012-07-26 01:24:49 +00:00
jQuery . fn . hide = function ( ) {
ok ( true , name + " method called on toggle" ) ;
return oldHide . apply ( this , arguments ) ;
} ;
x . toggle ( name === "show" ) ;
jQuery . fn . hide = oldHide ;
2012-05-29 02:25:04 +00:00
} ) ;
test ( "hide hidden elements (bug #7141)" , function ( ) {
expect ( 3 ) ;
var div = jQuery ( "<div style='display:none'></div>" ) . appendTo ( "#qunit-fixture" ) ;
equal ( div . css ( "display" ) , "none" , "Element is hidden by default" ) ;
div . hide ( ) ;
ok ( ! jQuery . _data ( div , "olddisplay" ) , "olddisplay is undefined after hiding an already-hidden element" ) ;
div . show ( ) ;
equal ( div . css ( "display" ) , "block" , "Show a double-hidden element" ) ;
div . 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" ) ;
jQuery . css ( $checkedtest [ 0 ] , "height" ) ;
2013-02-19 04:52:29 +00:00
ok ( jQuery ( "input[type='radio']" , $checkedtest ) . first ( ) . attr ( "checked" ) , "Check first radio still checked." ) ;
ok ( ! jQuery ( "input[type='radio']" , $checkedtest ) . last ( ) . attr ( "checked" ) , "Check last radio still NOT checked." ) ;
ok ( jQuery ( "input[type='checkbox']" , $checkedtest ) . first ( ) . attr ( "checked" ) , "Check first checkbox still checked." ) ;
ok ( ! jQuery ( "input[type='checkbox']" , $checkedtest ) . last ( ) . attr ( "checked" ) , "Check last checkbox still NOT checked." ) ;
2009-04-20 17:05:18 +00:00
} ) ;
2010-10-05 18:23:10 +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 {
2012-07-05 19:52:13 +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 ( {
2012-07-05 19:52:13 +00:00
"width" : "1px" ,
"marginRight" : 0
2011-03-24 19:41:46 +00:00
} ) ;
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
2012-07-23 01:58:23 +00:00
test ( "box model properties incorrectly returning % instead of px, see #10639 and #12088" , function ( ) {
2012-10-15 16:11:20 +00:00
expect ( 2 ) ;
2012-07-23 01:58:23 +00:00
var container = jQuery ( "<div/>" ) . width ( 400 ) . appendTo ( "#qunit-fixture" ) ,
el = jQuery ( "<div/>" ) . css ( { "width" : "50%" , "marginRight" : "50%" } ) . appendTo ( container ) ,
el2 = jQuery ( "<div/>" ) . css ( { "width" : "50%" , "minWidth" : "300px" , "marginLeft" : "25%" } ) . appendTo ( container ) ;
equal ( el . css ( "marginRight" ) , "200px" , "css('marginRight') returning % instead of px, see #10639" ) ;
equal ( el2 . css ( "marginLeft" ) , "100px" , "css('marginLeft') returning incorrect pixel value, see #12088" ) ;
} ) ;
2011-04-11 18:33:52 +00:00
test ( "jQuery.cssProps behavior, (bug #8402)" , function ( ) {
2012-10-15 16:11:20 +00:00
expect ( 2 ) ;
2011-04-11 18:33:52 +00:00
var div = jQuery ( "<div>" ) . appendTo ( document . body ) . css ( {
2012-07-05 19:52:13 +00:00
"position" : "absolute" ,
"top" : 0 ,
"left" : 10
2011-04-11 18:33:52 +00:00
} ) ;
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
2014-04-18 00:07:17 +00:00
expect ( 2 ) ;
2013-09-07 00:46:55 +00:00
$p . css ( {
"widows" : 3 ,
"orphans" : 3
} ) ;
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-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 ) ;
2013-04-09 15:45:09 +00:00
var span , div ;
span = jQuery ( "<span/>" ) . css ( "background-image" , "url(data/1x1.jpg)" ) ;
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
2013-04-09 15:45:09 +00:00
div = jQuery ( "<div/>" ) . css ( "top" , 10 ) ;
2011-10-22 20:08:14 +00:00
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" ,
2012-06-21 19:30:24 +00:00
"center center"
2011-12-06 21:44:32 +00:00
] ,
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-06-16 01:20:41 +00:00
if ( jQuery . fn . offset ) {
test ( "percentage properties for left and top should be transformed to pixels, see #9505" , function ( ) {
expect ( 2 ) ;
var parent = jQuery ( "<div style='position:relative;width:200px;height:200px;margin:0;padding:0;border-width:0'></div>" ) . appendTo ( "#qunit-fixture" ) ,
div = jQuery ( "<div style='position: absolute; width: 20px; height: 20px; top:50%; left:50%'></div>" ) . appendTo ( parent ) ;
equal ( div . css ( "top" ) , "100px" , "position properties not transformed to pixels, see #9505" ) ;
equal ( div . css ( "left" ) , "100px" , "position properties not transformed to pixels, see #9505" ) ;
} ) ;
}
2012-12-01 22:11:56 +00:00
test ( "Do not append px (#9548, #12990)" , function ( ) {
expect ( 2 ) ;
var $div = jQuery ( "<div>" ) . appendTo ( "#qunit-fixture" ) ;
2012-10-15 16:11:20 +00:00
2012-12-01 22:11:56 +00:00
$div . css ( "fill-opacity" , 1 ) ;
2014-02-13 23:57:27 +00:00
// Support: Android 2.3 (no support for fill-opacity)
if ( $div . css ( "fill-opacity" ) ) {
equal ( $div . css ( "fill-opacity" ) , 1 , "Do not append px to 'fill-opacity'" ) ;
} else {
ok ( true , "No support for fill-opacity CSS property" ) ;
}
2012-12-01 22:11:56 +00:00
$div . css ( "column-count" , 1 ) ;
if ( $div . css ( "column-count" ) ) {
equal ( $div . css ( "column-count" ) , 1 , "Do not append px to 'column-count'" ) ;
} else {
ok ( true , "No support for column-count CSS property" ) ;
}
2011-12-07 01:32:26 +00:00
} ) ;
2012-05-21 17:44:19 +00:00
test ( "css('width') and css('height') should respect box-sizing, see #11004" , function ( ) {
2012-10-15 16:11:20 +00:00
expect ( 4 ) ;
2012-10-15 16:31:27 +00:00
2014-10-27 17:36:07 +00:00
// Support: Android 2.3 (-webkit-box-sizing).
var el _dis = jQuery ( "<div style='width:300px;height:300px;margin:2px;padding:2px;-webkit-box-sizing:border-box;box-sizing:border-box;'>test</div>" ) ,
2012-05-21 17:44:19 +00:00
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
} ) ;
2013-08-26 22:54:13 +00:00
testIframeWithCallback ( "css('width') should work correctly before document ready (#14084)" ,
"css/cssWidthBeforeDocReady.html" ,
function ( cssWidthBeforeDocReady ) {
expect ( 1 ) ;
strictEqual ( cssWidthBeforeDocReady , "100px" , "elem.css('width') works correctly before document ready" ) ;
}
) ;
2013-08-21 22:33:57 +00:00
2012-06-06 23:03:10 +00:00
test ( "certain css values of 'normal' should be convertable to a number, see #8627" , function ( ) {
2014-03-04 01:55:30 +00:00
expect ( 3 ) ;
2012-10-15 16:11:20 +00:00
2012-08-19 20:03:08 +00:00
var el = jQuery ( "<div style='letter-spacing:normal;font-weight:normal;'>test</div>" ) . appendTo ( "#qunit-fixture" ) ;
2012-06-06 23:03:10 +00:00
ok ( jQuery . isNumeric ( parseFloat ( el . css ( "letterSpacing" ) ) ) , "css('letterSpacing') not convertable to number, see #8627" ) ;
ok ( jQuery . isNumeric ( parseFloat ( el . css ( "fontWeight" ) ) ) , "css('fontWeight') not convertable to number, see #8627" ) ;
2014-03-04 01:55:30 +00:00
equal ( typeof el . css ( "fontWeight" ) , "string" , ".css() returns a string" ) ;
2012-06-06 23:03:10 +00:00
} ) ;
2012-09-30 21:41:42 +00:00
// only run this test in IE9
if ( document . documentMode === 9 ) {
test ( ".css('filter') returns a string in IE9, see #12537" , 1 , function ( ) {
equal ( jQuery ( "<div style='-ms-filter:\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFFFFF, endColorstr=#ECECEC)\";'></div>" ) . css ( "filter" ) , "progid:DXImageTransform.Microsoft.gradient(startColorstr=#FFFFFF, endColorstr=#ECECEC)" , "IE9 returns the correct value from css('filter')." ) ;
} ) ;
}
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'" ) ;
} ) ;
2012-05-29 02:25:04 +00:00
} ) ;
2012-06-11 01:54:16 +00:00
2012-10-22 03:40:37 +00:00
test ( "css opacity consistency across browsers (#12685)" , function ( ) {
expect ( 4 ) ;
2013-04-09 15:45:09 +00:00
var el ,
fixture = jQuery ( "#qunit-fixture" ) ;
// Append style element
jQuery ( "<style>.opacityWithSpaces_t12685 { opacity: 0.1; filter: alpha(opacity = 10); } .opacityNoSpaces_t12685 { opacity: 0.2; filter: alpha(opacity=20); }</style>" ) . appendTo ( fixture ) ;
el = jQuery ( "<div class='opacityWithSpaces_t12685'></div>" ) . appendTo ( fixture ) ;
2013-01-21 21:14:56 +00:00
equal ( Math . round ( el . css ( "opacity" ) * 100 ) , 10 , "opacity from style sheet (filter:alpha with spaces)" ) ;
el . removeClass ( "opacityWithSpaces_t12685" ) . addClass ( "opacityNoSpaces_t12685" ) ;
equal ( Math . round ( el . css ( "opacity" ) * 100 ) , 20 , "opacity from style sheet (filter:alpha without spaces)" ) ;
el . css ( "opacity" , 0.3 ) ;
equal ( Math . round ( el . css ( "opacity" ) * 100 ) , 30 , "override opacity" ) ;
el . css ( "opacity" , "" ) ;
equal ( Math . round ( el . css ( "opacity" ) * 100 ) , 20 , "remove opacity override" ) ;
} ) ;
test ( ":visible/:hidden selectors" , function ( ) {
2014-07-17 23:53:57 +00:00
expect ( 16 ) ;
var $newDiv , $br , $table ;
2013-01-21 21:14:56 +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" ) ;
2014-07-17 23:53:57 +00:00
jQuery ( "#nothiddendiv" ) . css ( { "display" : "block" } ) ;
2013-01-21 21:14:56 +00:00
ok ( jQuery ( "#nothiddendiv" ) . is ( ":visible" ) , "Modified CSS display: Assert element is visible" ) ;
2014-07-17 23:53:57 +00:00
ok ( ! jQuery ( window ) . is ( ":visible" ) , "Calling is(':visible') on window does not throw an exception (#10267)." ) ;
ok ( ! jQuery ( document ) . is ( ":visible" ) , "Calling is(':visible') on document does not throw an exception (#10267)." ) ;
2013-01-21 21:14:56 +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" ) ;
2014-07-17 23:53:57 +00:00
ok ( ! jQuery ( "#siblingspan" ) . is ( ":visible" ) , "Span with no content not visible (#13132)" ) ;
$newDiv = jQuery ( "<div><span></span></div>" ) . appendTo ( "#qunit-fixture" ) ;
equal ( $newDiv . find ( ":visible" ) . length , 0 , "Span with no content not visible (#13132)" ) ;
$br = jQuery ( "<br/>" ) . appendTo ( "#qunit-fixture" ) ;
ok ( ! $br . is ( ":visible" ) , "br element not visible (#10406)" ) ;
2013-01-21 21:14:56 +00:00
2014-07-17 23:53:57 +00:00
$table = jQuery ( "#table" ) ;
2013-01-21 21:14:56 +00:00
$table . html ( "<tr><td style='display:none'>cell</td><td>cell</td></tr>" ) ;
equal ( jQuery ( "#table td:visible" ) . length , 1 , "hidden cell is not perceived as visible (#4512). Works on table elements" ) ;
$table . css ( "display" , "none" ) . html ( "<tr><td>cell</td><td>cell</td></tr>" ) ;
equal ( jQuery ( "#table td:visible" ) . length , 0 , "hidden cell children not perceived as visible (#4512)" ) ;
2013-01-21 23:03:07 +00:00
t ( "Is Visible" , "#qunit-fixture div:visible:lt(2)" , [ "foo" , "nothiddendiv" ] ) ;
t ( "Is Not Hidden" , "#qunit-fixture:hidden" , [ ] ) ;
t ( "Is Hidden" , "#form input:hidden" , [ "hidden1" , "hidden2" ] ) ;
2012-10-22 03:40:37 +00:00
} ) ;
2014-03-09 23:59:14 +00:00
test ( "Keep the last style if the new one isn't recognized by the browser (#14836)" , function ( ) {
expect ( 2 ) ;
var el ;
2014-03-10 18:53:50 +00:00
el = jQuery ( "<div></div>" ) . css ( "position" , "absolute" ) . css ( "position" , "fake value" ) ;
equal ( el . css ( "position" ) , "absolute" , "The old style is kept when setting an unrecognized value" ) ;
el = jQuery ( "<div></div>" ) . css ( "position" , "absolute" ) . css ( "position" , " " ) ;
equal ( el . css ( "position" ) , "absolute" , "The old style is kept when setting to a space" ) ;
2014-03-09 23:59:14 +00:00
} ) ;
test ( "Reset the style if set to an empty string" , function ( ) {
2013-09-29 16:06:32 +00:00
expect ( 1 ) ;
2014-03-10 18:53:50 +00:00
var el = jQuery ( "<div></div>" ) . css ( "position" , "absolute" ) . css ( "position" , "" ) ;
// Some browsers return an empty string; others "static". Both those cases mean the style
// was reset successfully so accept them both.
equal ( el . css ( "position" ) || "static" , "static" ,
"The style can be reset by setting to an empty string" ) ;
2013-09-29 16:06:32 +00:00
} ) ;
2013-01-08 02:08:47 +00:00
asyncTest ( "Clearing a Cloned Element's Style Shouldn't Clear the Original Element's Style (#8908)" , 24 , function ( ) {
2012-11-18 22:03:38 +00:00
var baseUrl = document . location . href . replace ( /([^\/]*)$/ , "" ) ,
styles = [ {
name : "backgroundAttachment" ,
value : [ "fixed" ] ,
expected : [ "scroll" ]
} , {
name : "backgroundColor" ,
value : [ "rgb(255, 0, 0)" , "rgb(255,0,0)" , "#ff0000" ] ,
expected : [ "transparent" ]
} , {
// Firefox returns auto's value
name : "backgroundImage" ,
value : [ "url('test.png')" , "url(" + baseUrl + "test.png)" , "url(\"" + baseUrl + "test.png\")" ] ,
expected : [ "none" , "url(\"http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif\")" ]
} , {
name : "backgroundPosition" ,
value : [ "5% 5%" ] ,
expected : [ "0% 0%" , "-1000px 0px" , "-1000px 0%" ]
} , {
// Firefox returns no-repeat
name : "backgroundRepeat" ,
value : [ "repeat-y" ] ,
expected : [ "repeat" , "no-repeat" ]
} , {
name : "backgroundClip" ,
value : [ "padding-box" ] ,
expected : [ "border-box" ]
} , {
name : "backgroundOrigin" ,
value : [ "content-box" ] ,
expected : [ "padding-box" ]
} , {
name : "backgroundSize" ,
value : [ "80px 60px" ] ,
expected : [ "auto auto" ]
} ] ;
2013-01-08 02:08:47 +00:00
jQuery . each ( styles , function ( index , style ) {
2012-11-18 22:03:38 +00:00
var $clone , $clonedChildren ,
$source = jQuery ( "#firstp" ) ,
source = $source [ 0 ] ,
$children = $source . children ( ) ;
style . expected = style . expected . concat ( [ "" , "auto" ] ) ;
if ( source . style [ style . name ] === undefined ) {
ok ( true , style . name + ": style isn't supported and therefore not an issue" ) ;
ok ( true ) ;
2013-01-08 02:08:47 +00:00
2012-11-18 22:03:38 +00:00
return true ;
}
$source . css ( style . name , style . value [ 0 ] ) ;
$children . css ( style . name , style . value [ 0 ] ) ;
$clone = $source . clone ( ) ;
$clonedChildren = $clone . children ( ) ;
$clone . css ( style . name , "" ) ;
$clonedChildren . css ( style . name , "" ) ;
window . setTimeout ( function ( ) {
2013-01-08 02:08:47 +00:00
notEqual ( $clone . css ( style . name ) , style . value [ 0 ] , "Cloned css was changed" ) ;
2012-11-18 22:03:38 +00:00
ok ( jQuery . inArray ( $source . css ( style . name ) !== - 1 , style . value ) ,
"Clearing clone.css() doesn't affect source.css(): " + style . name +
"; result: " + $source . css ( style . name ) +
"; expected: " + style . value . join ( "," ) ) ;
ok ( jQuery . inArray ( $children . css ( style . name ) !== - 1 , style . value ) ,
"Clearing clonedChildren.css() doesn't affect children.css(): " + style . name +
"; result: " + $children . css ( style . name ) +
"; expected: " + style . value . join ( "," ) ) ;
} , 100 ) ;
} ) ;
window . setTimeout ( start , 1000 ) ;
} ) ;
2013-02-01 13:22:08 +00:00
asyncTest ( "Make sure initialized display value for disconnected nodes is correct (#13310)" , 4 , function ( ) {
var display = jQuery ( "#display" ) . css ( "display" ) ,
div = jQuery ( "<div/>" ) ;
equal ( div . css ( "display" , "inline" ) . hide ( ) . show ( ) . appendTo ( "body" ) . css ( "display" ) , "inline" , "Initialized display value has returned" ) ;
div . remove ( ) ;
div . css ( "display" , "none" ) . hide ( ) ;
equal ( jQuery . _data ( div [ 0 ] , "olddisplay" ) , undefined , "olddisplay is undefined after hiding a detached and hidden element" ) ;
div . remove ( ) ;
div . css ( "display" , "inline-block" ) . hide ( ) . appendTo ( "body" ) . fadeIn ( function ( ) {
equal ( div . css ( "display" ) , "inline-block" , "Initialized display value has returned" ) ;
div . remove ( ) ;
start ( ) ;
} ) ;
equal ( jQuery . _data ( jQuery ( "#display" ) . css ( "display" , "inline" ) . hide ( ) [ 0 ] , "olddisplay" ) , display ,
"display: * !Important value should used as initialized display" ) ;
jQuery . _removeData ( jQuery ( "#display" ) [ 0 ] ) ;
} ) ;
2014-02-05 05:54:15 +00:00
test ( "show() after hide() should always set display to initial value (#14750)" , 1 , function ( ) {
var div = jQuery ( "<div />" ) ,
fixture = jQuery ( "#qunit-fixture" ) ;
fixture . append ( div ) ;
div . css ( "display" , "inline" ) . hide ( ) . show ( ) . css ( "display" , "list-item" ) . hide ( ) . show ( ) ;
equal ( div . css ( "display" ) , "list-item" , "should get last set display value" ) ;
} ) ;
2013-08-20 13:53:28 +00:00
// Support: IE < 11, Safari < 7
2013-08-07 21:10:35 +00:00
// We have to jump through the hoops here in order to test work with "order" CSS property,
2013-08-19 18:16:16 +00:00
// that some browsers do not support. This test is not, strictly speaking, correct,
2013-08-07 21:10:35 +00:00
// but it's the best that we can do.
( function ( ) {
var style = document . createElement ( "div" ) . style ,
2013-08-19 17:53:31 +00:00
exist = "order" in style || "WebkitOrder" in style ;
2013-08-07 21:10:35 +00:00
if ( exist ) {
test ( "Don't append px to CSS \"order\" value (#14049)" , 1 , function ( ) {
var $elem = jQuery ( "<div/>" ) ;
$elem . css ( "order" , 2 ) ;
equal ( $elem . css ( "order" ) , "2" , "2 on order" ) ;
} ) ;
}
} ) ( ) ;
2014-05-18 16:47:37 +00:00
test ( "Do not throw on frame elements from css method (#15098)" , 1 , function ( ) {
var frameWin , frameDoc ,
frameElement = document . createElement ( "iframe" ) ,
frameWrapDiv = document . createElement ( "div" ) ;
frameWrapDiv . appendChild ( frameElement ) ;
document . body . appendChild ( frameWrapDiv ) ;
frameWin = frameElement . contentWindow ;
frameDoc = frameWin . document ;
frameDoc . open ( ) ;
frameDoc . write ( "<!doctype html><html><body><div>Hi</div></body></html>" ) ;
frameDoc . close ( ) ;
frameWrapDiv . style . display = "none" ;
try {
jQuery ( frameDoc . body ) . css ( "direction" ) ;
ok ( true , "It didn't throw" ) ;
} catch ( _ ) {
ok ( false , "It did throw" ) ;
}
} ) ;
2012-06-11 01:54:16 +00:00
}