# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use strict;
use warnings;
use Test;
BEGIN { plan tests => 77 }
use HTML::Scrubber;
ok(1); # If we made it this far, we're ok. # test 1
#########################
# Insert your test code below, the Test module is use()ed here so read
# its man page ( perldoc Test ) for help writing this test script.
my $html = q[
<script>//blah</script>
<HR Align="left">
<B> bold <
<U> underlined
<I>
<A href='#"'> LINK </A>
</I>
</U>
</B>
<!-- comments -->
];
my $scrubber = HTML::Scrubber->new();
ok($scrubber); # test 2
ok( !$scrubber->default() ); # test 3
ok( !$scrubber->comment() ); # test 4
ok( !$scrubber->process() ); # test 5
ok( !$scrubber->allow(qw[ p b i u hr br ]) ); # test 6
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 7
ok( $scrubber !~ /href/i ); # test 8
ok( $scrubber !~ /Align/i ); # test 9
ok( $scrubber !~ /\Q<!--\E/ ); # test 10
ok( $scrubber =~ /bold </ ); # test 11
$scrubber = HTML::Scrubber->new( deny => [qw[ p b i u hr br ]] );
ok($scrubber); # test 12
ok( !$scrubber->default() ); # test 13
ok( !$scrubber->comment() ); # test 14
ok( !$scrubber->process() ); # test 15
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 16
ok( $scrubber !~ /[><]/ ); # test 17
ok( $scrubber !~ /href/i ); # test 18
ok( $scrubber !~ /Align/i ); # test 19
ok( $scrubber !~ /\Q<!--\E/ ); # test 20
ok( $scrubber =~ /bold </ ); # test 21
$scrubber = HTML::Scrubber->new( default => [0] );
ok($scrubber); # test 22
ok( !$scrubber->default() ); # test 23
ok( !$scrubber->comment() ); # test 24
ok( !$scrubber->process() ); # test 25
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 26
ok( $scrubber !~ /[><]/ ); # test 27
ok( $scrubber !~ /href/i ); # test 28
ok( $scrubber !~ /Align/i ); # test 29
ok( $scrubber !~ /\Q<!--\E/ ); # test 30
ok( $scrubber =~ /bold </ ); # test 31
$scrubber = HTML::Scrubber->new( default => [1] );
ok($scrubber); # test 32
ok( $scrubber->default() ); # test 33
ok( !$scrubber->comment() ); # test 34
ok( !$scrubber->process() ); # test 35
#use Data::Dumper;die Dumper( [ $scrubber, $scrubber->scrub($html) ]);
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 36
ok( $scrubber =~ /[><]/ ); # test 37
ok( $scrubber !~ /href/i ); # test 38
ok( $scrubber !~ /Align/i ); # test 39
ok( $scrubber !~ /\Q<!--\E/ ); # test 40
ok( $scrubber =~ /bold </ ); # test 41
$scrubber = HTML::Scrubber->new( default => [1] );
ok($scrubber); # test 42
ok( $scrubber->default() ); # test 43
ok( !$scrubber->comment() ); # test 44
ok( !$scrubber->process() ); # test 45
ok( !$scrubber->comment(1) ); # test 46
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 47
ok( $scrubber =~ /[><]/ ); # test 48
ok( $scrubber !~ /href/i ); # test 49
ok( $scrubber !~ /Align/i ); # test 50
ok( $scrubber =~ /\Q<!--\E/ ); # test 51
ok( $scrubber =~ /bold </ ); # test 52
$scrubber = HTML::Scrubber->new( default => [ 1 => { align => 1, '*' => 0 } ] );
ok($scrubber); # test 53
ok( $scrubber->default() ); # test 54
ok( !$scrubber->comment() ); # test 55
ok( !$scrubber->process() ); # test 56
ok( !$scrubber->comment(1) ); # test 57
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 58
ok( $scrubber =~ /[><]/ ); # test 59
ok( $scrubber !~ /href/i ); # test 60
ok( $scrubber =~ /Align/i ); # test 61
ok( $scrubber =~ /\Q<!--\E/ ); # test 62
ok( $scrubber =~ /"left"/ ); # test 63
ok( $scrubber =~ /bold </ ); # test 64
$scrubber = HTML::Scrubber->new( default => [ 1 => { align => 0, '*' => 1 } ] );
ok($scrubber); # test 65
ok( $scrubber->default() ); # test 66
ok( !$scrubber->comment() ); # test 67
ok( !$scrubber->process() ); # test 68
ok( !$scrubber->comment(1) ); # test 69
$scrubber = $scrubber->scrub($html);
ok($scrubber); # test 70
ok( $scrubber =~ /[><]/ ); # test 71
ok( $scrubber =~ /href/i ); # test 72
ok( $scrubber !~ /Align/i ); # test 73
ok( $scrubber =~ /\Q<!--\E/ ); # test 74
ok( $scrubber =~ /\Q"\E/ ); # test 75
ok( $scrubber =~ /\#/ ); # test 76
ok( $scrubber =~ /bold </ ); # test 77