#!perl -w BEGIN { use Test::More; plan skip_all => 'install JavaScript::Minifier and CSS:Minifier to enable this test' and exit unless eval "require JavaScript::Minifier" && eval "require CSS::Minifier"; } use strict; use Test::More qw/no_plan/; use t::Test; { my $assets = t::Test->assets(output_path => [ [ qw/* %n%-l.%e/ ] ]); my $scratch = t::Test->scratch; my $filter; $assets->include("css/apple.css"); $assets->include("css/banana.css"); $assets->include("css/cherry.css"); $assets->include("js/apple.js"); $assets->include("js/cherry.js"); ok($scratch->exists("static/css/cherry.css")); ok(-s $scratch->file("static/css/cherry.css")); ok($filter = $assets->filter(css => "minifier")); compare($assets->export, qw( http://example.com/static/assets.css http://example.com/static/js/apple.js http://example.com/static/js/cherry.js )); ok($scratch->exists("static/assets.css")); ok(-s $scratch->file("static/assets.css")); like($scratch->read("static/assets.css"), qr/div\.cherry/); like($scratch->read("static/assets.css"), qr/font-weight/); is($scratch->read("static/assets.css"), 'div.cherry{font-weight:bold;font-weight:100;border:1px solid #aaaaaa;}div.cherry em{color:red;}'); ok($filter = $assets->filter(js => "minifier-javascript")); compare($assets->export, qw( http://example.com/static/assets.css http://example.com/static/assets.js )); ok($scratch->exists("static/assets.js")); ok(-s $scratch->file("static/assets.js")); like($scratch->read("static/assets.js"), qr/"Nothing happens\."/); $assets->filter_clear($filter); $scratch->delete("static/assets.js"); ok($filter = $assets->filter("minifier")); compare($assets->export, qw( http://example.com/static/assets.css http://example.com/static/assets.js )); ok($filter = $assets->filter(js => "minifier-javascript")); ok($scratch->exists("static/assets.js")); ok(-s $scratch->file("static/assets.js")); like($scratch->read("static/assets.js"), qr/"Nothing happens\."/); } { my $assets = t::Test->assets( output_path => [ [ qw/* %n%-l.%e/ ] ], filter => [ [ css => 'minifier', ], [ js => 'minifier', ], ], ); my $scratch = t::Test->scratch; $assets->include("css/apple.css"); $assets->include("css/banana.css"); $assets->include("css/cherry.css"); $assets->include("js/apple.js"); $assets->include("js/cherry.js"); ok($scratch->exists("static/css/cherry.css")); # is(-s $scratch->file("static/css/cherry.css"), 150); ok(-s $scratch->file("static/css/cherry.css")); compare($assets->export, qw( http://example.com/static/assets.css http://example.com/static/assets.js )); ok($scratch->exists("static/assets.css")); ok(-s $scratch->file("static/assets.css")); like($scratch->read("static/assets.css"), qr/div\.cherry/); like($scratch->read("static/assets.css"), qr/font-weight/); ok($scratch->exists("static/assets.js")); ok(-s $scratch->file("static/assets.js")); like($scratch->read("static/assets.js"), qr/"Nothing happens\."/); }