diff options
author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-10-20 17:49:52 +0000 |
---|---|---|
committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-10-20 17:49:52 +0000 |
commit | 3d986d2b0dcae25c5248b40f2dde27ed078905ee (patch) | |
tree | 09f6bf55e5268af0a27f4dca4ec82d8f19fbb70d /tests/test_parse.cpp | |
parent | a0990f0975e9c241b71b38ced6b7326a28d3218e (diff) |
tests: Added declaration and document load/load_file error tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@157 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'tests/test_parse.cpp')
-rw-r--r-- | tests/test_parse.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/test_parse.cpp b/tests/test_parse.cpp index 81cd84f..749e686 100644 --- a/tests/test_parse.cpp +++ b/tests/test_parse.cpp @@ -355,3 +355,45 @@ TEST(parse_tag_error) CHECK(doc.load("<node></node ", parse_minimal).status == status_bad_end_element);
CHECK(doc.load("<node></nodes>", parse_minimal).status == status_end_element_mismatch);
}
+
+TEST(parse_declaration_skip)
+{
+ xml_document doc;
+ CHECK(doc.load("<?xml?><?xml version='1.0'?>", parse_minimal));
+ CHECK(!doc.first_child());
+}
+
+TEST(parse_declaration_parse)
+{
+ xml_document doc;
+ CHECK(doc.load("<?xml?><?xml version='1.0'?>", parse_minimal | parse_declaration));
+
+ xml_node d1 = doc.first_child();
+ xml_node d2 = doc.last_child();
+
+ CHECK(d1 != d2);
+ CHECK(d1.type() == node_declaration);
+ CHECK_STRING(d1.name(), "xml");
+ CHECK(d2.type() == node_declaration);
+ CHECK_STRING(d2.name(), "xml");
+ CHECK_STRING(d2.attribute("version").value(), "1.0");
+}
+
+TEST(parse_declaration_error)
+{
+ xml_document doc;
+
+ unsigned int flag_sets[] = {parse_minimal, parse_minimal | parse_declaration};
+
+ for (unsigned int i = 0; i < sizeof(flag_sets) / sizeof(flag_sets[0]); ++i)
+ {
+ unsigned int flags = flag_sets[i];
+
+ CHECK(doc.load("<?xml", flags).status == status_bad_pi);
+ CHECK(doc.load("<?xml?", flags).status == status_bad_pi);
+ CHECK(doc.load("<?xml>", flags).status == status_bad_pi);
+ CHECK(doc.load("<?xml version='1>", flags).status == status_bad_pi);
+ }
+
+ CHECK(doc.load("<?xml version='1?>", parse_minimal | parse_declaration).status == status_bad_attribute);
+}
|