diff options
| author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-10-27 20:16:30 +0000 | 
|---|---|---|
| committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-10-27 20:16:30 +0000 | 
| commit | 3a9ba8036893c34334278715198d19f42336f388 (patch) | |
| tree | 96544d454516310796af67ccf171bbaf4a465d36 /tests | |
| parent | fb689fed2ba7034d91227bd4663870469bd2f612 (diff) | |
XPath: Fixed concat() crash
git-svn-id: http://pugixml.googlecode.com/svn/trunk@178 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_xpath_functions.cpp | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index d492da9..9cada22 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -47,6 +47,7 @@ TEST_XML(xpath_number_sum, "<node>123<child>789</child></node><node/>")  	CHECK_XPATH_NUMBER(n, "sum(.)", 123789); // 123 .. 789
  	CHECK_XPATH_NUMBER(n, "sum(./descendant-or-self::node())", 125490); // node + 123 + child + 789 = 123789 + 123 + 789 + 789 = 125490
 +	CHECK_XPATH_NUMBER(n, "sum(.//node())", 1701); // 123 + child + 789 = 123 + 789 + 789
  	CHECK_XPATH_NUMBER_NAN(doc.last_child(), "sum(.)");
  	// sum with 2 arguments
 @@ -217,4 +218,27 @@ TEST_XML(xpath_boolean_lang, "<node xml:lang='en'><child xml:lang='ru-UK'><subch  	CHECK_XPATH_FAIL("lang(1, 2)");
  }
 +TEST(xpath_string_concat)
 +{
 +	xml_node c;
 +
 +	// concat with 0 arguments
 +	CHECK_XPATH_FAIL("concat()");
 +
 +	// concat with 1 argument
 +	CHECK_XPATH_FAIL("concat('')");
 +
 +	// concat with exactly 2 arguments
 +	CHECK_XPATH_STRING(c, "concat('prev','next')", "prevnext");
 +	CHECK_XPATH_STRING(c, "concat('','next')", "next");
 +	CHECK_XPATH_STRING(c, "concat('prev','')", "prev");
 +
 +	// concat with 3 or more arguments
 +	CHECK_XPATH_STRING(c, "concat('a', 'b', 'c')", "abc");
 +	CHECK_XPATH_STRING(c, "concat('a', 'b', 'c', 'd')", "abcd");
 +	CHECK_XPATH_STRING(c, "concat('a', 'b', 'c', 'd', 'e')", "abcde");
 +	CHECK_XPATH_STRING(c, "concat('a', 'b', 'c', 'd', 'e', 'f')", "abcdef");
 +	CHECK_XPATH_STRING(c, "concat('a', 'b', 'c', 'd', 'e', 'f', 'g')", "abcdefg");
 +}
 +
  // $$$: string value of <node>123<child>789</child>100</node> should be 123789100 (?)
 | 
