on master help sign in
Added test case for global metadata
commit46b6f78da8ed814bef6972f4712d8b13e76c1122 authorAlexey Kreshchuk <akrsch@gmail.com> dateFri 18 Oct 2013, 01:23 (13 years ago) parent712ffa3
7 files changed+85−1
src/Hakyll/Core/Provider/Metadata.hs+1−1 tests/Hakyll/Core/Provider/GlobalMetadata/Tests.hs+31 tests/TestSuite.hs+2 tests/data/metadata+27 tests/data/posts/2013-10-18-metadata-test.md+4 tests/data/posts/2013-10-18-metadata-test.md.metadata+2 tests/data/posts/metadata+18
src/Hakyll/Core/Provider/Metadata.hs+1−1
@@ -151,7 +151,7 @@ loadGlobalMetadata p fp = liftM M.fromList $ loadgm fp where
151151 -- TODO: It might be better to print warning and continue
152152 in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
153153 findMetadata dir =
154− concatMap snd . filter (flip matches fp . fromGlob . combine dir . fst)
154+ concatMap snd . filter (flip matches fp . fromGlob . normalise . combine dir . fst)
155155
156156namedMetadata :: Parser [(String, [(String, String)])]
157157namedMetadata = P.many namedMetadataBlock
tests/Hakyll/Core/Provider/GlobalMetadata/Tests.hsnew file+31
@@ -0,0 +1,31 @@
1+--------------------------------------------------------------------------------
2+{-# LANGUAGE OverloadedStrings #-}
3+module Hakyll.Core.Provider.GlobalMetadata.Tests
4+ ( tests
5+ ) where
6+
7+--------------------------------------------------------------------------------
8+import qualified Data.Map as M
9+import Control.Monad (forM_)
10+import Test.Framework (Test, testGroup)
11+import Test.HUnit (Assertion, (@=?))
12+
13+
14+--------------------------------------------------------------------------------
15+import Hakyll.Core.Provider (resourceMetadata)
16+import TestSuite.Util
17+
18+--------------------------------------------------------------------------------
19+tests :: Test
20+tests = testGroup "Hakyll.Core.Provider.GlobalMetadata.Tests" $
21+ fromAssertions "page" [testPage]
22+
23+testPage :: Assertion
24+testPage = do
25+ store <- newTestStore
26+ provider <- newTestProvider store
27+
28+ metadata <- resourceMetadata provider "posts/2013-10-18-metadata-test.md"
29+ forM_ ["1", "2", "3", "4", "5", "6", "7", "8"] $ \a ->
30+ Just a @=? M.lookup ('a':a) metadata
31+
tests/TestSuite.hs+2
@@ -12,6 +12,7 @@ import Test.Framework (defaultMain)
1212import qualified Hakyll.Core.Dependencies.Tests
1313import qualified Hakyll.Core.Identifier.Tests
1414import qualified Hakyll.Core.Provider.Metadata.Tests
15+import qualified Hakyll.Core.Provider.GlobalMetadata.Tests
1516import qualified Hakyll.Core.Provider.Tests
1617import qualified Hakyll.Core.Routes.Tests
1718import qualified Hakyll.Core.Rules.Tests
@@ -32,6 +33,7 @@ main = defaultMain
3233 [ Hakyll.Core.Dependencies.Tests.tests
3334 , Hakyll.Core.Identifier.Tests.tests
3435 , Hakyll.Core.Provider.Metadata.Tests.tests
36+ , Hakyll.Core.Provider.GlobalMetadata.Tests.tests
3537 , Hakyll.Core.Provider.Tests.tests
3638 , Hakyll.Core.Routes.Tests.tests
3739 , Hakyll.Core.Rules.Tests.tests
tests/data/metadatanew file+27
@@ -0,0 +1,27 @@
1+--- posts/2013-10-18-metadata-test.md
2+a1: 8
3+a2: 8
4+a3: 8
5+a4: 8
6+a5: 8
7+a6: 8
8+a7: 8
9+a8: 8
10+
11+--- posts/*
12+a1: 7
13+a2: 7
14+a3: 7
15+a4: 7
16+a5: 7
17+a6: 7
18+a7: 7
19+
20+--- **
21+a1: 6
22+a2: 6
23+a3: 6
24+a4: 6
25+a5: 6
26+a6: 6
27+
tests/data/posts/2013-10-18-metadata-test.mdnew file+4
@@ -0,0 +1,4 @@
1+---
2+a1: 1
3+---
4+Nothing interesting here.
tests/data/posts/2013-10-18-metadata-test.md.metadatanew file+2
@@ -0,0 +1,2 @@
1+a1: 2
2+a2: 2
tests/data/posts/metadatanew file+18
@@ -0,0 +1,18 @@
1+--- **
2+a1: 5
3+a2: 5
4+a3: 5
5+a4: 5
6+a5: 5
7+
8+--- *
9+a1: 4
10+a2: 4
11+a3: 4
12+a4: 4
13+
14+--- 2013-10-18-metadata-test.md
15+a1: 3
16+a2: 3
17+a3: 3
18+