summaryrefslogtreecommitdiff
path: root/tests/Hakyll
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Hakyll')
-rw-r--r--tests/Hakyll/Core/DirectedGraph/Tests.hs12
-rw-r--r--tests/Hakyll/Core/Identifier/Tests.hs26
-rw-r--r--tests/Hakyll/Core/Route/Tests.hs25
-rw-r--r--tests/Hakyll/Core/Routes/Tests.hs19
-rw-r--r--tests/Hakyll/Web/Template/Tests.hs46
5 files changed, 75 insertions, 53 deletions
diff --git a/tests/Hakyll/Core/DirectedGraph/Tests.hs b/tests/Hakyll/Core/DirectedGraph/Tests.hs
index 1a9b406..3e04b49 100644
--- a/tests/Hakyll/Core/DirectedGraph/Tests.hs
+++ b/tests/Hakyll/Core/DirectedGraph/Tests.hs
@@ -11,13 +11,10 @@ import Test.HUnit hiding (Test)
import Hakyll.Core.DirectedGraph
import Hakyll.Core.DirectedGraph.DependencySolver
-import Hakyll.Core.DirectedGraph.ObsoleteFilter
tests :: [Test]
tests =
[ testCase "solveDependencies [1]" solveDependencies1
- , testCase "filterObsolete [1]" filterObsolete1
- , testCase "filterObsolete [2]" filterObsolete2
]
node :: Ord a => a -> [a] -> (a, Set a)
@@ -37,12 +34,3 @@ solveDependencies1 = result == [3, 4, 2, 6, 8] || result == [3, 4, 2, 6, 8]
@? "solveDependencies1"
where
result = solveDependencies testGraph01
-
-filterObsolete1 :: Assertion
-filterObsolete1 = nodes (filterObsolete [6] testGraph01) == S.fromList [6, 8]
- @? "filterObsolete1"
-
-filterObsolete2 :: Assertion
-filterObsolete2 =
- nodes (filterObsolete [4] testGraph01) == S.fromList [4, 2, 6, 8]
- @? "filterObsolete2"
diff --git a/tests/Hakyll/Core/Identifier/Tests.hs b/tests/Hakyll/Core/Identifier/Tests.hs
index 910bca3..a7d49e9 100644
--- a/tests/Hakyll/Core/Identifier/Tests.hs
+++ b/tests/Hakyll/Core/Identifier/Tests.hs
@@ -8,22 +8,16 @@ import Test.Framework.Providers.HUnit
import Test.HUnit hiding (Test)
import Hakyll.Core.Identifier.Pattern
+import TestSuite.Util
tests :: [Test]
-tests = zipWith testCase names matchCases
- where
- names = map (\n -> "match [" ++ show n ++ "]") [1 :: Int ..]
-
--- | Collection of simple cases
---
-matchCases :: [Assertion]
-matchCases =
- [ Just [["bar"]] @=? match "foo/**" "foo/bar"
- , Just [["foo", "bar"]] @=? match "**" "foo/bar"
- , Nothing @=? match "*" "foo/bar"
- , Just [] @=? match "foo" "foo"
- , Just [["foo"]] @=? match "*/bar" "foo/bar"
- , Just [["foo", "bar"]] @=? match "**/qux" "foo/bar/qux"
- , Just [["foo", "bar"], ["qux"]] @=? match "**/*" "foo/bar/qux"
- , Just [["foo"], ["bar", "qux"]] @=? match "*/**" "foo/bar/qux"
+tests = fromAssertions "match"
+ [ Just ["bar"] @=? match "foo/**" "foo/bar"
+ , Just ["foo/bar"] @=? match "**" "foo/bar"
+ , Nothing @=? match "*" "foo/bar"
+ , Just [] @=? match "foo" "foo"
+ , Just ["foo"] @=? match "*/bar" "foo/bar"
+ , Just ["foo/bar"] @=? match "**/qux" "foo/bar/qux"
+ , Just ["foo/bar", "qux"] @=? match "**/*" "foo/bar/qux"
+ , Just ["foo", "bar/qux"] @=? match "*/**" "foo/bar/qux"
]
diff --git a/tests/Hakyll/Core/Route/Tests.hs b/tests/Hakyll/Core/Route/Tests.hs
deleted file mode 100644
index 17a4123..0000000
--- a/tests/Hakyll/Core/Route/Tests.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Hakyll.Core.Route.Tests
- ( tests
- ) where
-
-import Test.Framework
-import Test.Framework.Providers.HUnit
-import Test.HUnit hiding (Test)
-
-import Hakyll.Core.Route
-
-tests :: [Test]
-tests = zipWith testCase names matchCases
- where
- names = map (\n -> "runRoute [" ++ show n ++ "]") [1 :: Int ..]
-
--- | Collection of simple cases
---
-matchCases :: [Assertion]
-matchCases =
- [ Just "foo.html" @=? runRoute (setExtension "html") "foo"
- , Just "foo.html" @=? runRoute (setExtension ".html") "foo"
- , Just "foo.html" @=? runRoute (setExtension "html") "foo.markdown"
- , Just "foo.html" @=? runRoute (setExtension ".html") "foo.markdown"
- ]
diff --git a/tests/Hakyll/Core/Routes/Tests.hs b/tests/Hakyll/Core/Routes/Tests.hs
new file mode 100644
index 0000000..cca2ee4
--- /dev/null
+++ b/tests/Hakyll/Core/Routes/Tests.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Hakyll.Core.Routes.Tests
+ ( tests
+ ) where
+
+import Test.Framework
+import Test.Framework.Providers.HUnit
+import Test.HUnit hiding (Test)
+
+import Hakyll.Core.Routes
+import TestSuite.Util
+
+tests :: [Test]
+tests = fromAssertions "runRoutes"
+ [ Just "foo.html" @=? runRoutes (setExtension "html") "foo"
+ , Just "foo.html" @=? runRoutes (setExtension ".html") "foo"
+ , Just "foo.html" @=? runRoutes (setExtension "html") "foo.markdown"
+ , Just "foo.html" @=? runRoutes (setExtension ".html") "foo.markdown"
+ ]
diff --git a/tests/Hakyll/Web/Template/Tests.hs b/tests/Hakyll/Web/Template/Tests.hs
new file mode 100644
index 0000000..d95b151
--- /dev/null
+++ b/tests/Hakyll/Web/Template/Tests.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Hakyll.Web.Template.Tests
+ ( tests
+ ) where
+
+import Test.Framework
+import Test.Framework.Providers.HUnit
+import Test.HUnit hiding (Test)
+
+import qualified Data.Map as M
+
+import Hakyll.Web.Page
+import Hakyll.Web.Template
+import Hakyll.Web.Template.Read.Hakyll
+import Hakyll.Web.Template.Read.Hamlet
+import TestSuite.Util
+
+tests :: [Test]
+tests = fromAssertions "applyTemplate"
+ -- Hakyll templates
+ [ applyTemplateAssertion readTemplate
+ "bar" "$foo$" [("foo", "bar")]
+
+ , applyTemplateAssertion readTemplate
+ "$ barqux" "$$ $foo$$bar$" [("foo", "bar"), ("bar", "qux")]
+
+ -- Hamlet templates
+ , applyTemplateAssertion readHamletTemplate
+ "<head><title>notice</title></head><body>A paragraph</body>"
+ "<head\n\
+ \ <title>#{title}\n\
+ \<body\n\
+ \ A paragraph\n"
+ [("title", "notice")]
+ ]
+
+-- | Utility function to create quick template tests
+--
+applyTemplateAssertion :: (String -> Template) -- ^ Template parser
+ -> String -- ^ Expected
+ -> String -- ^ Template
+ -> [(String, String)] -- ^ Page
+ -> Assertion -- ^ Resulting assertion
+applyTemplateAssertion parser expected template page =
+ expected @=? pageBody (applyTemplate (parser template)
+ (fromMap $ M.fromList page))