From 2912fcd521d0d9fbe93dae37783f5f379893ddb1 Mon Sep 17 00:00:00 2001
From: Jasper Van der Jeugt <m@jaspervdj.be>
Date: Mon, 21 Jan 2013 22:45:50 +0100
Subject: Add metadataRoute

---
 tests/Hakyll/Core/Routes/Tests.hs | 32 +++++++++++++++++++-------------
 tests/Hakyll/Core/Rules/Tests.hs  | 16 +++++++++-------
 2 files changed, 28 insertions(+), 20 deletions(-)

(limited to 'tests/Hakyll')

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 d43772d..1701cff 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
   where
     sv g     = setVersion (Just g)
-- 
cgit v1.2.3