summaryrefslogtreecommitdiff
path: root/test/clarktown/renderers
diff options
context:
space:
mode:
authorAsko Nõmm <asko@bien.ee>2022-04-19 17:50:19 +0300
committerAsko Nõmm <asko@bien.ee>2022-04-19 17:50:19 +0300
commit52203a49aa544b2c11c96445d8732893160c436b (patch)
tree84d7b0e9af92770647643bdf7ddbb898663bd7b8 /test/clarktown/renderers
parent059bfa7bd9bfdde0c75646bf1dfc20d23da8a02c (diff)
WIP #16
Pretty much done. Needs more testing. And new documentation.
Diffstat (limited to 'test/clarktown/renderers')
-rw-r--r--test/clarktown/renderers/bold_test.clj18
-rw-r--r--test/clarktown/renderers/code_block_test.clj15
-rw-r--r--test/clarktown/renderers/empty_block_test.clj10
-rw-r--r--test/clarktown/renderers/heading_block_test.clj44
-rw-r--r--test/clarktown/renderers/horizontal_line_block_test.clj13
-rw-r--r--test/clarktown/renderers/inline_code_test.clj14
-rw-r--r--test/clarktown/renderers/italic_test.clj18
-rw-r--r--test/clarktown/renderers/link_and_image_test.clj23
-rw-r--r--test/clarktown/renderers/quote_block_test.clj10
-rw-r--r--test/clarktown/renderers/strikethrough_test.clj14
10 files changed, 179 insertions, 0 deletions
diff --git a/test/clarktown/renderers/bold_test.clj b/test/clarktown/renderers/bold_test.clj
new file mode 100644
index 0000000..fba0ea6
--- /dev/null
+++ b/test/clarktown/renderers/bold_test.clj
@@ -0,0 +1,18 @@
+(ns clarktown.renderers.bold-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.bold :as bold]))
+
+
+(deftest bold-renderer-test
+ (testing "Creating bold text with two surrounding asterisk characters"
+ (is (= "<strong>This is bold.</strong>"
+ (bold/render "**This is bold.**" nil))))
+
+ (testing "Creating bold text with two surrounding underscore characters"
+ (is (= "<strong>This is bold.</strong>"
+ (bold/render "__This is bold.__" nil))))
+
+ (testing "Creating bold text with both underscores and asterisks mixed"
+ (is (= "Hi, my name is <strong>John</strong>, what is <strong>your name?</strong>"
+ (bold/render "Hi, my name is **John**, what is __your name?__" nil))))) \ No newline at end of file
diff --git a/test/clarktown/renderers/code_block_test.clj b/test/clarktown/renderers/code_block_test.clj
new file mode 100644
index 0000000..37c701b
--- /dev/null
+++ b/test/clarktown/renderers/code_block_test.clj
@@ -0,0 +1,15 @@
+(ns clarktown.renderers.code-block-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clojure.java.io :as io]
+ [clarktown.renderers.code-block :as code-block]))
+
+
+(deftest code-block-renderer-test
+ (testing "Code block with language specification"
+ (is (= (slurp (io/file (io/resource "test/parsers/code_block_result.html")))
+ (code-block/render (slurp (io/file (io/resource "test/parsers/code_block.md"))) nil))))
+
+ (testing "Code block with NO language specification"
+ (is (= (slurp (io/file (io/resource "test/parsers/code_block_no_language_result.html")))
+ (code-block/render (slurp (io/file (io/resource "test/parsers/code_block_no_language.md"))) nil))))) \ No newline at end of file
diff --git a/test/clarktown/renderers/empty_block_test.clj b/test/clarktown/renderers/empty_block_test.clj
new file mode 100644
index 0000000..35fb902
--- /dev/null
+++ b/test/clarktown/renderers/empty_block_test.clj
@@ -0,0 +1,10 @@
+(ns clarktown.renderers.empty-block-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.empty-block :as empty-block]))
+
+
+(deftest empty-block-renderer-test
+ (testing "Rendering an empty block"
+ (is (= (empty-block/render "" nil)
+ ""))))
diff --git a/test/clarktown/renderers/heading_block_test.clj b/test/clarktown/renderers/heading_block_test.clj
new file mode 100644
index 0000000..9c3386f
--- /dev/null
+++ b/test/clarktown/renderers/heading_block_test.clj
@@ -0,0 +1,44 @@
+(ns clarktown.renderers.heading-block-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.heading-block :as heading-block]))
+
+
+(deftest atx-heading-renderer-test
+ (testing "Hashbang heading block that's a H1"
+ (is (= "<h1>This is a heading block.</h1>"
+ (heading-block/render "# This is a heading block." nil))))
+
+ (testing "Hashbang heading block that's a H2"
+ (is (= "<h2>This is a heading block.</h2>"
+ (heading-block/render "## This is a heading block." nil))))
+
+ (testing "Hashbang heading block that's a H3"
+ (is (= "<h3>This is a heading block.</h3>"
+ (heading-block/render "### This is a heading block." nil))))
+
+ (testing "Hashbang heading block that's a H4"
+ (is (= "<h4>This is a heading block.</h4>"
+ (heading-block/render "#### This is a heading block." nil))))
+
+ (testing "Hashbang heading block that's a H5"
+ (is (= "<h5>This is a heading block.</h5>"
+ (heading-block/render "##### This is a heading block." nil)))))
+
+
+(deftest settext-heading-renderer-text
+ (testing "Settext heading block that's a H1"
+ (is (= "<h1>This is a heading block.</h1>"
+ (heading-block/render "This is a heading block.\n=========" nil))))
+
+ (testing "Settext heading block that's a H1 spanning multiple lines"
+ (is (= "<h1>This is a \nheading block spanning multiple lines.</h1>"
+ (heading-block/render "This is a \nheading block spanning multiple lines.\n========" nil))))
+
+ (testing "Settext heading block that's a H2"
+ (is (= "<h2>This is a heading block.</h2>"
+ (heading-block/render "This is a heading block.\n---------" nil))))
+
+ (testing "Settext heading block that's a H2 spanning multiple lines"
+ (is (= "<h2>This is a \nheading block spanning multiple lines.</h2>"
+ (heading-block/render "This is a \nheading block spanning multiple lines.\n--------" nil))))) \ No newline at end of file
diff --git a/test/clarktown/renderers/horizontal_line_block_test.clj b/test/clarktown/renderers/horizontal_line_block_test.clj
new file mode 100644
index 0000000..db72682
--- /dev/null
+++ b/test/clarktown/renderers/horizontal_line_block_test.clj
@@ -0,0 +1,13 @@
+(ns clarktown.renderers.horizontal-line-block-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.horizontal-line-block :as horizontal-line-block]))
+
+
+(deftest horizontal-line-block-renderer-test
+ (testing "Creating a horizontal line"
+ (is (= (horizontal-line-block/render "***" nil)
+ "<hr>"))
+
+ (is (= (horizontal-line-block/render "---" nil)
+ "<hr>"))))
diff --git a/test/clarktown/renderers/inline_code_test.clj b/test/clarktown/renderers/inline_code_test.clj
new file mode 100644
index 0000000..2071b7f
--- /dev/null
+++ b/test/clarktown/renderers/inline_code_test.clj
@@ -0,0 +1,14 @@
+(ns clarktown.renderers.inline-code-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.inline-code :as inline-code]))
+
+
+(deftest inline-code-renderer-test
+ (testing "Creating inline code text"
+ (is (= "<code>This is inline code.</code>"
+ (inline-code/render "`This is inline code.`" nil))))
+
+ (testing "Creating inline-code text in the middle of regular text"
+ (is (= "This is regular text, mixed with <code>some inline code.</code>, and it's great."
+ (inline-code/render "This is regular text, mixed with `some inline code.`, and it's great." nil))))) \ No newline at end of file
diff --git a/test/clarktown/renderers/italic_test.clj b/test/clarktown/renderers/italic_test.clj
new file mode 100644
index 0000000..29e7811
--- /dev/null
+++ b/test/clarktown/renderers/italic_test.clj
@@ -0,0 +1,18 @@
+(ns clarktown.renderers.italic-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.italic :as italic]))
+
+
+(deftest italic-renderer-test
+ (testing "Creating italic text with one surrounding asterisk character"
+ (is (= "<em>This is italic.</em>"
+ (italic/render "*This is italic.*" nil))))
+
+ (testing "Creating italic text with one surrounding underscore character"
+ (is (= "<em>This is italic.</em>"
+ (italic/render "_This is italic._" nil))))
+
+ (testing "Creating italic text with both underscores and asterisks mixed"
+ (is (= "Hi, my name is <em>John</em>, what is <em>your name?</em>"
+ (italic/render "Hi, my name is *John*, what is _your name?_" nil))))) \ No newline at end of file
diff --git a/test/clarktown/renderers/link_and_image_test.clj b/test/clarktown/renderers/link_and_image_test.clj
new file mode 100644
index 0000000..aa821e3
--- /dev/null
+++ b/test/clarktown/renderers/link_and_image_test.clj
@@ -0,0 +1,23 @@
+(ns clarktown.renderers.link-and-image-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.link-and-image :as link-and-image]))
+
+
+(deftest link-renderer-test
+ (testing "Creating a link"
+ (is (= (link-and-image/render "[This is a link](https://example.com)" nil)
+ "<a href=\"https://example.com\">This is a link</a>"))
+
+ (is (= (link-and-image/render "[This-is-a-link](https://example.com)" nil)
+ "<a href=\"https://example.com\">This-is-a-link</a>"))
+
+ (is (= (link-and-image/render "[x] [label](link)" nil)
+ "[x] <a href=\"link\">label</a>"))
+
+ (is (= (link-and-image/render "[ ] [label](link)" nil)
+ "[ ] <a href=\"link\">label</a>")))
+
+ (testing "Creating an image"
+ (is (= (link-and-image/render "![This is an image](https://example.com)" nil)
+ "<img src=\"https://example.com\" alt=\"This is an image\">")))) \ No newline at end of file
diff --git a/test/clarktown/renderers/quote_block_test.clj b/test/clarktown/renderers/quote_block_test.clj
new file mode 100644
index 0000000..33a7495
--- /dev/null
+++ b/test/clarktown/renderers/quote_block_test.clj
@@ -0,0 +1,10 @@
+(ns clarktown.renderers.quote-block-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.quote-block :as quote-block]))
+
+
+(deftest quote-block-block-renderer-test
+ (testing "Creating a quote block line"
+ (is (= (quote-block/render "> First line\n> second line" nil)
+ "<blockquote>First line\nsecond line</blockquote>")))) \ No newline at end of file
diff --git a/test/clarktown/renderers/strikethrough_test.clj b/test/clarktown/renderers/strikethrough_test.clj
new file mode 100644
index 0000000..55493e0
--- /dev/null
+++ b/test/clarktown/renderers/strikethrough_test.clj
@@ -0,0 +1,14 @@
+(ns clarktown.renderers.strikethrough-test
+ (:require
+ [clojure.test :refer [deftest testing is]]
+ [clarktown.renderers.strikethrough :as strikethrough]))
+
+
+(deftest strikethrough-renderer-test
+ (testing "Creating strikethrough text"
+ (is (= (strikethrough/render "~~This is strikethrough text.~~" nil)
+ "<del>This is strikethrough text.</del>")))
+
+ (testing "Creating strikethrough text mixed with regular text"
+ (is (= (strikethrough/render "Some other text, ~~This is strikethrough text.~~ And more text." nil)
+ "Some other text, <del>This is strikethrough text.</del> And more text.")))) \ No newline at end of file