1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
{-# LANGUAGE OverloadedStrings #-}
import Test.HUnit hiding (Test)
import Test.Hspec.Monadic
import Test.Hspec.HUnit ()
import Data.ByteString.Lazy.Char8 ()
import qualified Text.HTML.DOM as H
import qualified Text.XML as X
main :: IO ()
main = hspecX $ do
describe "parses" $ do
it "well-formed document" $
X.parseLBS_ X.def "<foo><bar>baz</bar></foo>" @=?
H.parseLBS "<foo><bar>baz</bar></foo>"
it "adds missing close tags" $
X.parseLBS_ X.def "<foo><bar>baz</bar></foo>" @=?
H.parseLBS "<foo><bar>baz</foo>"
it "void tags" $
X.parseLBS_ X.def "<foo><bar><img/>foo</bar></foo>" @=?
H.parseLBS "<foo><bar><img>foo</foo>"
it "xml entities" $
X.parseLBS_ X.def "<foo><bar>baz></bar></foo>" @=?
H.parseLBS "<foo><bar>baz></foo>"
it "html entities" $
X.parseLBS_ X.def "<foo><bar>baz </bar></foo>" @=?
H.parseLBS "<foo><bar>baz </foo>"
it "decimal entities" $
X.parseLBS_ X.def "<foo><bar>baz </bar></foo>" @=?
H.parseLBS "<foo><bar>baz </foo>"
it "hex entities" $
X.parseLBS_ X.def "<foo><bar>bazŠ</bar></foo>" @=?
H.parseLBS "<foo><bar>bazŠ</foo>"
it "invalid entities" $
X.parseLBS_ X.def "<foo><bar>baz&foobar;</bar></foo>" @=?
H.parseLBS "<foo><bar>baz&foobar;</foo>"
|