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

(-)a/C4/Breeding.pm (-1 / +1 lines)
Lines 316-322 sub _do_xslt_proc { Link Here
316
    if( !$xslh->err ) {
316
    if( !$xslh->err ) {
317
        return MARC::Record->new_from_xml($xml, 'UTF-8');
317
        return MARC::Record->new_from_xml($xml, 'UTF-8');
318
    } else {
318
    } else {
319
        return ( $marc, 'xslt_err' ); #original record in case of errors
319
        return ( $marc, $xslh->err ); #original record in case of errors
320
    }
320
    }
321
}
321
}
322
322
(-)a/C4/Record.pm (-3 / +2 lines)
Lines 300-309 sub marc2dcxml { Link Here
300
            croak "The format argument ($format) not accepted.\n" .
300
            croak "The format argument ($format) not accepted.\n" .
301
                  "Please pass a valid format (oaidc, srwdc, or rdfdc)\n";
301
                  "Please pass a valid format (oaidc, srwdc, or rdfdc)\n";
302
        }
302
        }
303
        my $err = $xslt_engine->err; # error number
303
        my $err = $xslt_engine->err; # error code
304
        my $errstr = $xslt_engine->errstr; # error message
305
        if ( $err ) {
304
        if ( $err ) {
306
            croak "Error when processing $errstr Error number: $err\n";
305
            croak "Error $err while processing\n";
307
        } else {
306
        } else {
308
            return $output;
307
            return $output;
309
        }
308
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/xslt-handler.inc (+16 lines)
Line 0 Link Here
1
[% SWITCH code %]
2
    [% CASE 'XSLTH_ERR_NO_FILE' %]
3
        No XSLT file passed.
4
    [% CASE 'XSLTH_ERR_FILE_NOT_FOUND' %]
5
        XSLT file not found.
6
    [% CASE 'XSLTH_ERR_LOADING' %]
7
        Error while loading stylesheet.
8
    [% CASE 'XSLTH_ERR_PARSING_CODE' %]
9
        Error while parsing stylesheet.
10
    [% CASE 'XSLTH_ERR_PARSING_DATA' %]
11
        Error while parsing input.
12
    [% CASE 'XSLTH_ERR_TRANSFORMING' %]
13
        Error while transforming input.
14
    [% CASE 'XSLTH_NO_STRING_PASSED' %]
15
        No string to transform.
16
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tt (-2 / +2 lines)
Lines 82-88 Link Here
82
                [% FOREACH errcon IN errconn %]
82
                [% FOREACH errcon IN errconn %]
83
                    [% IF ( errcon.error == '10000' ) %]<li>Connection failed to [% errcon.server %]</li>
83
                    [% IF ( errcon.error == '10000' ) %]<li>Connection failed to [% errcon.server %]</li>
84
                    [% ELSIF ( errcon.error == '10007' ) %]<li>Connection timeout to [% errcon.server %]</li>
84
                    [% ELSIF ( errcon.error == '10007' ) %]<li>Connection timeout to [% errcon.server %]</li>
85
                    [% ELSIF ( errcon.error == 'xslt_err' ) %]<li>[% errcon.server %]: Warning: XSLT error on search result [% errcon.seq %]</li>
85
                    [% ELSIF errcon.error.match( '^XSLTH' ) %]<li>[% errcon.server %] record [% errcon.seq %]: [% PROCESS 'xslt-handler.inc' code=errcon.error %]</li>
86
                    [% ELSE %]<li>[% errcon.server %] record [% errcon.seq %]: [% errcon.error %]</li>
86
                    [% ELSE %]<li>[% errcon.server %] record [% errcon.seq %]: [% errcon.error %]</li>
87
                    [% END %]
87
                    [% END %]
88
                [% END %]
88
                [% END %]
Lines 245-248 Link Here
245
    [% INCLUDE 'z3950_search.inc' %]
245
    [% INCLUDE 'z3950_search.inc' %]
246
[% END %]
246
[% END %]
247
247
248
[% INCLUDE 'intranet-bottom.inc' popup_window=1 %]
248
[% INCLUDE 'intranet-bottom.inc' popup_window=1 %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/includes/xslt-handler.inc (+16 lines)
Line 0 Link Here
1
[% SWITCH code %]
2
    [% CASE 'XSLTH_ERR_NO_FILE' %]
3
        No XSLT file passed.
4
    [% CASE 'XSLTH_ERR_FILE_NOT_FOUND' %]
5
        XSLT file not found.
6
    [% CASE 'XSLTH_ERR_LOADING' %]
7
        Error while loading stylesheet.
8
    [% CASE 'XSLTH_ERR_PARSING_CODE' %]
9
        Error while parsing stylesheet.
10
    [% CASE 'XSLTH_ERR_PARSING_DATA' %]
11
        Error while parsing input.
12
    [% CASE 'XSLTH_ERR_TRANSFORMING' %]
13
        Error while transforming input.
14
    [% CASE 'XSLTH_NO_STRING_PASSED' %]
15
        No string to transform.
16
[% END %]
(-)a/t/db_dependent/Breeding.t (-20 / +8 lines)
Lines 46-52 subtest '_create_connection' => sub { Link Here
46
};
46
};
47
#Group 3: testing _do_xslt_proc (part of Z3950Search)
47
#Group 3: testing _do_xslt_proc (part of Z3950Search)
48
subtest '_do_xslt_proc' => sub {
48
subtest '_do_xslt_proc' => sub {
49
    plan tests => 7;
49
    plan tests => 6;
50
    test_do_xslt();
50
    test_do_xslt();
51
};
51
};
52
52
Lines 162-188 sub test_do_xslt { Link Here
162
162
163
    #ready for the main test
163
    #ready for the main test
164
    my @res = C4::Breeding::_do_xslt_proc( $biblio, $server, $engine );
164
    my @res = C4::Breeding::_do_xslt_proc( $biblio, $server, $engine );
165
    is( $res[1] && $res[1] eq 'xslt_err', undef,
165
    is( $res[1], undef, 'No error returned' );
166
        'Check error code of _do_xslt_proc');
166
    is( ref $res[0], 'MARC::Record', 'Got back MARC record');
167
    if( !$res[1] ) {
167
    is( $res[0]->subfield('990','a'), 'I saw you', 'Found 990a in the record');
168
        is( ref $res[0] eq 'MARC::Record', 1, 'Got back MARC record');
169
        my $sub = $res[0]->subfield('990','a')//'';
170
        is( $sub eq 'I saw you', 1, 'Found 990a in the record');
171
    } else {
172
        ok( 1, 'Skipped one test');
173
        ok( 1, 'Skipped another one');
174
    }
175
168
176
    #forcing an error on the xslt side
169
    #forcing an error on the xslt side
177
    $server->{add_xslt} = 'notafile.xsl';
170
    $server->{add_xslt} = 'notafile.xsl';
178
    warning_like
171
    @res = C4::Breeding::_do_xslt_proc( $biblio, $server, $engine );
179
        { @res = C4::Breeding::_do_xslt_proc( $biblio, $server, $engine ) }
172
    is( $res[1], Koha::XSLT_Handler::XSLTH_ERR_2, 'Error code found' );
180
        qr/^XSLT file not found./,
181
        '_do_xslt_proc warns it XSLT_handler problem';
182
    is( $res[1] && $res[1] eq 'xslt_err', 1,
183
        'Check error code again');
184
    #We still expect the original record back
173
    #We still expect the original record back
185
    is( ref $res[0] eq 'MARC::Record', 1, 'Still got back MARC record');
174
    is( ref $res[0], 'MARC::Record', 'Still got back MARC record' );
186
    is ( $res[0]->subfield('245','a') eq 'Just a title', 1,
175
    is ( $res[0]->subfield('245','a'), 'Just a title',
187
        'At least the title is the same :)' );
176
        'At least the title is the same :)' );
188
}
177
}
189
- 

Return to bug 20272