diff options
Diffstat (limited to 'api_test')
-rw-r--r-- | api_test/main.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/api_test/main.c b/api_test/main.c index 3390ac6..029a879 100644 --- a/api_test/main.c +++ b/api_test/main.c @@ -666,6 +666,40 @@ test_continuation_byte(test_batch_runner *runner, const char *utf8) } static void +numeric_entities(test_batch_runner *runner) +{ + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0"); + test_md_to_html(runner, "퟿", "<p>\xED\x9F\xBF</p>\n", + "Valid numeric entity 0xD7FF"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0xD800"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0xDFFF"); + test_md_to_html(runner, "", "<p>\xEE\x80\x80</p>\n", + "Valid numeric entity 0xE000"); + test_md_to_html(runner, "", "<p>\xF4\x8F\xBF\xBF</p>\n", + "Valid numeric entity 0x10FFFF"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0x110000"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0x80000000"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 0xFFFFFFFF"); + test_md_to_html(runner, "�", "<p>" UTF8_REPL "</p>\n", + "Invalid numeric entity 99999999"); + + test_md_to_html(runner, "&#;", "<p>&#;</p>\n", + "Min decimal entity length"); + test_md_to_html(runner, "&#x;", "<p>&#x;</p>\n", + "Min hexadecimal entity length"); + test_md_to_html(runner, "�", "<p>&#999999999;</p>\n", + "Max decimal entity length"); + test_md_to_html(runner, "A", "<p>&#x000000041;</p>\n", + "Max hexadecimal entity length"); +} + +static void test_md_to_html(test_batch_runner *runner, const char *markdown, const char *expected_html, const char *msg) { @@ -690,6 +724,7 @@ int main() { parser(runner); render_html(runner); utf8(runner); + numeric_entities(runner); test_cplusplus(runner); test_print_summary(runner); |