diff options
Diffstat (limited to 'tests/test_xpath_functions.cpp')
-rw-r--r-- | tests/test_xpath_functions.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index da820ef..678bc2e 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -216,7 +216,7 @@ TEST(xpath_boolean_false) CHECK_XPATH_FAIL(STR("false(1)")); } -TEST_XML(xpath_boolean_lang, "<node xml:lang='en'><child xml:lang='zh-UK'><subchild/></child></node><foo><bar/></foo>") +TEST_XML(xpath_boolean_lang, "<node xml:lang='en'><child xml:lang='zh-UK'><subchild attr=''/></child></node><foo><bar/></foo>") { xml_node c; @@ -244,6 +244,9 @@ TEST_XML(xpath_boolean_lang, "<node xml:lang='en'><child xml:lang='zh-UK'><subch CHECK_XPATH_BOOLEAN(doc.child(STR("node")).child(STR("child")), STR("lang('r')"), false); CHECK_XPATH_BOOLEAN(doc.child(STR("node")).child(STR("child")).child(STR("subchild")), STR("lang('en')"), false); + // lang with 1 attribute argument + CHECK_XPATH_NODESET(doc, STR("//@*[lang('en')]")); + // lang with 2 arguments CHECK_XPATH_FAIL(STR("lang(1, 2)")); } @@ -773,6 +776,16 @@ TEST_XML_FLAGS(xpath_string_value, "<node><c1>pcdata</c1><c2><child/></c2><c3 at CHECK_XPATH_STRING(n, STR("string(c6/node())"), STR("cdata")); } +TEST(xpath_string_value_empty) +{ + xml_document doc; + doc.append_child(node_pcdata).set_value(STR("head")); + doc.append_child(node_pcdata); + doc.append_child(node_pcdata).set_value(STR("tail")); + + CHECK_XPATH_STRING(doc, STR("string()"), STR("headtail")); +} + TEST_XML(xpath_string_concat_translate, "<node>foobar</node>") { CHECK_XPATH_STRING(doc, STR("concat('a', 'b', 'c', translate(node, 'o', 'a'), 'd')"), STR("abcfaabard")); |