From d993ebce58acee1e53ee5693743463c5c402919e Mon Sep 17 00:00:00 2001 From: Jasper Van der Jeugt Date: Tue, 26 Feb 2013 19:20:55 +0100 Subject: Add testcase for #115 --- tests/Hakyll/Core/Provider/Metadata/Tests.hs | 53 ++++++++++++++++++++++++++++ tests/TestSuite.hs | 2 ++ 2 files changed, 55 insertions(+) create mode 100644 tests/Hakyll/Core/Provider/Metadata/Tests.hs (limited to 'tests') diff --git a/tests/Hakyll/Core/Provider/Metadata/Tests.hs b/tests/Hakyll/Core/Provider/Metadata/Tests.hs new file mode 100644 index 0000000..1217180 --- /dev/null +++ b/tests/Hakyll/Core/Provider/Metadata/Tests.hs @@ -0,0 +1,53 @@ +-------------------------------------------------------------------------------- +module Hakyll.Core.Provider.Metadata.Tests + ( tests + ) where + + +-------------------------------------------------------------------------------- +import Test.Framework (Test, testGroup) +import Test.HUnit (Assertion, (@=?)) +import Text.Parsec as P +import Text.Parsec.String (Parser) + + +-------------------------------------------------------------------------------- +import Hakyll.Core.Provider.Metadata +import TestSuite.Util + + +-------------------------------------------------------------------------------- +tests :: Test +tests = testGroup "Hakyll.Core.Provider.Metadata.Tests" $ + fromAssertions "page" [testPage01, testPage02] + + +-------------------------------------------------------------------------------- +testPage01 :: Assertion +testPage01 = testParse page ([("foo", "bar")], "qux\n") + "---\n\ + \foo: bar\n\ + \---\n\ + \qux\n" + + +-------------------------------------------------------------------------------- +testPage02 :: Assertion +testPage02 = testParse page + ([("description", descr)], "Hello I am dog\n") + "---\n\ + \description: A long description that would look better if it\n\ + \ spanned multiple lines and was indented\n\ + \---\n\ + \Hello I am dog\n" + where + descr = + "A long description that would look better if it \ + \spanned multiple lines and was indented" + + +-------------------------------------------------------------------------------- +testParse :: (Eq a, Show a) => Parser a -> a -> String -> Assertion +testParse parser expected input = case P.parse parser "" input of + Left err -> error $ show err + Right x -> expected @=? x diff --git a/tests/TestSuite.hs b/tests/TestSuite.hs index 7c913dd..3622301 100644 --- a/tests/TestSuite.hs +++ b/tests/TestSuite.hs @@ -11,6 +11,7 @@ import Test.Framework (defaultMain) -------------------------------------------------------------------------------- import qualified Hakyll.Core.Dependencies.Tests import qualified Hakyll.Core.Identifier.Tests +import qualified Hakyll.Core.Provider.Metadata.Tests import qualified Hakyll.Core.Provider.Tests import qualified Hakyll.Core.Routes.Tests import qualified Hakyll.Core.Rules.Tests @@ -30,6 +31,7 @@ main :: IO () main = defaultMain [ Hakyll.Core.Dependencies.Tests.tests , Hakyll.Core.Identifier.Tests.tests + , Hakyll.Core.Provider.Metadata.Tests.tests , Hakyll.Core.Provider.Tests.tests , Hakyll.Core.Routes.Tests.tests , Hakyll.Core.Rules.Tests.tests -- cgit v1.2.3