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_dom_traverse.cpp | 86 +++++++-------------------------------------- 1 file changed, 12 insertions(+), 74 deletions(-) (limited to 'tests/test_dom_traverse.cpp') diff --git a/tests/test_dom_traverse.cpp b/tests/test_dom_traverse.cpp index 0caef27..513263b 100644 --- a/tests/test_dom_traverse.cpp +++ b/tests/test_dom_traverse.cpp @@ -6,6 +6,8 @@ #include #include +#include "helpers.hpp" + #ifdef _MSC_VER #pragma warning(disable: 4996) #endif @@ -25,80 +27,6 @@ template static I move_iter(I base, int n) } #endif -template static void generic_bool_ops_test(const T& obj) -{ - T null; - - CHECK(!null); - CHECK(obj); - CHECK(!!obj); - - bool b1 = null, b2 = obj; - - CHECK(!b1); - CHECK(b2); -} - -template static void generic_rel_ops_test(T obj1, T obj2) -{ - T null = T(); - - // obj1 < obj2 (we use operator<, but there is no other choice - if (obj1 > obj2) std::swap(obj1, obj2); - - // operator== - CHECK(null == null); - CHECK(obj1 == obj1); - CHECK(!(null == obj1)); - CHECK(!(null == obj2)); - CHECK(T(null) == null); - CHECK(T(obj1) == obj1); - - // operator!= - CHECK(!(null != null)); - CHECK(!(obj1 != obj1)); - CHECK(null != obj1); - CHECK(null != obj2); - CHECK(!(T(null) != null)); - CHECK(!(T(obj1) != obj1)); - - // operator< - CHECK(null < obj1); - CHECK(null < obj2); - CHECK(obj1 < obj2); - CHECK(!(null < null)); - CHECK(!(obj1 < obj1)); - CHECK(!(obj1 < null)); - CHECK(!(obj2 < obj1)); - - // operator<= - CHECK(null <= obj1); - CHECK(null <= obj2); - CHECK(obj1 <= obj2); - CHECK(null <= null); - CHECK(obj1 <= obj1); - CHECK(!(obj1 <= null)); - CHECK(!(obj2 <= obj1)); - - // operator> - CHECK(obj1 > null); - CHECK(obj2 > null); - CHECK(obj2 > obj1); - CHECK(!(null > null)); - CHECK(!(obj1 > obj1)); - CHECK(!(null > obj1)); - CHECK(!(obj1 > obj2)); - - // operator>= - CHECK(obj1 >= null); - CHECK(obj2 >= null); - CHECK(obj2 >= obj1); - CHECK(null >= null); - CHECK(obj1 >= obj1); - CHECK(!(null >= obj1)); - CHECK(!(obj1 >= obj2)); -} - template static void generic_empty_test(const T& obj) { T null; @@ -112,6 +40,11 @@ TEST_XML(dom_attr_bool_ops, "") generic_bool_ops_test(doc.child("node").attribute("attr")); } +TEST_XML(dom_attr_eq_ops, "") +{ + generic_eq_ops_test(doc.child("node").attribute("attr1"), doc.child("node").attribute("attr2")); +} + TEST_XML(dom_attr_rel_ops, "") { generic_rel_ops_test(doc.child("node").attribute("attr1"), doc.child("node").attribute("attr2")); @@ -250,6 +183,11 @@ TEST_XML(dom_node_bool_ops, "") generic_bool_ops_test(doc.child("node")); } +TEST_XML(dom_node_eq_ops, "") +{ + generic_eq_ops_test(doc.child("node").child("node1"), doc.child("node").child("node2")); +} + TEST_XML(dom_node_rel_ops, "") { generic_rel_ops_test(doc.child("node").child("node1"), doc.child("node").child("node2")); -- cgit v1.2.3