CSS-Prepare
view release on metacpan or search on metacpan
t/06.basic.t view on Meta::CPAN
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "multiple selectors split apart was:\n" . $output;
}
# multiple occurences of the same property are combined
{
$input = <<CSS;
div { margin: 0; }
li { margin: 0; }
CSS
$css = <<CSS;
div,li{margin:0;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "multiple properties combine was:\n" . $output;
}
# matching selectors and properties are combined
{
$input = <<CSS;
div, li { padding: 0; }
div, li { margin: 0; }
li { color: red; }
CSS
$css = <<CSS;
div,li{margin:0;padding:0;}
li{color:red;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "matching selectors and properties combine was:\n" . $output;
}
# matching selectors and properties can be split if smaller output
{
$input = <<CSS;
div, li { padding: 0; }
div, li { margin: 0; }
body { margin: 0; }
CSS
$css = <<CSS;
body,div,li{margin:0;}
div,li{padding:0;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "split multiple properties was:\n" . $output;
}
# matching selectors and properties can be split if smaller output
{
$input = <<CSS;
div, li { padding: 0; }
div, li { margin: 0; }
li, fieldset { border: none; }
CSS
$css = <<CSS;
div,li{margin:0;padding:0;}
fieldset,li{border:none;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "split multiple properties was:\n" . $output;
}
# multiple choices of combinations result in the shortest string
{
$input = <<CSS;
li { padding: 0; }
div { margin: 0; }
li { margin: 0; }
CSS
$css = <<CSS;
div,li{margin:0;}
li{padding:0;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "shortest string was:\n" . $output;
}
# existing combinations should be broken apart if it is shorter
{
$input = <<CSS;
li { margin: 0; padding: 0; }
div { margin: 0; }
CSS
$css = <<CSS;
div,li{margin:0;}
li{padding:0;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "break existing combinations was:\n" . $output;
}
# complex example with multiple options
{
$input = <<CSS;
li { margin: 0; }
div { margin: 0; }
li { padding: 0; }
fieldset { border: 1px solid #000; }
li { border: 1px solid #000; }
CSS
$css = <<CSS;
div,li{margin:0;}
fieldset,li{border:1px solid #000;}
li{padding:0;}
CSS
@structure = $preparer->parse_string( $input );
@structure = $preparer->optimise( @structure );
$output = $preparer->output_as_string( @structure );
ok( $output eq $css )
or say "complex options was:\n" . $output;
}
( run in 0.632 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )