View | Details | Raw Unified | Return to bug 36328
Collapse All | Expand All

(-)a/C4/Scrubber.pm (-6 / +6 lines)
Lines 27-36 use HTML::Scrubber; Link Here
27
use C4::Context;
27
use C4::Context;
28
28
29
my %scrubbertypes = (
29
my %scrubbertypes = (
30
    default => {}, # place holder, default settings are below as fallbacks in call to constructor
30
    default => {},    # place holder, default settings are below as fallbacks in call to constructor
31
    tag     => {},                                               # uses defaults
31
    tag     => {},    # uses defaults
32
    comment => { allow => [qw( br b i em big small strong )], },
32
    comment => { allow => [qw( br b i em big small strong )], },
33
    note    => { allow => [qw[ p b i u hr br em big small strong span div ]] },
33
    note    => { allow => [qw[ br b i em big small strong u hr span div p ]] },
34
    staff   => {
34
    staff   => {
35
        default => [ 1 => { '*' => 1 } ],
35
        default => [ 1 => { '*' => 1 } ],
36
        comment => 1,
36
        comment => 1,
Lines 46-56 sub new { Link Here
46
    }
46
    }
47
    my $settings = $scrubbertypes{$type};
47
    my $settings = $scrubbertypes{$type};
48
    my $scrubber = HTML::Scrubber->new(
48
    my $scrubber = HTML::Scrubber->new(
49
        allow   => exists $settings->{allow} ? $settings->{allow} : [],
49
        allow   => exists $settings->{allow}   ? $settings->{allow}   : [],
50
        rules   => exists $settings->{rules} ? $settings->{rules} : [],
50
        rules   => exists $settings->{rules}   ? $settings->{rules}   : [],
51
        default => exists $settings->{default} ? $settings->{default} : [ 0 => { '*' => 0 } ],
51
        default => exists $settings->{default} ? $settings->{default} : [ 0 => { '*' => 0 } ],
52
        comment => exists $settings->{comment} ? $settings->{comment} : 0,
52
        comment => exists $settings->{comment} ? $settings->{comment} : 0,
53
        note    => exists $settings->{note} ? $settings->{note} : 0,
53
        note    => exists $settings->{note}    ? $settings->{note}    : 0,
54
        process => 0,
54
        process => 0,
55
    );
55
    );
56
    return $scrubber;
56
    return $scrubber;
(-)a/t/Scrubber.t (-3 / +10 lines)
Lines 3-9 Link Here
3
use Modern::Perl;
3
use Modern::Perl;
4
4
5
$| = 1;
5
$| = 1;
6
use Test::More tests => 30;
6
use Test::More tests => 31;
7
use Test::Warn;
7
use Test::Warn;
8
8
9
BEGIN {
9
BEGIN {
Lines 82-85 if ($@) { Link Here
82
    pass("Test should have failed on entry of 'Client' and it did. YAY!");
82
    pass("Test should have failed on entry of 'Client' and it did. YAY!");
83
}
83
}
84
84
85
is( C4::Scrubber->new('note')->scrub('<span>Allow span</span>'), '<span>Allow span</span>' );
85
my $scrub_text =
86
    '<div><span><p><b>bold</b><i>ital</i><em>emphatic</em><big>embiggen</big><small>shrink</small><strong>strongbad</strong><br><u>under</u><hr></p></span></div>';
87
my $scrub_comment =
88
    '<b>bold</b><i>ital</i><em>emphatic</em><big>embiggen</big><small>shrink</small><strong>strongbad</strong><br>under';
89
is( C4::Scrubber->new('comment')->scrub($scrub_text), $scrub_comment, "Comment scrubber removes expected elements" );
90
is(
91
    C4::Scrubber->new('note')->scrub($scrub_text), $scrub_text,
92
    "Note scrubber removes (additional) expected elements"
93
);
86
- 

Return to bug 36328