1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
# 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 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
|