summaryrefslogtreecommitdiff
path: root/api_test
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-12-28 17:19:25 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2015-12-28 17:19:25 -0800
commit37e2c4b2bf50d8da468dcac93f35567fe00700e6 (patch)
tree6388e92b4a04625c18d580e8b8e89f96bb4bdeac /api_test
parentcbc1bb638e14b010371e657c6861e83d99d230e1 (diff)
Added xml renderer test to API tests.
Closes #51.
Diffstat (limited to 'api_test')
-rw-r--r--api_test/main.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/api_test/main.c b/api_test/main.c
index 6961c55..c2c5ee2 100644
--- a/api_test/main.c
+++ b/api_test/main.c
@@ -508,6 +508,48 @@ static void render_html(test_batch_runner *runner) {
cmark_node_free(doc);
}
+static void render_xml(test_batch_runner *runner) {
+ char *xml;
+
+ static const char markdown[] = "foo *bar*\n"
+ "\n"
+ "paragraph 2\n";
+ cmark_node *doc =
+ cmark_parse_document(markdown, sizeof(markdown) - 1, CMARK_OPT_DEFAULT);
+
+ xml = cmark_render_xml(doc, CMARK_OPT_DEFAULT);
+ STR_EQ(runner, xml,
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"
+ "<document xmlns=\"http://commonmark.org/xml/1.0\">\n"
+ " <paragraph>\n"
+ " <text>foo </text>\n"
+ " <emph>\n"
+ " <text>bar</text>\n"
+ " </emph>\n"
+ " </paragraph>\n"
+ " <paragraph>\n"
+ " <text>paragraph 2</text>\n"
+ " </paragraph>\n"
+ "</document>\n",
+ "render document");
+ free(xml);
+ cmark_node *paragraph = cmark_node_first_child(doc);
+ xml = cmark_render_xml(paragraph, CMARK_OPT_DEFAULT | CMARK_OPT_SOURCEPOS);
+ STR_EQ(runner, xml,
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"
+ "<paragraph sourcepos=\"1:1-1:9\">\n"
+ " <text>foo </text>\n"
+ " <emph>\n"
+ " <text>bar</text>\n"
+ " </emph>\n"
+ "</paragraph>\n",
+ "render first paragraph with source pos");
+ free(xml);
+ cmark_node_free(doc);
+}
+
static void render_man(test_batch_runner *runner) {
char *man;
@@ -817,6 +859,7 @@ int main() {
hierarchy(runner);
parser(runner);
render_html(runner);
+ render_xml(runner);
render_man(runner);
render_latex(runner);
render_commonmark(runner);