From b8a916fbe14fa51abaeb325390a3a177a4561a71 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Sat, 19 Dec 2015 21:59:20 -0800 Subject: Added api_tests for custom nodes. --- api_test/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/api_test/main.c b/api_test/main.c index bcfbb6d..03a7b1b 100644 --- a/api_test/main.c +++ b/api_test/main.c @@ -445,6 +445,47 @@ create_tree(test_batch_runner *runner) cmark_node_free(emph); } +static void +custom_nodes(test_batch_runner *runner) +{ + char *html; + char *man; + cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT); + cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH); + cmark_node_append_child(doc, p); + cmark_node *ci = cmark_node_new(CMARK_NODE_CUSTOM_INLINE); + cmark_node *str1 = cmark_node_new(CMARK_NODE_TEXT); + cmark_node_set_literal(str1, "Hello"); + OK(runner, cmark_node_append_child(ci, str1), "append1"); + OK(runner, cmark_node_set_on_enter(ci, "<ON ENTER|"), + "set_on_enter"); + OK(runner, cmark_node_set_on_exit(ci, "|ON EXIT>"), + "set_on_exit"); + STR_EQ(runner, cmark_node_get_on_enter(ci), "<ON ENTER|", + "get_on_enter"); + STR_EQ(runner, cmark_node_get_on_exit(ci), "|ON EXIT>", + "get_on_exit"); + cmark_node_append_child(p, ci); + cmark_node *cb = cmark_node_new(CMARK_NODE_CUSTOM_BLOCK); + cmark_node_set_on_enter(cb, "<on enter|"); + // leave on_exit unset + STR_EQ(runner, cmark_node_get_on_exit(cb), "", + "get_on_exit (empty)"); + cmark_node_append_child(doc, cb); + + html = cmark_render_html(doc, CMARK_OPT_DEFAULT); + STR_EQ(runner, html, "<p><ON ENTER|Hello|ON EXIT></p>\n<on enter|\n", + "render_html"); + free(html); + + man = cmark_render_man(doc, CMARK_OPT_DEFAULT, 0); + STR_EQ(runner, man, ".PP\n<ON ENTER|Hello|ON EXIT>\n<on enter|\n", + "render_man"); + free(man); + + cmark_node_free(doc); +} + void hierarchy(test_batch_runner *runner) { @@ -765,6 +806,7 @@ int main() { iterator(runner); iterator_delete(runner); create_tree(runner); + custom_nodes(runner); hierarchy(runner); parser(runner); render_html(runner); -- cgit v1.2.3