3971474cbfc93df925d7ee6244a867ae13dd2064
[ZOOM-Perl-moved-to-github.git] / t / 18-charset.t
1 # $Id: 18-charset.t,v 1.2 2008-05-14 13:32:55 mike Exp $
2
3 # Before `make install' is performed this script should be runnable with
4 # `make test'. After `make install' it should work as `perl 18-charset.t'
5
6 use strict;
7 use warnings;
8 use Test::More tests => 9;
9
10 BEGIN { use_ok('Net::Z3950::ZOOM') };
11
12 my($errcode, $errmsg, $addinfo) = (undef, "dummy", "dummy");
13
14 my $host = "z3950.loc.gov:7090/voyager";
15 my $conn = Net::Z3950::ZOOM::connection_new($host, 0);
16 $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo);
17 ok($errcode == 0, "connection to '$host'");
18
19 Net::Z3950::ZOOM::connection_option_set($conn,
20                                         preferredRecordSyntax => "usmarc");
21
22 my $qstr = '@attr 1=7 3879093520';
23 my $rs = Net::Z3950::ZOOM::connection_search_pqf($conn, $qstr);
24 $errcode = Net::Z3950::ZOOM::connection_error($conn, $errmsg, $addinfo);
25 ok($errcode == 0, "search for '$qstr'");
26
27 my $n = Net::Z3950::ZOOM::resultset_size($rs);
28 ok($n == 1, "found $n records (expected 1)");
29
30 my $rec = Net::Z3950::ZOOM::resultset_record($rs, 0);
31 ok(defined $rec, "got first record");
32
33 my $xml = Net::Z3950::ZOOM::record_get($rec, "xml");
34 ok(defined $xml, "got XML");
35
36 ok($xml =~ m(<subfield code="b">aus der .* f\350ur),
37    "got MARC pre-accented composed characters");
38
39 $xml = Net::Z3950::ZOOM::record_get($rec, "xml;charset=marc-8,utf-8");
40 ok(defined $xml, "got XML in Unicode");
41
42 ok($xml =~ m(<subfield code="b">aus der .* für),
43    "got Unicode post-accented composed characters");
44