From 7f6b062e9f51c98e56713b1869c01573d7fe855f Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Wed, 15 Jan 2014 04:28:10 +0000 Subject: Implement automatic hexadecimal decoding for xml_attribute::as_int and xml_text::as_int. This is effectively a form of strtol with base 0, but without octal support. git-svn-id: http://pugixml.googlecode.com/svn/trunk@958 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_dom_traverse.cpp | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'tests/test_dom_traverse.cpp') diff --git a/tests/test_dom_traverse.cpp b/tests/test_dom_traverse.cpp index d699c5e..1668174 100644 --- a/tests/test_dom_traverse.cpp +++ b/tests/test_dom_traverse.cpp @@ -87,7 +87,7 @@ TEST_XML(dom_attr_as_string, "") CHECK_STRING(xml_attribute().as_string(), STR("")); } -TEST_XML(dom_attr_as_int, "") +TEST_XML(dom_attr_as_int, "") { xml_node node = doc.child(STR("node")); @@ -96,9 +96,22 @@ TEST_XML(dom_attr_as_int, "") +TEST_XML(dom_attr_as_int_hex, "") +{ + xml_node node = doc.child(STR("node")); + + CHECK(node.attribute(STR("attr1")).as_int() == 777); // no octal support! intentional + CHECK(node.attribute(STR("attr2")).as_int() == 1451); + CHECK(node.attribute(STR("attr3")).as_int() == 255); + CHECK(node.attribute(STR("attr4")).as_int() == -32); + CHECK(node.attribute(STR("attr5")).as_int() == -2147483647 - 1); + CHECK(node.attribute(STR("attr6")).as_int() == 0); +} + +TEST_XML(dom_attr_as_uint, "") { xml_node node = doc.child(STR("node")); @@ -107,6 +120,29 @@ TEST_XML(dom_attr_as_uint, "") +{ + xml_node node = doc.child(STR("node")); + + CHECK(node.attribute(STR("attr1")).as_uint() == 777); // no octal support! intentional + CHECK(node.attribute(STR("attr2")).as_uint() == 1451); + CHECK(node.attribute(STR("attr3")).as_uint() == 255); + CHECK(node.attribute(STR("attr4")).as_uint() == 32); + CHECK(node.attribute(STR("attr5")).as_uint() == 4294967295u); + CHECK(node.attribute(STR("attr6")).as_uint() == 0); +} + +TEST_XML(dom_attr_as_integer_space, "") +{ + xml_node node = doc.child(STR("node")); + + CHECK(node.attribute(STR("attr1")).as_int() == 1234); + CHECK(node.attribute(STR("attr2")).as_int() == 291); + CHECK(node.attribute(STR("attr3")).as_int() == 0); + CHECK(node.attribute(STR("attr4")).as_int() == 0); } TEST_XML(dom_attr_as_float, "") -- cgit v1.2.3