diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test.cpp | 4 | ||||
| -rw-r--r-- | tests/test_xpath_api.cpp | 19 | 
2 files changed, 23 insertions, 0 deletions
| diff --git a/tests/test.cpp b/tests/test.cpp index 29d74c1..ac49872 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -96,6 +96,9 @@ bool test_xpath_number_nan(const pugi::xml_node& node, const pugi::char_t* query  bool test_xpath_fail_compile(const pugi::char_t* query)  { +#ifdef PUGIXML_NO_EXCEPTIONS +	return !pugi::xpath_query(query); +#else  	try  	{  		pugi::xpath_query q(query); @@ -105,6 +108,7 @@ bool test_xpath_fail_compile(const pugi::char_t* query)  	{  		return true;  	} +#endif  }  void xpath_node_set_tester::check(bool condition) diff --git a/tests/test_xpath_api.cpp b/tests/test_xpath_api.cpp index ad05083..9f09826 100644 --- a/tests/test_xpath_api.cpp +++ b/tests/test_xpath_api.cpp @@ -38,17 +38,21 @@ TEST_XML(xpath_api_select_single_node, "<node><head/><foo id='1'/><foo/><tail/><  	CHECK(n5.node().attribute(STR("id")).as_int() == 1);  } +#ifndef PUGIXML_NO_EXCEPTIONS  TEST(xpath_api_exception_what)  {  	try  	{  		xpath_query q(STR("")); + +		CHECK(!"Expected exception");  	}  	catch (const xpath_exception& e)  	{  		CHECK(e.what()[0] != 0);  	}  } +#endif  TEST_XML(xpath_api_node_bool_ops, "<node attr='value'/>")  { @@ -152,6 +156,12 @@ TEST_XML(xpath_api_evaluate, "<node attr='3'/>")  	CHECK(ns.size() == 1 && ns[0].attribute() == doc.child(STR("node")).attribute(STR("attr")));  } +#ifdef PUGIXML_NO_EXCEPTIONS +TEST(xpath_api_evaluate_node_set) +{ +	CHECK_XPATH_NODESET(xml_node(), STR("1")); +} +#else  TEST(xpath_api_evaluate_node_set)  {  	try @@ -159,11 +169,14 @@ TEST(xpath_api_evaluate_node_set)  		xpath_query q(STR("1"));  		q.evaluate_node_set(xml_node()); + +		CHECK(!"Expected exception");  	}  	catch (const xpath_exception&)  	{  	}  } +#endif  TEST(xpath_api_return_type)  { @@ -172,4 +185,10 @@ TEST(xpath_api_return_type)  	CHECK(xpath_query(STR("'s'")).return_type() == xpath_type_string);  	CHECK(xpath_query(STR("true()")).return_type() == xpath_type_boolean);  } + +// $$$ +// xpath_query bool conversion +// xpath_query::result / xpath_exception::result +// result offset +// xpath_query::rettype for no root  #endif | 
