X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Ftest_record_conv.c;h=37cb520b5639ca2d7bc75b04adea3883e300b135;hb=4eb90d87b9374b30b8ea4f9d5e70d509a11d9a58;hp=3cb5bfd6ae41d1c69231c2af3bc35c742d6b522a;hpb=4c1a14ddb2c650b935bc8dff4dc3f8a98ff7531c;p=yaz-moved-to-github.git
diff --git a/test/test_record_conv.c b/test/test_record_conv.c
index 3cb5bfd..37cb520 100644
--- a/test/test_record_conv.c
+++ b/test/test_record_conv.c
@@ -1,5 +1,5 @@
/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
#if HAVE_CONFIG_H
@@ -246,6 +246,21 @@ static void tst_convert1(void)
"\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20"
"\x1F\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x1D";
+ const char *solrmarc_rec =
+ "\x30\x30\x30\x38\x30\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34"
+ "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30"
+ "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x37\x30\x30\x30\x31\x33"
+ "#30;\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20#30;\x20\x20"
+ "#31;\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20#30;#29;";
+ const char *raw_rec = /* raw is xml-string of marcxml_rec */
+ "<record xmlns=\"http://www.loc.gov/MARC21/slim\">\n"
+ " <leader>00080nam a22000498a 4500</leader>\n"
+ " <controlfield tag=\"001\"> 11224466 </controlfield>\n"
+ " <datafield tag=\"010\" ind1=\" \" ind2=\" \">\n"
+ " <subfield code=\"a\"> 11224466 </subfield>\n"
+ " </datafield>\n"
+ "</record>\n\n";
+
YAZ_CHECK(conv_configure_test(""
""
+ ""
+ ""
+ "",
+ 0, &p));
+ YAZ_CHECK(conv_convert_test(p, solrmarc_rec, marcxml_rec));
+ yaz_record_conv_destroy(p);
YAZ_CHECK(conv_configure_test(""
""
@@ -310,6 +337,13 @@ static void tst_convert1(void)
0, &p));
YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec));
yaz_record_conv_destroy(p);
+
+ YAZ_CHECK(conv_configure_test(""
+ "",
+ 0, &p));
+ YAZ_CHECK(conv_convert_test(p, raw_rec, marcxml_rec));
+ yaz_record_conv_destroy(p);
}
static void tst_convert2(void)
@@ -350,7 +384,7 @@ static void tst_convert3(void)
yaz_record_conv_t p = 0;
const char *iso2709_rec =
- "\x30\x30\x30\x37\x37\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34"
+ "\x30\x30\x30\x37\x37\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x30\x34"
"\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30"
"\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x34\x30\x30\x30\x31\x33"
"\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20"
@@ -504,7 +538,7 @@ static void tst_convert3(void)
Z_OPACRecord *opac = 0;
yaz_marc_t mt = yaz_marc_create();
ret = yaz_xml_to_opac(mt, opacxml_rec, strlen(opacxml_rec),
- &opac, 0 /* iconv */, nmem);
+ &opac, 0 /* iconv */, nmem, 0);
YAZ_CHECK(ret);
YAZ_CHECK(opac);
@@ -541,6 +575,43 @@ static void tst_convert3(void)
nmem_destroy(nmem);
}
+static void tst_convert4(void)
+{
+ NMEM nmem = nmem_create();
+ int ret;
+
+ const char *opacxml_rec =
+ "\n"
+ " \n"
+ "\n"
+ " 00077nam a22000498a 4500\n"
+ " 11224466 \n"
+ " \n"
+ " k" "\xc3" "\xb8" /* oslash in UTF_8 */
+ "benhavn\n"
+ " \n"
+ "\n"
+ " \n"
+ " \n"
+ " \n"
+ " Sprague Library hidden basement\n"
+ " E98.L7L44 1976 \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ ;
+
+ Z_OPACRecord *opac = 0;
+ yaz_marc_t mt = yaz_marc_create();
+ ret = yaz_xml_to_opac(mt, opacxml_rec, strlen(opacxml_rec),
+ &opac, 0 /* iconv */, nmem, 0);
+ YAZ_CHECK(ret);
+ YAZ_CHECK(opac);
+ yaz_marc_destroy(mt);
+ nmem_destroy(nmem);
+}
+
#endif
int main(int argc, char **argv)
@@ -554,10 +625,7 @@ int main(int argc, char **argv)
tst_convert1();
tst_convert2();
tst_convert3();
- xsltCleanupGlobals();
-#endif
-#if YAZ_HAVE_XML2
- xmlCleanupParser();
+ tst_convert4();
#endif
YAZ_CHECK_TERM;
}