aboutsummaryrefslogtreecommitdiff
path: root/api_test/main.c
blob: 051d32b7d1190d19f5cfed943c340141445547c0 (plain)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <cmark.h>
  5. #include "harness.h"
  6. static void
  7. create_tree(test_batch_runner *runner)
  8. {
  9. cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT);
  10. cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH);
  11. OK(runner, cmark_node_append_child(doc, p), "append1");
  12. INT_EQ(runner, cmark_node_check(doc), 0, "append1 consistent");
  13. cmark_node *emph = cmark_node_new(CMARK_NODE_EMPH);
  14. OK(runner, cmark_node_prepend_child(p, emph), "prepend1");
  15. INT_EQ(runner, cmark_node_check(doc), 0, "prepend1 consistent");
  16. cmark_node *str1 = cmark_node_new(CMARK_NODE_STRING);
  17. cmark_node_set_content(str1, "Hello, ");
  18. OK(runner, cmark_node_prepend_child(p, str1), "prepend2");
  19. INT_EQ(runner, cmark_node_check(doc), 0, "prepend2 consistent");
  20. cmark_node *str3 = cmark_node_new(CMARK_NODE_STRING);
  21. cmark_node_set_content(str3, "!");
  22. OK(runner, cmark_node_append_child(p, str3), "append2");
  23. INT_EQ(runner, cmark_node_check(doc), 0, "append2 consistent");
  24. cmark_node *str2 = cmark_node_new(CMARK_NODE_STRING);
  25. cmark_node_set_content(str2, "world");
  26. OK(runner, cmark_node_append_child(emph, str2), "append3");
  27. INT_EQ(runner, cmark_node_check(doc), 0, "append3 consistent");
  28. char *html = cmark_render_html(doc);
  29. STR_EQ(runner, html, "<p>Hello, <em>world</em>!</p>\n",
  30. "render_html");
  31. free(html);
  32. cmark_node_destroy(doc);
  33. }
  34. int main() {
  35. int retval;
  36. test_batch_runner *runner = test_batch_runner_new();
  37. create_tree(runner);
  38. test_print_summary(runner);
  39. retval = test_ok(runner) ? 0 : 1;
  40. free(runner);
  41. return retval;
  42. }