diff options
Diffstat (limited to 'tests/Hakyll')
-rw-r--r-- | tests/Hakyll/Core/Routes/Tests.hs | 32 | ||||
-rw-r--r-- | tests/Hakyll/Core/Rules/Tests.hs | 16 |
2 files changed, 28 insertions, 20 deletions
diff --git a/tests/Hakyll/Core/Routes/Tests.hs b/tests/Hakyll/Core/Routes/Tests.hs index 8bdbe85..c14a878 100644 --- a/tests/Hakyll/Core/Routes/Tests.hs +++ b/tests/Hakyll/Core/Routes/Tests.hs @@ -7,7 +7,7 @@ module Hakyll.Core.Routes.Tests -------------------------------------------------------------------------------- import Test.Framework (Test, testGroup) -import Test.HUnit ((@=?)) +import Test.HUnit (Assertion, (@=?)) -------------------------------------------------------------------------------- @@ -19,19 +19,25 @@ import TestSuite.Util -------------------------------------------------------------------------------- tests :: Test tests = testGroup "Hakyll.Core.Routes.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" + [ testRoutes "foo.html" (setExtension "html") "foo" + , testRoutes "foo.html" (setExtension ".html") "foo" + , testRoutes "foo.html" (setExtension "html") "foo.markdown" + , testRoutes "foo.html" (setExtension ".html") "foo.markdown" - , Just "neve ro ddo reven" @=? - runRoutes (customRoute (reverse . toFilePath )) "never odd or even" + , testRoutes "neve ro ddo reven" + (customRoute (reverse . toFilePath )) "never odd or even" - , Just "foo" @=? runRoutes (constRoute "foo") "bar" + , testRoutes "foo" (constRoute "foo") "bar" - , Just "tags/bar.xml" @=? - runRoutes (gsubRoute "rss/" (const "")) "tags/rss/bar.xml" - , Just "tags/bar.xml" @=? - runRoutes (gsubRoute "rss/" (const "") `composeRoutes` - setExtension "xml") "tags/rss/bar" + , testRoutes "tags/bar.xml" (gsubRoute "rss/" (const "")) "tags/rss/bar.xml" + , testRoutes "tags/bar.xml" + (gsubRoute "rss/" (const "") `composeRoutes` setExtension "xml") + "tags/rss/bar" ] + + +-------------------------------------------------------------------------------- +testRoutes :: FilePath -> Routes -> Identifier -> Assertion +testRoutes expected r id' = do + route <- runRoutes r (error "Hakyll.Core.Routes.Tests: no provider") id' + Just expected @=? route diff --git a/tests/Hakyll/Core/Rules/Tests.hs b/tests/Hakyll/Core/Rules/Tests.hs index ee12010..908f712 100644 --- a/tests/Hakyll/Core/Rules/Tests.hs +++ b/tests/Hakyll/Core/Rules/Tests.hs @@ -40,16 +40,18 @@ rulesTest = do store <- newTestStore provider <- newTestProvider store ruleSet <- runRules (rules ioref) provider - let identifiers = S.fromList $ map fst $ rulesCompilers ruleSet - routes = rulesRoutes ruleSet + let identifiers = S.fromList $ map fst $ rulesCompilers ruleSet + routes = rulesRoutes ruleSet + checkRoute ex i = + runRoutes routes provider i >>= \r -> Just ex @=? r -- Test that we have some identifiers and that the routes work out assert $ all (`S.member` identifiers) expected - Just "example.html" @=? runRoutes routes "example.md" - Just "example.md" @=? runRoutes routes (sv "raw" "example.md") - Just "example.md" @=? runRoutes routes (sv "nav" "example.md") - Just "example.mv1" @=? runRoutes routes (sv "mv1" "example.md") - Just "example.mv2" @=? runRoutes routes (sv "mv2" "example.md") + checkRoute "example.html" "example.md" + checkRoute "example.md" (sv "raw" "example.md") + checkRoute "example.md" (sv "nav" "example.md") + checkRoute "example.mv1" (sv "mv1" "example.md") + checkRoute "example.mv2" (sv "mv2" "example.md") readIORef ioref >>= assert cleanTestEnv where |