From 48bbb9f4dd9e6581e61d4d60e132cdb4415f813e Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 8 Nov 2009 13:52:55 +0000 Subject: tests: Extracted generic tests in a separate header, better filter tests, some API tests added git-svn-id: http://pugixml.googlecode.com/svn/trunk@221 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_xpath_api.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/test_xpath_api.cpp (limited to 'tests/test_xpath_api.cpp') diff --git a/tests/test_xpath_api.cpp b/tests/test_xpath_api.cpp new file mode 100644 index 0000000..c032cb9 --- /dev/null +++ b/tests/test_xpath_api.cpp @@ -0,0 +1,66 @@ +#ifndef PUGIXML_NO_XPATH + +#include "common.hpp" + +#include "helpers.hpp" + +TEST_XML(xpath_api_select_nodes, "") +{ + doc.precompute_document_order(); + + xpath_node_set ns1 = doc.select_nodes("node/foo"); + + xpath_query q("node/foo"); + xpath_node_set ns2 = doc.select_nodes(q); + + CHECK(ns1.size() == 2 && ns1[0].node().document_order() == 4 && ns1[1].node().document_order() == 5); + CHECK(ns2.size() == 2 && ns2[0].node().document_order() == 4 && ns2[1].node().document_order() == 5); +} + +TEST_XML(xpath_api_select_single_node, "") +{ + doc.precompute_document_order(); + + xpath_node n1 = doc.select_single_node("node/foo"); + + xpath_query q("node/foo"); + xpath_node n2 = doc.select_single_node(q); + + CHECK(n1.node().document_order() == 4); + CHECK(n2.node().document_order() == 4); + + xpath_node n3 = doc.select_single_node("node/bar"); + + CHECK(!n3); + + xpath_node n4 = doc.select_single_node("node/head/following-sibling::foo"); + xpath_node n5 = doc.select_single_node("node/tail/preceding-sibling::foo"); + + CHECK(n4.node().document_order() == 4); + CHECK(n5.node().document_order() == 4); +} + +TEST(xpath_api_exception_what) +{ + try + { + xpath_query q(""); + } + catch (const xpath_exception& e) + { + CHECK(e.what()[0] != 0); + } +} + +TEST_XML(xpath_api_node_bool_ops, "") +{ + generic_bool_ops_test(doc.select_single_node("node")); + generic_bool_ops_test(doc.select_single_node("node/@attr")); +} + +TEST_XML(xpath_api_node_eq_ops, "") +{ + generic_eq_ops_test(doc.select_single_node("node"), doc.select_single_node("node/@attr")); +} + +#endif -- cgit v1.2.3