2 * Copyright (C) 2005-2006, Index Data ApS
3 * See the file LICENSE for details.
5 * $Id: tst_record_conv.c,v 1.1 2006-05-02 20:47:46 adam Exp $
8 #include <yaz/record_conv.h>
10 #include <yaz/wrbuf.h>
15 #include <libxml/parser.h>
16 #include <libxml/tree.h>
18 yaz_record_conv_t conv_from_xml(const char *xmlstring, WRBUF w)
20 xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring));
23 wrbuf_printf(w, "xmlParseMemory");
28 xmlNodePtr ptr = xmlDocGetRootElement(doc);
29 yaz_record_conv_t p = yaz_record_conv_create();
33 wrbuf_printf(w, "xmlDocGetRootElement");
34 yaz_record_conv_destroy(p);
39 wrbuf_printf(w, "yaz_record_conv_create");
43 int r = yaz_record_conv_configure(p, ptr);
47 wrbuf_puts(w, yaz_record_conv_get_error(p));
48 yaz_record_conv_destroy(p);
57 int conv_from_xml_compare(const char *xmlstring, const char *expect_error,
58 yaz_record_conv_t *pt)
60 WRBUF w = wrbuf_alloc();
63 yaz_record_conv_t p = conv_from_xml(xmlstring, w);
67 if (expect_error && !strcmp(wrbuf_buf(w), expect_error))
77 yaz_record_conv_destroy(p);
84 yaz_record_conv_destroy(p);
94 YAZ_CHECK(conv_from_xml_compare("<bad", "xmlParseMemory", 0));
95 YAZ_CHECK(conv_from_xml_compare("<bad/>", "Missing 'convert' element", 0));
96 YAZ_CHECK(conv_from_xml_compare("<convert/>", 0, 0));
97 YAZ_CHECK(conv_from_xml_compare("<convert><bad/></convert>",
99 "Expected xslt, marc_to_xml,...", 0));
100 YAZ_CHECK(conv_from_xml_compare("<convert>"
101 "<xslt stylesheet=\"x.xsl\"/>"
102 "<marc_to_xml charset=\"marc-8\"/>"
108 int main(int argc, char **argv)
110 YAZ_CHECK_INIT(argc, argv);
120 * indent-tabs-mode: nil
122 * vim: shiftwidth=4 tabstop=8 expandtab