* Copyright (C) 2005-2006, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: tst_retrieval.c,v 1.1 2006-05-04 20:00:45 adam Exp $
+ * $Id: tst_retrieval.c,v 1.5 2006-05-09 13:39:47 adam Exp $
*
*/
#include <yaz/retrieval.h>
#include <yaz/test.h>
#include <yaz/wrbuf.h>
#include <string.h>
+#include <yaz/log.h>
+#include <yaz/libxml2_error.h>
#if HAVE_CONFIG_H
#include <config.h>
static void tst_configure()
{
- YAZ_CHECK(conv_configure_test("<bad", "xmlParseMemory", 0));
-#if 0
- YAZ_CHECK(conv_configure_test("<bad/>", "Missing 'convert' element", 0));
- YAZ_CHECK(conv_configure_test("<convert/>", 0, 0));
- YAZ_CHECK(conv_configure_test("<convert><bad/></convert>",
+ YAZ_CHECK(conv_configure_test("<bad",
+ "xmlParseMemory", 0));
+
+ YAZ_CHECK(conv_configure_test("<bad/>",
+ "Missing 'retrievalinfo' element", 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo/>", 0, 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo><bad/></retrievalinfo>",
"Bad element 'bad'."
- "Expected marc, xslt, ..", 0));
- YAZ_CHECK(conv_configure_test("<convert>"
+ " Expected 'retrieval'", 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo><retrieval/>"
+ "</retrievalinfo>",
+ "Missing 'syntax' attribute", 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval syntax=\"usmarc\">\n"
+ " "
+ "<convert>"
"<xslt stylesheet=\"tst_record_conv.xsl\"/>"
"<marc"
- " inputcharset=\"marc-8\""
+ " inputcharset=\"utf-8\""
+ " outputcharset=\"marc-8\""
+ " inputformat=\"xml\""
+ " outputformat=\"marc\""
+ "/>"
+ "</convert>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ 0, 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval syntax=\"usmarc\">"
+ "<convert>"
+ "<xslt stylesheet=\"tst_record_conv.xsl\"/>"
+ "<marc"
+ " inputcharset=\"utf-8\""
" outputcharset=\"marc-8\""
+ " inputformat=\"xml\""
+ " outputformat=\"marc\""
"/>"
- "</convert>",
- "Attribute 'inputformat' required", 0));
- YAZ_CHECK(conv_configure_test("<convert>"
+ "</convert>"
+ "</retrieval>"
+ "<retrieval syntax=\"usmarc\">"
+ "<convert>"
"<xslt stylesheet=\"tst_record_conv.xsl\"/>"
"<marc"
" inputcharset=\"utf-8\""
" inputformat=\"xml\""
" outputformat=\"marc\""
"/>"
- "</convert>",
+ "</convert>"
+ "</retrieval>"
+ "</retrievalinfo>",
0, 0));
-#endif
+
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval"
+ " syntax=\"usmarc\""
+ " name=\"marcxml\""
+ " identifier=\"info:srw/schema/1/marcxml-v1.1\""
+ ">"
+ "<convert/>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ 0, 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval"
+ " syntax=\"usmarc\""
+ " name=\"marcxml\""
+ " backendsyntax=\"usmarc\""
+ " backendname=\"marcxml\""
+ " identifier=\"info:srw/schema/1/marcxml-v1.1\""
+ ">"
+ "<convert/>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ 0, 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval"
+ " syntax=\"usmarc\""
+ " name=\"marcxml\""
+ " backendsyntax=\"usmarc\""
+ " backendschema=\"marcxml\""
+ " identifier=\"info:srw/schema/1/marcxml-v1.1\""
+ ">"
+ "<convert/>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ "Bad attribute 'backendschema'."
+ " Use 'backendname' instead",
+ 0));
+
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval"
+ " syntax=\"unknown_synt\""
+ ">"
+ "<convert/>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ "Bad syntax 'unknown_synt'", 0));
+
+ YAZ_CHECK(conv_configure_test("<retrievalinfo>"
+ "<retrieval"
+ " backendsyntax=\"unknown_synt\""
+ ">"
+ "<convert/>"
+ "</retrieval>"
+ "</retrievalinfo>",
+ "Bad backendsyntax 'unknown_synt'", 0));
+
}
#endif
int main(int argc, char **argv)
{
YAZ_CHECK_INIT(argc, argv);
+
+ libxml2_error_to_yazlog(0 /* disable it */, "");
+
#if HAVE_XSLT
tst_configure();
#endif