CSS-Prepare
view release on metacpan or search on metacpan
t/06.combining.t view on Meta::CPAN
ul, ol {
margin-left: 2em; /* ol&ul can no longer play the
* "margin:0;padding:0;" game */
}
li {
margin-left: -2em; /* ostracise li into its own rule set */
list-style: disc inside;
}
CSS
$css = <<CSS;
blockquote,#header-area{border-style:dotted;}
body{font-family:"Georgia";}
div,h1,h2,h3,h4,h5,h6,p{margin:0;padding:0;}
li{border:1px dotted red;margin:0 0 0 -2em;list-style:disc inside;}
li,ol,ul{padding:0;}
ol,ul{margin:0 0 0 2em;}
CSS
@parsed = $preparer->parse_string( $input );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "overriding test was:\n" . $output;
}
# test that combining files works -- should be identical to the simulated
# stylesheet above
{
$preparer->set_base_directory( 't/css' );
@parsed
= $preparer->parse_file_structure( '/site/subsite/combining.css' );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "combining test was:\n" . $output;
}
# test that imported base stylesheets work
{
$css = <<CSS;
blockquote,#header-area{border-style:dotted;}
body{font-family:"Arial","Helvetica","clean",sans-serif;}
div,h1,h2,h3,h4,h5,h6,li,ol,p,ul{margin:0;padding:0;}
li{border:1px dotted red;}
body{font-family:"Georgia";}
li{list-style:disc inside;margin-left:-2em;}
ol,ul{margin-left:2em;}
CSS
@parsed = $preparer->parse_file( 't/css/combo-import.css' );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "imported file was:\n" . $output;
}
{
$css = <<CSS;
abbr,acronym{border:0;font-variant:normal;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:inherit;font-weight:inherit;}
blockquote,body,button,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;}
button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}
button,input,select,textarea{*font-size:100%;}
caption,th{text-align:left;}
del,ins{text-decoration:none;}
fieldset,img{border:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
html{background:#fff;}
html,legend{color:#000;}
li{list-style:none;}
q:after,q:before{content:'';}
sub,sup{vertical-align:baseline;}
table{border-collapse:collapse;border-spacing:0;}
CSS
@parsed = $preparer->parse_file( 't/css/import-reset.css' );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "imported file was:\n" . $output;
}
{
$css = <<CSS;
div,li{margin:0;padding:0;}
h1{padding:0;}
CSS
$preparer->set_base_directory( 't/css' );
@parsed = $preparer->parse_stylesheet( "import-filebase.css" );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "imported file was:\n" . $output;
}
{
$css = <<CSS;
div,li{margin:0;padding:0;}
h1{padding:0;}
CSS
@parsed = $preparer->parse_stylesheet( "${base_url}/site/import.css" );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "imported file was:\n" . $output;
}
# test that media blocks work
{
$css = <<CSS;
h1{background:#fff;}
h1,li{color:#999;}
\@media print{
h1,li{color:#000;}
}
CSS
@parsed = $preparer->parse_file( 't/css/media.css' );
@structure = $preparer->optimise( @parsed );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "media block was:\n" . $output;
}
# @import with a media query is output as an @media block
{
$css = <<CSS;
\@media print{
div{color:#000;}
( run in 1.511 second using v1.01-cache-2.11-cpan-39bf76dae61 )