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

(-)a/t/db_dependent/XSLT_Handler.t (-13 / +41 lines)
Lines 21-39 use Modern::Perl; Link Here
21
21
22
use FindBin;
22
use FindBin;
23
use File::Slurp;
23
use File::Slurp;
24
use Test::More tests => 27;
24
use Test::More tests => 37;
25
use Test::Warn;
25
26
26
use Koha::XSLT_Handler;
27
use Koha::XSLT_Handler;
27
28
28
my $engine=Koha::XSLT_Handler->new;
29
my $engine=Koha::XSLT_Handler->new;
29
is( ref $engine, 'Koha::XSLT_Handler', 'Testing creation of handler object' );
30
is( ref $engine, 'Koha::XSLT_Handler', 'Testing creation of handler object' );
30
31
31
$engine->transform(''); #we passed no file at first time
32
warning_is { $engine->transform('') } #we passed no file at first time
33
            "No XSLT file passed.",
34
            "No XSLT warning correctly displayed";
32
is( $engine->err, 1, 'Engine returns error on no file' );
35
is( $engine->err, 1, 'Engine returns error on no file' );
33
36
34
$engine->transform( '', 'thisfileshouldnotexist.%$#@' );
37
warning_is { $engine->transform( '', 'thisfileshouldnotexist.%$#@' ) }
38
            "XSLT file not found.",
39
            "No XSLT warning correctly displayed";
35
is( $engine->err, 2, 'Engine returns error on bad file' );
40
is( $engine->err, 2, 'Engine returns error on bad file' );
36
37
is( $engine->refresh( 'asdjhaskjh'), 0, 'Test on invalid refresh' );
41
is( $engine->refresh( 'asdjhaskjh'), 0, 'Test on invalid refresh' );
38
42
39
#check first test xsl
43
#check first test xsl
Lines 44-56 exit if !-e $path.$xsltfile_1; Link Here
44
$xsltfile_1= $path.$xsltfile_1;
48
$xsltfile_1= $path.$xsltfile_1;
45
49
46
#Testing not-xml strings (undef, empty, some text, malformed xml
50
#Testing not-xml strings (undef, empty, some text, malformed xml
47
my $output= $engine->transform( undef, $xsltfile_1 );
51
my $output;
52
53
# Undefined text tests
54
warning_is { $output = $engine->transform( undef, $xsltfile_1 ) }
55
           "No string to transform.",
56
           "No string warning correctly displayed";
48
is( $engine->err, 7, 'Engine returns error on undefined text' );
57
is( $engine->err, 7, 'Engine returns error on undefined text' );
49
$output= $engine->transform( '', $xsltfile_1 );
58
59
# Empty string tests
60
warning_is { $output = $engine->transform( '', $xsltfile_1 ) }
61
           "Error while parsing input: Empty String",
62
           "Empty string warning correctly displayed";
50
is( $engine->err, 5, 'Engine returns error on empty string' );
63
is( $engine->err, 5, 'Engine returns error on empty string' );
51
$output= $engine->transform( 'abcdef', $xsltfile_1 );
64
65
# Non-XML tests
66
warning_like { $output = $engine->transform( 'abcdef', $xsltfile_1 ) }
67
           qr{^Error while parsing input: :1: parser error : Start tag expected, '<' not found},
68
           "Non-XML warning correctly displayed";
52
is( $engine->err, 5, 'Engine returns error on non-xml' );
69
is( $engine->err, 5, 'Engine returns error on non-xml' );
53
$output= $engine->transform( '<a></b>', $xsltfile_1 );
70
71
# Malformed XML tests
72
warning_like { $output = $engine->transform( '<a></b>', $xsltfile_1 ) }
73
             qr{^Error while parsing input: :1: parser error : Opening and ending tag mismatch: a line 1 and b},
74
             "Malformed XML warning correctly displayed";
54
is( $engine->err, 5, 'Engine returns error on malformed xml' );
75
is( $engine->err, 5, 'Engine returns error on malformed xml' );
55
76
56
#Test not returning source on failure when asked for
77
#Test not returning source on failure when asked for
Lines 60-72 my $secondengine=Koha::XSLT_Handler->new( { Link Here
60
    some_unknown_attrib  => 'just_for_fun',
81
    some_unknown_attrib  => 'just_for_fun',
61
});
82
});
62
$engine->do_not_return_source(1);
83
$engine->do_not_return_source(1);
63
$output= $engine->transform( '<a></b>', $xsltfile_1 );
84
warning_like { $output = $engine->transform( '<a></b>', $xsltfile_1 ) }
85
             qr{^Error while parsing input: :1: parser error : Opening and ending tag mismatch: a line 1 and b},
86
             "Malformed XML warning correctly displayed";
64
is( defined $output? 1: 0, 0, 'Engine respects do_not_return_source==1');
87
is( defined $output? 1: 0, 0, 'Engine respects do_not_return_source==1');
65
$output= $secondengine->transform( '<a></b>', $xsltfile_1 );
88
warning_like { $output = $secondengine->transform( '<a></b>', $xsltfile_1 ) }
89
             qr{^Error while parsing input: :1: parser error : Opening and ending tag mismatch: a line 1 and b},
90
             "Malformed XML warning correctly displayed";
66
is( defined $output? 1: 0, 0, 'Second engine respects it too');
91
is( defined $output? 1: 0, 0, 'Second engine respects it too');
67
undef $secondengine; #bye
92
undef $secondengine; #bye
68
$engine->do_not_return_source(0);
93
$engine->do_not_return_source(0);
69
$output= $engine->transform( '<a></b>', $xsltfile_1 );
94
warning_like { $output = $engine->transform( '<a></b>', $xsltfile_1 ) }
95
             qr{^Error while parsing input: :1: parser error : Opening and ending tag mismatch: a line 1 and b},
96
             "Malformed XML warning correctly displayed";
70
is( defined $output? 1: 0, 1, 'Engine respects do_not_return_source==0');
97
is( defined $output? 1: 0, 1, 'Engine respects do_not_return_source==0');
71
98
72
#Testing valid refresh now
99
#Testing valid refresh now
Lines 114-120 is( -e $path.$xsltfile_2, 1, "Found my test stylesheet $xsltfile_2" ); Link Here
114
exit if !-e $path.$xsltfile_2;
141
exit if !-e $path.$xsltfile_2;
115
$xsltfile_2= $path.$xsltfile_2;
142
$xsltfile_2= $path.$xsltfile_2;
116
143
117
$output= $engine->transform( $xml_2, $xsltfile_2 );
144
warning_like { $output = $engine->transform( $xml_2, $xsltfile_2 ) }
145
             qr{^Error while parsing stylesheet:},
146
             "Bad XSL warning correctly displayed";
118
is( $engine->err, 4, 'Engine returned error for parsing bad xsl' );
147
is( $engine->err, 4, 'Engine returned error for parsing bad xsl' );
119
is( defined($engine->errstr), 1, 'Error string contains text');
148
is( defined($engine->errstr), 1, 'Error string contains text');
120
149
121
- 

Return to bug 12973