From 5769f4a43156101d759fc0bbce6cbbf207256e2e Mon Sep 17 00:00:00 2001 From: "Fred L. Drake, Jr." Date: Tue, 13 Nov 2001 04:49:52 +0000 Subject: [PATCH] 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.) --- expat/tests/runtests.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/expat/tests/runtests.c b/expat/tests/runtests.c index 47d9654c..1cb48890 100644 --- a/expat/tests/runtests.c +++ b/expat/tests/runtests.c @@ -54,17 +54,43 @@ START_TEST(test_u0000_char) END_TEST +START_TEST(test_xmldecl_misplaced) +{ + char *text = + "\n" + "\n" + "&eee;"; + + 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; }