From fc25cfd7505d36485577c4712e83060bc308a368 Mon Sep 17 00:00:00 2001 From: Rhodri James Date: Mon, 19 Jun 2017 12:26:29 +0100 Subject: [PATCH] Test IGNORE rejection with an unknown encoding --- expat/tests/runtests.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/expat/tests/runtests.c b/expat/tests/runtests.c index 141ec44a..f2e0783a 100644 --- a/expat/tests/runtests.c +++ b/expat/tests/runtests.c @@ -6373,6 +6373,28 @@ START_TEST(test_bad_doctype_query) } END_TEST +START_TEST(test_unknown_encoding_bad_ignore) +{ + const char *text = + "" + "" + "&entity;"; + ExtFaults fault = { + "]]>", + "Invalid character not faulted", + "prefix-conv", + XML_ERROR_INVALID_TOKEN + }; + + XML_SetUnknownEncodingHandler(parser, MiscEncodingHandler, NULL); + XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); + XML_SetExternalEntityRefHandler(parser, external_entity_faulter); + XML_SetUserData(parser, &fault); + expect_failure(text, XML_ERROR_EXTERNAL_ENTITY_HANDLING, + "Bad IGNORE section with unknown encoding not failed"); +} +END_TEST + /* * Namespaces tests. */ @@ -11844,6 +11866,7 @@ make_suite(void) tcase_add_test(tc_basic, test_bad_doctype_plus); tcase_add_test(tc_basic, test_bad_doctype_star); tcase_add_test(tc_basic, test_bad_doctype_query); + tcase_add_test(tc_basic, test_unknown_encoding_bad_ignore); suite_add_tcase(s, tc_namespace); tcase_add_checked_fixture(tc_namespace, -- 2.40.0