diff options
author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-02-09 18:11:24 +0100 |
---|---|---|
committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2011-02-09 18:11:24 +0100 |
commit | 002cf4de32db979d515c2a9cdcd8c8f42859a797 (patch) | |
tree | 6992a3f05e693116ae6802ef48448a5a03aded1e /tests | |
parent | 7da7e0b96c245a14122896c24dcee52f038e583a (diff) | |
download | hakyll-002cf4de32db979d515c2a9cdcd8c8f42859a797.tar.gz |
Add hamlet templates and restructure tests
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Hakyll/Core/DirectedGraph/Tests.hs | 12 | ||||
-rw-r--r-- | tests/Hakyll/Core/Identifier/Tests.hs | 26 | ||||
-rw-r--r-- | tests/Hakyll/Core/Route/Tests.hs | 25 | ||||
-rw-r--r-- | tests/Hakyll/Core/Routes/Tests.hs | 19 | ||||
-rw-r--r-- | tests/Hakyll/Web/Template/Tests.hs | 46 | ||||
-rw-r--r-- | tests/TestSuite.hs | 9 | ||||
-rw-r--r-- | tests/TestSuite/Util.hs | 18 |
7 files changed, 99 insertions, 56 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)) diff --git a/tests/TestSuite.hs b/tests/TestSuite.hs index 68c4f28..aaf4481 100644 --- a/tests/TestSuite.hs +++ b/tests/TestSuite.hs @@ -4,7 +4,8 @@ import Test.Framework (defaultMain, testGroup) import qualified Hakyll.Core.DirectedGraph.Tests import qualified Hakyll.Core.Identifier.Tests -import qualified Hakyll.Core.Route.Tests +import qualified Hakyll.Core.Routes.Tests +import qualified Hakyll.Web.Template.Tests main :: IO () main = defaultMain @@ -12,6 +13,8 @@ main = defaultMain Hakyll.Core.DirectedGraph.Tests.tests , testGroup "Hakyll.Core.Identifier.Tests" Hakyll.Core.Identifier.Tests.tests - , testGroup "Hakyll.Core.Route.Tests" - Hakyll.Core.Route.Tests.tests + , testGroup "Hakyll.Core.Routes.Tests" + Hakyll.Core.Routes.Tests.tests + , testGroup "Hakyll.Web.Template.Tests" + Hakyll.Web.Template.Tests.tests ] diff --git a/tests/TestSuite/Util.hs b/tests/TestSuite/Util.hs new file mode 100644 index 0000000..66f101e --- /dev/null +++ b/tests/TestSuite/Util.hs @@ -0,0 +1,18 @@ +-- | Test utilities +-- +module TestSuite.Util + ( fromAssertions + ) where + +import Test.Framework +import Test.Framework.Providers.HUnit +import Test.HUnit hiding (Test) + +import Hakyll.Core.Identifier.Pattern + +fromAssertions :: String -- ^ Name + -> [Assertion] -- ^ Cases + -> [Test] -- ^ Result tests +fromAssertions name = zipWith testCase names + where + names = map (\n -> name ++ " [" ++ show n ++ "]") [1 :: Int ..] |