The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use lib qw( ./lib ../lib );

use Test::More;
plan(tests => 2);

use_ok('CSS::Simple');

my $simple = CSS::Simple->new();

#test creation of empty selector
$simple->add_selector({selector => '.empty', properties => {}});

#test creation of initialized selector
$simple->add_selector({selector => '.bar', properties => { color => 'blue', 'font-size' => '16px'}});

#test default creation of selector through property addition
my $new_properties = { color => 'red', 'font-family' => 'Tahoma'};
$simple->add_properties({ selector => '.foo', properties => $new_properties});
$simple->add_properties({ selector => '.foo2', properties => $new_properties});
$simple->add_properties({ selector => '.foo3', properties => $new_properties});

#test getting properties and setting on an existing selector
my $bar_properties = $simple->get_properties({selector => '.bar'});
$simple->add_properties({ selector => '.foo', properties => $bar_properties});

$simple->delete_property({selector => '.foo3', property => 'font-family'});

my $ordered = $simple->write();

my $expected = <<END;
.bar {
	color: blue;
	font-size: 16px;
}
.foo {
	color: blue;
	font-family: Tahoma;
	font-size: 16px;
}
.foo2 {
	color: red;
	font-family: Tahoma;
}
.foo3 {
	color: red;
}
END

ok($expected eq $ordered);