diff options
author | fdrake <fdrake> | 2003-01-21 05:41:24 +0000 |
---|---|---|
committer | fdrake <fdrake> | 2003-01-21 05:41:24 +0000 |
commit | 4b8b29ce9951566734cf1e31afa28d9b85b3916f (patch) | |
tree | 501728955b856957f78c76f11250ab5168c9c93c /tests | |
parent | 90a12229084a04c92ed7703e823dbbe0f2f7bb26 (diff) | |
download | libexpat-4b8b29ce9951566734cf1e31afa28d9b85b3916f.tar.gz |
Fix test case regarding reporting of undefined entities and
non-validating parsers (see section 5.1 of the XML 1.0 specification).
Diffstat (limited to 'tests')
-rw-r--r-- | tests/runtests.c | 27 |
1 files changed, 24 insertions, 3 deletions
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 = - "<?xml version='1.0' encoding='us-ascii'?>\n" + "<?xml version='1.0' encoding='us-ascii' standalone='yes'?>\n" "<!DOCTYPE doc SYSTEM 'foo'>\n" "<doc>&entity;</doc>"; 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 = + "<?xml version='1.0' encoding='us-ascii'?>\n" + "<!DOCTYPE doc SYSTEM 'foo'>\n" + "<doc>&entity;</doc>"; + char *foo_text = + "<!ELEMENT doc (#PCDATA)*>"; + + 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); |