(ns microformats.parser-test (:require [clojure.test :refer :all] [microformats.parser :refer :all])) (deftest empty-document (testing "Empty HTML document should return an empty 'items' array and 'rels' hash." (is (= {:items [] :rels {}} (parse ""))))) (deftest parse-p-inner-text (testing "Inner text of a p- property should be parsed") (are [ex in] (= ex (parse in)) {:items [{:properties {:name "Example User"}}] :rels {}} "

Example User

" {:items [{:properties {:nickname "exuser"}}] :rels {}} "

exuser

")) (deftest parse-p-special-elements (testing "img, abbr and data elements should be parsed differently" (are [ex in] (= ex (parse in)) {:items [{:properties {:name "Example User"}}] :rels {}} "
\"Example
" {:items [{:properties {:name "Example User"}}] :rels {}} "
@example
" {:items [{:properties {:name "Example User"}}] :rels {}} "
"))) (deftest parse-p-empty-br-hr (testing "br and hr tags should return empty strings" (are [ex in] (= ex (parse in)) {:items [{:properties {:name ""}}] :rels {}} "

" {:items [{:properties {:name ""}}] :rels {}} "

"))) (deftest parse-u-elements (testing "Tags should have their values parsed as a u-* value" (are [ex in] (= ex (parse in)) {:items [{:properties {:url "http://example.com"}}] :rels {}} "
Awesome example website
" {:items [{:properties {:photo "http://example.com/someimage.png"}}] :rels {}} "
" {:items [{:properties {:photo "http://example.com/someimage.png"}}] :rels {}} "" {:items [{:properties {:photo "http://example.com/someimage.png"}}] :rels {}} "
" {:items [{:properties {:photo "http://example.com/someimage.png"}}] :rels {}} "
" {:items [{:properties {:photo "http://example.com/someimage.png"}}] :rels {}} "
")))