From 4b8b29ce9951566734cf1e31afa28d9b85b3916f Mon Sep 17 00:00:00 2001 From: fdrake Date: Tue, 21 Jan 2003 05:41:24 +0000 Subject: Fix test case regarding reporting of undefined entities and non-validating parsers (see section 5.1 of the XML 1.0 specification). --- tests/runtests.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/runtests.c b/tests/runtests.c index 246d4eb..e8738da 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -827,11 +827,11 @@ external_entity_loader(XML_Parser parser, } /* Test that an error is reported for unknown entities if we have read - an external subset. + an external subset, and standalone is true. */ -START_TEST(test_wfc_undeclared_entity_with_external_subset) { +START_TEST(test_wfc_undeclared_entity_with_external_subset_standalone) { char *text = - "\n" + "\n" "\n" "&entity;"; char *foo_text = @@ -846,6 +846,25 @@ START_TEST(test_wfc_undeclared_entity_with_external_subset) { } END_TEST +/* Test that no error is reported for unknown entities if we have read + an external subset, and standalone is false. +*/ +START_TEST(test_wfc_undeclared_entity_with_external_subset) { + char *text = + "\n" + "\n" + "&entity;"; + char *foo_text = + ""; + + XML_SetParamEntityParsing(parser, XML_PARAM_ENTITY_PARSING_ALWAYS); + XML_SetUserData(parser, foo_text); + XML_SetExternalEntityRefHandler(parser, external_entity_loader); + if (XML_Parse(parser, text, strlen(text), 1) == XML_STATUS_ERROR) + xml_failure(parser); +} +END_TEST + START_TEST(test_wfc_no_recursive_entity_refs) { char *text = @@ -1165,6 +1184,8 @@ make_basic_suite(void) tcase_add_test(tc_basic, test_wfc_undeclared_entity_no_external_subset); tcase_add_test(tc_basic, test_wfc_undeclared_entity_standalone); tcase_add_test(tc_basic, test_wfc_undeclared_entity_with_external_subset); + tcase_add_test(tc_basic, + test_wfc_undeclared_entity_with_external_subset_standalone); tcase_add_test(tc_basic, test_wfc_no_recursive_entity_refs); tcase_add_test(tc_basic, test_ext_entity_set_encoding); tcase_add_test(tc_basic, test_dtd_default_handling); -- cgit v1.2.1