@@ -23,18 +23,15 @@ examples =
23main :: IO ()
23main :: IO ()
25 forM_ examples $ \(parses, src) -> do
25 forM_ examples $ \(parses, src) -> do
27 case parse src of
26 case parse src of
28 Left err -> when parses $ fail $ "Unexpected parse failure, " ++ show err
27 Left err -> when parses $ fail $ "Unexpected parse failure, " ++ show err
29 Right doc -> do
28 Right doc -> do
30 unless parses $ fail "Unexpected parse success"
29 unless parses $ fail "Unexpected parse success"
31 checkFind doc
30 checkFind doc
32 let r = render doc
31 let r = render doc
35− when (r /= rerender doc) $ fail "Different rerender"
32+ r === rerender doc
36 let Right d = parse r
33 let Right d = parse r
37− when (r /= render d) $ fail "Different after rerendering"
34+ r === render d
39 let Right doc = parse "<test id=\"1\" extra=\"2\" /><test id=\"2\" /><b><test id=\"3\" /></b><test id=\"4\" /><test />"
36 let Right doc = parse "<test id=\"1\" extra=\"2\" /><test id=\"2\" /><b><test id=\"3\" /></b><test id=\"4\" /><test />"
40 map name (children doc) === ["test","test","b","test","test"]
37 map name (children doc) === ["test","test","b","test","test"]
@@ -52,7 +49,7 @@ main = do
52 [c] <- return $ childrenBy doc "test"
49 [c] <- return $ childrenBy doc "test"
53 forM_ attrs $ \a -> attributeBy c a === Just (Attribute a a)
50 forM_ attrs $ \a -> attributeBy c a === Just (Attribute a a)
54 forM_ ["missing","gone","nothing"] $ \a -> attributeBy c a === Nothing
51 forM_ ["missing","gone","nothing"] $ \a -> attributeBy c a === Nothing
55− putStrLn "Done"
52+ putStrLn "\nSuccess"
58checkFind :: Node -> IO ()
55checkFind :: Node -> IO ()
@@ -65,7 +62,7 @@ checkFind n = do
65 mapM_ checkFind $ children n
62 mapM_ checkFind $ children n
68−a === b = if a == b then putStrLn "success" else fail "mismatch"
65+a === b = if a == b then putChar '.' else fail "mismatch"
70rerender :: Node -> BS.ByteString
67rerender :: Node -> BS.ByteString
71rerender = inside
68rerender = inside