From 5c20df20af6be9444f27a8c1bbfa5b027a1fa8d8 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Fri, 12 Dec 2014 15:21:30 -0800
Subject: Added test for cmark_walk.

---
 api_test/main.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

(limited to 'api_test')

diff --git a/api_test/main.c b/api_test/main.c
index 1f42807..996ada7 100644
--- a/api_test/main.c
+++ b/api_test/main.c
@@ -294,6 +294,30 @@ node_check(test_batch_runner *runner) {
 	cmark_node_free(doc);
 }
 
+static int
+S_handler(cmark_node *node, int entering, void *state)
+{
+	int *textnodes = state;
+	if (entering) {
+		if (node->type == CMARK_NODE_TEXT) {
+			*textnodes += 1;
+		}
+	}
+	return 1;
+}
+
+static void
+walk(test_batch_runner *runner) {
+	// Construct an incomplete tree.
+	cmark_node *doc = cmark_parse_document("> a *b*\n\nc", 10);
+	int textnodes = 0;
+	INT_EQ(runner, cmark_walk(doc, S_handler, &textnodes), 1,
+	       "walk succeeds");
+	INT_EQ(runner, textnodes, 3, "walk correctly counts text nodes");
+
+	cmark_node_free(doc);
+}
+
 static void
 create_tree(test_batch_runner *runner)
 {
@@ -606,6 +630,7 @@ int main() {
 	constructor(runner);
 	accessors(runner);
 	node_check(runner);
+	walk(runner);
 	create_tree(runner);
 	hierarchy(runner);
 	parser(runner);
@@ -619,4 +644,3 @@ int main() {
 
 	return retval;
 }
-
-- 
cgit v1.2.3