summaryrefslogtreecommitdiff
path: root/tests/runtests.c
diff options
context:
space:
mode:
authorfdrake <fdrake>2002-08-23 03:14:01 +0000
committerfdrake <fdrake>2002-08-23 03:14:01 +0000
commit4cb01a21a46b1b9dee28f957605432680942d312 (patch)
treeaa2fc0efc676459abbc120488f5a4486595ce4d6 /tests/runtests.c
parentbfac29f891e477d86400a401cfaa7059e4f85845 (diff)
downloadlibexpat-4cb01a21a46b1b9dee28f957605432680942d312.tar.gz
Renamed the last test added to be more clear about the condition being
tested. Added a couple of additional tests checking for proper response to the same well-formedness constraint. No bugs to fix there, just trying to improve the coverage of the test suite.
Diffstat (limited to 'tests/runtests.c')
-rw-r--r--tests/runtests.c36
1 files changed, 34 insertions, 2 deletions
diff --git a/tests/runtests.c b/tests/runtests.c
index 0d51375..fdfcd5a 100644
--- a/tests/runtests.c
+++ b/tests/runtests.c
@@ -511,7 +511,7 @@ END_TEST
/* Test that no error is reported for unknown entities if we don't
read an external subset. This was fixed in Expat 1.95.5.
*/
-START_TEST(test_wfc_declared_entity_unread_external_subset) {
+START_TEST(test_wfc_undeclared_entity_unread_external_subset) {
char *text =
"<!DOCTYPE doc SYSTEM 'foo'>\n"
"<doc>&entity;</doc>";
@@ -521,6 +521,35 @@ START_TEST(test_wfc_declared_entity_unread_external_subset) {
}
END_TEST
+/* Test that an error is reported for unknown entities if we don't
+ have an external subset.
+*/
+START_TEST(test_wfc_undeclared_entity_no_external_subset) {
+ char *text = "<doc>&entity;</doc>";
+
+ if (XML_Parse(parser, text, strlen(text), 1) == XML_STATUS_OK)
+ fail("Parser did not report error on undefined entity w/out a DTD.");
+ if (XML_GetErrorCode(parser) != XML_ERROR_UNDEFINED_ENTITY)
+ xml_failure(parser);
+}
+END_TEST
+
+/* Test that an error is reported for unknown entities if we don't
+ read an external subset, but have been declared standalone.
+*/
+START_TEST(test_wfc_undeclared_entity_standalone) {
+ char *text =
+ "<?xml version='1.0' encoding='us-ascii' standalone='yes'?>\n"
+ "<!DOCTYPE doc SYSTEM 'foo'>\n"
+ "<doc>&entity;</doc>";
+
+ if (XML_Parse(parser, text, strlen(text), 1) == XML_STATUS_OK)
+ fail("Parser did not report error on undefined entity (standalone).");
+ if (XML_GetErrorCode(parser) != XML_ERROR_UNDEFINED_ENTITY)
+ xml_failure(parser);
+}
+END_TEST
+
/*
* Namespaces tests.
@@ -703,7 +732,10 @@ make_basic_suite(void)
tcase_add_test(tc_basic, test_attr_whitespace_normalization);
tcase_add_test(tc_basic, test_xmldecl_misplaced);
tcase_add_test(tc_basic, test_unknown_encoding_internal_entity);
- tcase_add_test(tc_basic, test_wfc_declared_entity_unread_external_subset);
+ tcase_add_test(tc_basic,
+ test_wfc_undeclared_entity_unread_external_subset);
+ tcase_add_test(tc_basic, test_wfc_undeclared_entity_no_external_subset);
+ tcase_add_test(tc_basic, test_wfc_undeclared_entity_standalone);
suite_add_tcase(s, tc_namespace);
tcase_add_checked_fixture(tc_namespace,