summaryrefslogtreecommitdiff
path: root/api_test
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2014-12-12 15:21:30 -0800
committerJohn MacFarlane <fiddlosopher@gmail.com>2014-12-12 15:24:11 -0800
commit5c20df20af6be9444f27a8c1bbfa5b027a1fa8d8 (patch)
tree569a27ad112a94e9cfd362ad07bc0f0ad875d3f3 /api_test
parent4cc37256fdc47faeefe6296cdcce022ec6a60719 (diff)
Added test for cmark_walk.
Diffstat (limited to 'api_test')
-rw-r--r--api_test/main.c26
1 files changed, 25 insertions, 1 deletions
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;
}
-