Fix Metaproxy stops logging after check config failed MP-590
[metaproxy-moved-to-github.git] / src / test_xmlutil.cpp
index 13065a1..c19590a 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Metaproxy.
-   Copyright (C) 2005-2011 Index Data
+   Copyright (C) Index Data
 
 Metaproxy is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -36,9 +36,9 @@ namespace mp_xml = metaproxy_1::xml;
 
 BOOST_AUTO_TEST_CASE( url_recipe )
 {
-    try 
+    try
     {
-        const char *xml_text = 
+        const char *xml_text =
             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
             "<pz:record xmlns:pz=\"http://www.indexdata.com/pazpar2/1.0\""
             " xmlns:tmarc=\"http://www.indexdata.com/turbomarc\">\n"
@@ -63,44 +63,51 @@ BOOST_AUTO_TEST_CASE( url_recipe )
             BOOST_CHECK(!res.compare("abc"));
 
             res = mp_xml::url_recipe_handle(doc, "${has-fulltext[no/yes]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare("yes"));
 
+            res = mp_xml::url_recipe_handle(doc, "<${has-fulltext[no/yes]}>");
+            BOOST_CHECK(!res.compare("<yes>"));
+
             res = mp_xml::url_recipe_handle(doc, "${has-fulltext[no]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare(""));
 
             res = mp_xml::url_recipe_handle(doc, "${has-fulltext[no/]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare(""));
 
             res = mp_xml::url_recipe_handle(doc, "${has-fulltext[n/]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare("o"));
 
             res = mp_xml::url_recipe_handle(doc, "${has-fulltext}");
-            std::cout << "res=" << res << std::endl;
+            BOOST_CHECK(!res.compare("no"));
+
+            res = mp_xml::url_recipe_handle(doc, "%{has-fulltext}");
             BOOST_CHECK(!res.compare("no"));
 
             res = mp_xml::url_recipe_handle(
                 doc, "http://sever.com?title=${md-title[\\s+/+/g]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare("http://sever.com?title=How+to+program+a+computer"));
 
+            res = mp_xml::url_recipe_handle(
+                doc, "http://sever.com?title=%{md-title}");
+            BOOST_CHECK(!res.compare("http://sever.com?title=How%20to%20program%20a%20computer"));
+
+
             res = mp_xml::url_recipe_handle(doc, "${md-id[2/1]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare("   11124466 "));
 
             res = mp_xml::url_recipe_handle(doc, "${md-id[2/1/g]}");
-            std::cout << "res=" << res << std::endl;
             BOOST_CHECK(!res.compare("   11114466 "));
 
-
             xmlFreeDoc(doc);
         }
     }
+    catch ( std::runtime_error &e) {
+        std::cout << "std::runtime error: " << e.what() << std::endl;
+        BOOST_CHECK(false);
+    }
     catch ( ... ) {
-        BOOST_CHECK (false);
+        std::cout << "unknown exception" << std::endl;
+        BOOST_CHECK(false);
     }
 }