]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
Fix Unicode mangling in clean_marc function
[working/Evergreen.git] / Open-ILS / src / perlmods / t / 14-OpenILS-Utils.t
1 #!perl -T
2
3 use Test::More tests => 24;
4
5 use_ok( 'OpenILS::Utils::Configure' );
6 use_ok( 'OpenILS::Utils::Cronscript' );
7 use_ok( 'OpenILS::Utils::CStoreEditor' );
8 use_ok( 'OpenILS::Utils::Editor' );
9 use_ok( 'OpenILS::Utils::Fieldmapper' );
10 use_ok( 'OpenILS::Utils::ISBN' );
11 use_ok( 'OpenILS::Utils::Lockfile' );
12 use_ok( 'OpenILS::Utils::MFHDParser' );
13 use_ok( 'OpenILS::Utils::MFHD' );
14 use_ok( 'OpenILS::Utils::ModsParser' );
15 use_ok( 'OpenILS::Utils::Normalize' );
16 use_ok( 'OpenILS::Utils::OfflineStore' );
17 use_ok( 'OpenILS::Utils::Penalty' );
18 use_ok( 'OpenILS::Utils::PermitHold' );
19 use_ok( 'OpenILS::Utils::RemoteAccount' );
20 use_ok( 'OpenILS::Utils::ScriptRunner' );
21 use_ok( 'OpenILS::Utils::SpiderMonkey' );
22 use_ok( 'OpenILS::Utils::ZClient' );
23
24 # LP 800269 - Test MFHD holdings for records that only contain a caption field
25 my $co_marc = MARC::Record->new();
26 $co_marc->append_fields(
27     MARC::Field->new('853','','',
28         '8' => '1',
29         'a' => 'v.',
30         'b' => '[no.]',
31     )
32 );
33 my $co_mfhd = MFHD->new($co_marc);
34
35 my @comp_holdings = $co_mfhd->get_compressed_holdings($co_mfhd->field('853'));
36 is(@comp_holdings, 0, "Compressed holdings for an MFHD record that only has a caption");
37
38 my @decomp_holdings = $co_mfhd->get_decompressed_holdings($co_mfhd->field('853'));
39 is(@decomp_holdings, 0, "Decompressed holdings for an MFHD record that only has a caption");
40
41 my $apostring = OpenILS::Utils::Normalize::naco_normalize("it's time");
42 is($apostring, "its time", "naco_normalize: strip apostrophes");
43
44 my $apos = OpenILS::Utils::Normalize::search_normalize("it's time");
45 is($apos, "it s time", "search_normalize: replace apostrophes with space");
46
47 my $raw_marcxml = <<RAWMARC;
48 <?xml version="1.0" encoding="utf-8"?>
49 <record>
50   <leader>01614nmm a22003975u 4500</leader>
51   <controlfield tag="001">978-0-387-35767-6</controlfield>
52   <controlfield tag="003">Springer</controlfield>
53   <controlfield tag="005">20071022150035.8</controlfield>
54   <controlfield tag="007">cr nn 008mamaa</controlfield>
55   <controlfield tag="008">071022s2008    xx         j        eng d</controlfield>
56   <datafield tag="020" ind1=" " ind2=" ">
57     <subfield code="a">9780387685748</subfield>
58   </datafield>
59   <datafield tag="100" ind1="1" ind2=" ">
60     <subfield code="a">Neteler, Markus.</subfield>
61   </datafield>
62   <datafield tag="245" ind1="1" ind2="0">
63     <subfield code="a">Open Source GIS</subfield>
64     <subfield code="h">[electronic resource] :</subfield>
65     <subfield code="b">A GRASS GIS Approach /</subfield>
66     <subfield code="c">edited by Markus Neteler, Helena Mitasova.</subfield>
67   </datafield>
68   <datafield tag="250" ind1=" " ind2=" ">
69     <subfield code="a">Third Edition.</subfield>
70   </datafield>
71   <datafield tag="260" ind1=" " ind2=" ">
72     <subfield code="a">Boston, MA :</subfield>
73     <subfield code="b">Springer Science+Business Media, LLC,</subfield>
74     <subfield code="c">2008.</subfield>
75   </datafield>
76 </record>
77 RAWMARC
78 my $exp_xml = '<record><leader>01614nmm a22003975u 4500</leader><controlfield tag="001">978-0-387-35767-6</controlfield><controlfield tag="003">Springer</controlfield><controlfield tag="005">20071022150035.8</controlfield><controlfield tag="007">cr nn 008mamaa</controlfield><controlfield tag="008">071022s2008    xx         j        eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780387685748</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Neteler, Markus.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Open Source GIS</subfield><subfield code="h">[electronic resource] :</subfield><subfield code="b">A GRASS GIS Approach /</subfield><subfield code="c">edited by Markus Neteler, Helena Mitasova.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">Third Edition.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Boston, MA :</subfield><subfield code="b">Springer Science+Business Media, LLC,</subfield><subfield code="c">2008.</subfield></datafield></record>';
79 my $clean_xml = OpenILS::Utils::Normalize::clean_marc($raw_marcxml);
80 is($clean_xml, $exp_xml, "clean_marc: header and space normalization");
81
82 is(OpenILS::Utils::Normalize::clean_marc('èöçÇÈÀ'), '&#xE8;&#xF6;&#xE7;&#xC7;&#xC8;&#xC0;', 'clean_marc: diacritics');