hquery-0.1.0.0: tests/UtilsTests.hs
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import qualified Data.Text as T
import Test.Framework ( defaultMain, Test )
import Test.Framework.Providers.HUnit
import Test.HUnit hiding (Node, Test)
import Text.Hquery
import Text.Hquery.Utils
import Text.XmlHtml
elt :: T.Text -> [(T.Text, T.Text)] -> [Node] -> Node
elt tag attrs kids = Element { elementTag = tag
, elementAttrs = attrs
, elementChildren = kids
}
mkDiv :: [Node] -> Node
mkDiv = elt "div" []
nodeEqTests :: [(Node, Node, Bool)]
nodeEqTests = [ (TextNode "foo", TextNode "foo", True)
, (Comment "foo", Comment "foo", True)
, (TextNode "foo", TextNode "bar", False)
, (Comment "foo", Comment "bar", False)
, (TextNode "foo", Comment "foo", False)
, (mkDiv [TextNode "foo"], mkDiv [TextNode "foo"], True)
, (mkDiv [TextNode "bar"], mkDiv [TextNode "foo"], False)
, (mkDiv [mkDiv []], mkDiv [mkDiv []], True)
, (mkDiv [mkDiv [TextNode "foo"]], mkDiv [mkDiv [TextNode "bar"]], False)
, (mkDiv [mkDiv [TextNode "foo"]], mkDiv [], False)
]
main :: IO ()
main =
let makeEqNodeTest (n1, n2, t) =
let eq1 = EqNode n1
eq2 = EqNode n2
str = (show n1) ++ " == " ++ (show n2)
in testCase "nodeEqTestcase" (assertEqual str t (eq1 == eq2))
nodeTests = map makeEqNodeTest nodeEqTests
in defaultMain nodeTests