Added a test that ensures the parser reports an out-of-place XML declaration.

(Originally written to attempt to tickle a different bug, but useful as a
regression test even though Expat has been doing the right thing.)
This commit is contained in:
Fred L. Drake, Jr. 2001-11-13 04:49:52 +00:00
parent a81be4f942
commit 5769f4a431

View File

@ -54,17 +54,43 @@ START_TEST(test_u0000_char)
END_TEST
START_TEST(test_xmldecl_misplaced)
{
char *text =
"\n"
"<?xml version='1.0'?>\n"
"<a>&eee;</a>";
if (parser == NULL)
fail("Parser not created.");
if (!XML_Parse(parser, text, strlen(text), 1)) {
fail_unless(XML_GetErrorCode(parser) == XML_ERROR_MISPLACED_XML_PI,
"wrong error when XML declaration is misplaced");
}
else {
fail("expected XML_ERROR_MISPLACED_XML_PI with misplaced XML decl");
}
}
END_TEST
static Suite *
make_basic_suite(void)
{
Suite *s = suite_create("basic");
TCase *tc_nulls = tcase_create("null characters");
TCase *tc_xmldecl = tcase_create("XML declaration");
suite_add_tcase(s, tc_nulls);
tcase_set_fixture(tc_nulls, basic_setup, basic_teardown);
tcase_add_test(tc_nulls, test_nul_byte);
tcase_add_test(tc_nulls, test_u0000_char);
suite_add_tcase(s, tc_xmldecl);
tcase_set_fixture(tc_xmldecl, basic_setup, basic_teardown);
tcase_add_test(tc_xmldecl, test_xmldecl_misplaced);
return s;
}