diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/dompa/coordinates_test.cljc | 118 |
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 |
