summaryrefslogtreecommitdiff
path: root/test/dompa/coordinates_test.cljc
diff options
context:
space:
mode:
Diffstat (limited to 'test/dompa/coordinates_test.cljc')
-rw-r--r--test/dompa/coordinates_test.cljc118
1 files changed, 103 insertions, 15 deletions
diff --git a/test/dompa/coordinates_test.cljc b/test/dompa/coordinates_test.cljc
index a827968..eb118d2 100644
--- a/test/dompa/coordinates_test.cljc
+++ b/test/dompa/coordinates_test.cljc
@@ -4,28 +4,116 @@
(deftest compose-test
(testing "Create coordinates"
- (is (= [[0 4] [5 9] [10 15]]
- (coordinates/compose "<div>hello</div>"))))
+ (let [html "<div>hello</div>"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9] [10 15]]}
+ (coordinates/compose html)))))
(testing "Create coordinates with invalid HTML"
- (is (= [[0 4] [5 9]]
- (coordinates/compose "<div>hello")))
+ (let [html "<div>hello"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9]]}
+ (coordinates/compose html))))
- (is (= []
- (coordinates/compose "<div")))
+ (let [html "<div>hello</span>"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9] [10 16]]}
+ (coordinates/compose html))))
- (is (= [[0 3]]
- (coordinates/compose "div>")))
+ (let [html "<div"]
+ (is (= {:html html
+ :coordinates []}
+ (coordinates/compose html))))
- (is (= [[0 1]]
- (coordinates/compose "<>"))))
+ (let [html "div>"]
+ (is (= {:html html
+ :coordinates [[0 3]]}
+ (coordinates/compose html))))
+
+ (let [html "<>"]
+ (is (= {:html html
+ :coordinates [[0 1]]}
+ (coordinates/compose html)))))
(testing "Create coordinates with just text"
- (is (= [[0 4]]
- (coordinates/compose "hello"))))
+ (let [html "hello"]
+ (is (= {:html html
+ :coordinates [[0 4]]}
+ (coordinates/compose html)))))
(testing "Create coordinates with text starting"
- (is (= [[0 4] [5 9] [10 15]]
- (coordinates/compose "hello<div></div>")))))
+ (let [html "hello<div></div>"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9] [10 15]]}
+ (coordinates/compose html)))))
+
+ (testing "Create coordinates with text ending"
+ (let [html "<div></div>hello"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 10] [11 15]]}
+ (coordinates/compose html))))))
+
+(deftest unify-test
+ (testing "Unify coordinates"
+ (let [html "<div>hello</div>"]
+ (is (= {:html html
+ :coordinates [[0 15] [5 9]]}
+ (-> (coordinates/compose html)
+ coordinates/unify)))))
+
+ (testing "Unify coordinates with invalid HTML"
+ (let [html "<div>hello"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9]]}
+ (-> (coordinates/compose html)
+ coordinates/unify))))
+
+ (let [html "<div>hello</span>"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 9]]}
+ (-> (coordinates/compose html)
+ coordinates/unify)))))
+
+ (testing "Unify coordinates with just text"
+ (let [html "hello"]
+ (is (= {:html html
+ :coordinates [[0 4]]}
+ (-> (coordinates/compose html)
+ coordinates/unify)))))
+
+ (testing "Unify coordinates with text starting"
+ (let [html "hello<div></div>"]
+ (is (= {:html html
+ :coordinates [[0 4] [5 15]]}
+ (-> (coordinates/compose html)
+ coordinates/unify)))))
+
+ (testing "Unify coordinates with text ending"
+ (let [html "<div></div>hello"]
+ (is (= {:html html
+ :coordinates [[0 10] [11 15]]}
+ (-> (coordinates/compose html)
+ coordinates/unify))))))
+
+(deftest nodes-test
+ (testing "Create nodes"
+ (is (= [{:name :div
+ :attrs {}
+ :children [{:name :dompa/text
+ :value "hello"}]}]
+ (-> "<div>hello</div>"
+ coordinates/compose
+ coordinates/unify
+ coordinates/->nodes))))
-(deftest unify-test) \ No newline at end of file
+ (testing "Create nodes with attributes"
+ (is (= [{:attrs {:class "some test classes"
+ :data-attr "something"
+ :checked true}
+ :children [{:name :dompa/text
+ :value "hello"}]
+ :name :div}]
+ (-> "<div class=\"some test classes\" data-attr=\"something\" checked>hello</div>"
+ coordinates/compose
+ coordinates/unify
+ coordinates/->nodes))))) \ No newline at end of file