summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2013-02-26 19:20:55 +0100
committerJasper Van der Jeugt <m@jaspervdj.be>2013-02-26 19:20:55 +0100
commitd993ebce58acee1e53ee5693743463c5c402919e (patch)
tree3e8108bf28edd8903cb3ad5c7ebefcb8df748a71 /tests
parentac527bd91e7f5a053f78a3bfa08525a290d82450 (diff)
downloadhakyll-d993ebce58acee1e53ee5693743463c5c402919e.tar.gz
Add testcase for #115
Diffstat (limited to 'tests')
-rw-r--r--tests/Hakyll/Core/Provider/Metadata/Tests.hs53
-rw-r--r--tests/TestSuite.hs2
2 files changed, 55 insertions, 0 deletions
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 "<inline>" 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