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;
use Cwd;
use CSS::Inliner;
use HTML::TreeBuilder;

plan(tests => 6);

my $html = <<END;
<html>
  <head>
    <title>Test Document</title>
    <style type="text/css">
    h1 { color: red; font-size: 20px }
    h2 { color: blue; font-size: 17px; }
    </style>
  </head>
  <body>
    <!-- Some comment -->
    <h1>Howdy!</h1>
    <h2>Let's Play</h2>
    <p>Got any games?</p>
    <foo>Bar</foo>
  </body>
</html>
END

my $html_tree = HTML::TreeBuilder->new();
$html_tree->ignore_unknown(1);
my $inliner = CSS::Inliner->new({ html_tree => $html_tree });
$inliner->read({ html => $html });
my $inlined = $inliner->inlinify();

ok($inlined =~ m/<h1 style="color: red; font-size: 20px;">Howdy!<\/h1>/, 'h1 rule inlined');
ok($inlined !~ m/<style/, 'no style blocks left');
ok($inlined !~ m/<foo>/, 'ignoring unknown elements');

$html_tree->ignore_unknown(0);
$inliner = CSS::Inliner->new({ html_tree => $html_tree });
$inliner->read({ html => $html });
$inlined = $inliner->inlinify();

ok($inlined =~ m/<h1 style="color: red; font-size: 20px;">Howdy!<\/h1>/, 'custom html_tree: h1 rule inlined');
ok($inlined !~ m/<style/, 'no style blocks left');
ok($inlined =~ m/<foo>/, 'ignoring unknown elements');