Skip to content
Snippets Groups Projects
Commit 5a848de0 authored by Arseny Kapoulkine's avatar Arseny Kapoulkine
Browse files

tests: Fix XPath string comparison

Also add new tests for translate. These are technically redundant since other
tests would catch the bug with the fixed comparison, but more tests is better.
parent cb04ab27
No related branches found
No related tags found
No related merge requests found
......@@ -71,6 +71,15 @@ bool test_double_nan(double value)
}
#ifndef PUGIXML_NO_XPATH
static size_t strlength(const pugi::char_t* s)
{
#ifdef PUGIXML_WCHAR_MODE
return wcslen(s);
#else
return strlen(s);
#endif
}
bool test_xpath_string(const pugi::xpath_node& node, const pugi::char_t* query, pugi::xpath_variable_set* variables, const pugi::char_t* expected)
{
pugi::xpath_query q(query, variables);
......@@ -81,7 +90,11 @@ bool test_xpath_string(const pugi::xpath_node& node, const pugi::char_t* query,
size_t size = q.evaluate_string(result, capacity, node);
if (size <= capacity) return test_string_equal(result, expected);
if (size != strlength(expected) + 1)
return false;
if (size <= capacity)
return test_string_equal(result, expected);
std::basic_string<pugi::char_t> buffer(size, ' ');
......
......@@ -570,6 +570,14 @@ TEST(xpath_string_translate_table)
CHECK_XPATH_STRING(c, STR("translate('abcde', 'abcd', concat('ABC', 'D'))"), STR("ABCDe"));
}
TEST(xpath_string_translate_remove)
{
xml_node c;
CHECK_XPATH_STRING(c, STR("translate('000000755', '0', '')"), STR("755"));
CHECK_XPATH_STRING(c, STR("translate('000000755', concat('0', ''), '')"), STR("755"));
}
TEST_XML(xpath_nodeset_last, "<node><c1/><c1/><c2/><c3/><c3/><c3/><c3/></node>")
{
xml_node n = doc.child(STR("node"));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment