use strict; use warnings; use Test::More; use_ok('CSS::SpriteMaker'); ## ## Css is written ## my $SpriteMaker = CSS::SpriteMaker->new(); isa_ok($SpriteMaker, 'CSS::SpriteMaker', 'created CSS::SpriteMaker instance'); my $err = $SpriteMaker->make_sprite( source_dir => 'sample_icons', target_file => 'sample_sprite.png', ); is ($err, 0, 'sprite was successfully created') && unlink 'sample_sprite.png'; my $out_css; open my($fh), '>', \$out_css or die 'Cannot open file for writing $!'; my $rh_out_css_classes = $SpriteMaker->print_css(filehandle => $fh); close $fh; like ($out_css, qr/'sample_sprite[.]png'/, 'found sample sprite url'); ## ## Class name prefix is added ## my $SpriteMakerWithPrefix = CSS::SpriteMaker->new( css_class_prefix => 'icon-' ); my $err_prefix = $SpriteMakerWithPrefix->make_sprite( source_dir => 'sample_icons', target_file => 'sample_sprite_with_prefix.png', ); is ($err_prefix, 0, 'sprite was successfully created') && unlink 'sample_sprite_with_prefix.png'; my $out_css_with_prefix; open my($fh_prefix), '>', \$out_css_with_prefix or die 'Cannot open file for writing $!'; $SpriteMakerWithPrefix->print_css(filehandle => $fh_prefix); close $fh_prefix; ## ## Prefix must be included in every class generated ## my $line = 0; for my $css (split "\n", $out_css_with_prefix) { if ($line++ > 0 && $css =~ m/^([.].+?)\s[{]/) { my $class = $1; if ($class !~ '^[.]icon-') { fail("Got $class, but was expecting something with the 'icon-' prefix as per css_class_prefix option!"); } } } done_testing();