add latin-1 wrapper for html_entities
[libi2ncommon] / test / stringfunc.cpp
index 7771b55..90bd63a 100644 (file)
@@ -128,6 +128,12 @@ BOOST_AUTO_TEST_CASE(html_entities3)
     BOOST_CHECK_EQUAL(string("Ď ༱ 肈"), output);
 }
 
+BOOST_AUTO_TEST_CASE(entities_latin1)
+{
+    BOOST_CHECK_EQUAL((std::string)"noop", html_entities_iso ("noop"));
+    BOOST_CHECK_EQUAL((std::string)"täst", html_entities_iso ("t\xe4st"));
+    BOOST_CHECK_EQUAL((std::string)"TÄST", html_entities_iso ("T\xc4ST"));
+}
 
 
 BOOST_AUTO_TEST_CASE(nice_unit_format1)
@@ -727,6 +733,57 @@ BOOST_AUTO_TEST_CASE(JoinStringIterSet)
 } // eo JoinStringSet
 
 
+BOOST_AUTO_TEST_CASE(JoinStringIterSet_Default)
+{   /* default delimiter is newline */
+    std::set< std::string > parts;
+
+    parts.insert ("foo");
+    parts.insert ("bar");
+    parts.insert ("baz");
+
+    BOOST_CHECK_EQUAL(join_string (parts.begin (), parts.end ()), "bar\nbaz\nfoo");
+    BOOST_CHECK_EQUAL(join_string (parts                       ), "bar\nbaz\nfoo");
+
+} // eo JoinStringSet
+
+
+BOOST_AUTO_TEST_CASE(JoinStringArray_Empty)
+{
+    const char *const parts [] = { NULL };
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [0], "/"), "");
+    BOOST_CHECK_EQUAL(join_string(parts                 , "/"), "");
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [0]), "");
+    BOOST_CHECK_EQUAL(join_string(parts                 ), "");
+
+} // eo JoinStringSet
+
+BOOST_AUTO_TEST_CASE(JoinStringArray_One)
+{
+    const char *const parts [] = { "one", NULL };
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [1], "/"), "one");
+    BOOST_CHECK_EQUAL(join_string(parts                 , "/"), "one");
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [1]), "one");
+    BOOST_CHECK_EQUAL(join_string(parts                 ), "one");
+
+} // eo JoinStringSet
+
+BOOST_AUTO_TEST_CASE(JoinStringArray_Many)
+{
+    const char *const parts [5] = { "one", "two", "three", "many", NULL };
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [4], "/"), "one/two/three/many");
+    BOOST_CHECK_EQUAL(join_string(parts                 , "/"), "one/two/three/many");
+
+    BOOST_CHECK_EQUAL(join_string(&parts [0], &parts [4]), "one\ntwo\nthree\nmany");
+    BOOST_CHECK_EQUAL(join_string(parts                 ), "one\ntwo\nthree\nmany");
+
+} // eo JoinStringSet
+
+
 BOOST_AUTO_TEST_CASE(ConversionStringInt)
 {
     std::string s1("24");