A test suite to validate a successful parse on each html_files/*html.

This commit is contained in:
vi 2014-07-25 17:27:50 +08:00
parent 986af3de9f
commit f56acd06e4
7 changed files with 52 additions and 2 deletions

View File

@ -45,6 +45,7 @@ copyright: 2014 Alp Mestanogullari, Vikram Verma
category: Text, Web
build-type: Simple
extra-source-files: html_files/*.html
data-files: html_files/*.html
cabal-version: >=1.10
library
@ -93,13 +94,13 @@ benchmark taggytagsoup
vector
default-language: Haskell2010
test-suite spec
test-suite unit
type:
exitcode-stdio-1.0
ghc-options:
-Wall -O -fno-warn-unused-do-bind
hs-source-dirs:
src, tests
src, tests/unit
main-is:
Spec.hs
build-depends:
@ -114,3 +115,28 @@ test-suite spec
, unordered-containers
default-language:
Haskell2010
test-suite integration
type:
exitcode-stdio-1.0
ghc-options:
-Wall -Werror -O -fno-warn-unused-do-bind
hs-source-dirs:
src, tests/integration
main-is:
Main.hs
build-depends:
base == 4.*
, blaze-html
, blaze-markup
, directory
, text
, hspec >= 1.11
, hspec-attoparsec
, vector
, attoparsec
, unordered-containers
other-modules:
Paths_taggy
default-language:
Haskell2010

24
tests/integration/Main.hs Normal file
View File

@ -0,0 +1,24 @@
{-# LANGUAGE TupleSections #-}
module Main (main) where
import Prelude hiding (readFile)
import Data.Functor ((<$>))
import Data.List (isSuffixOf)
import Data.Text.Lazy (Text)
import Data.Text.Lazy.IO (readFile)
import Paths_taggy (getDataFileName)
import System.Directory (getDirectoryContents, setCurrentDirectory)
import Test.Hspec (hspec, runIO, describe, it, shouldSatisfy)
import Text.Taggy (taggyWith)
getHTMLFiles :: IO [(FilePath, Text)]
getHTMLFiles = getDataFileName "html_files"
>>= setCurrentDirectory
>> filter (isSuffixOf ".html") <$> getDirectoryContents "."
>>= mapM (\name -> fmap (name,) $ readFile name)
main :: IO ()
main = hspec . (runIO getHTMLFiles >>=) . mapM_ $ \(name, content) ->
describe name . it "Should parse without error." $
taggyWith True content `shouldSatisfy` not . null