Added test case for global metadata

This commit is contained in:
Alexey Kreshchuk 2013-10-18 01:23:14 +04:00
parent 712ffa39b5
commit 46b6f78da8
7 changed files with 85 additions and 1 deletions

View file

@ -151,7 +151,7 @@ loadGlobalMetadata p fp = liftM M.fromList $ loadgm fp where
-- TODO: It might be better to print warning and continue -- TODO: It might be better to print warning and continue
in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
findMetadata dir = findMetadata dir =
concatMap snd . filter (flip matches fp . fromGlob . combine dir . fst) concatMap snd . filter (flip matches fp . fromGlob . normalise . combine dir . fst)
namedMetadata :: Parser [(String, [(String, String)])] namedMetadata :: Parser [(String, [(String, String)])]
namedMetadata = P.many namedMetadataBlock namedMetadata = P.many namedMetadataBlock

View file

@ -0,0 +1,31 @@
--------------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
module Hakyll.Core.Provider.GlobalMetadata.Tests
( tests
) where
--------------------------------------------------------------------------------
import qualified Data.Map as M
import Control.Monad (forM_)
import Test.Framework (Test, testGroup)
import Test.HUnit (Assertion, (@=?))
--------------------------------------------------------------------------------
import Hakyll.Core.Provider (resourceMetadata)
import TestSuite.Util
--------------------------------------------------------------------------------
tests :: Test
tests = testGroup "Hakyll.Core.Provider.GlobalMetadata.Tests" $
fromAssertions "page" [testPage]
testPage :: Assertion
testPage = do
store <- newTestStore
provider <- newTestProvider store
metadata <- resourceMetadata provider "posts/2013-10-18-metadata-test.md"
forM_ ["1", "2", "3", "4", "5", "6", "7", "8"] $ \a ->
Just a @=? M.lookup ('a':a) metadata

View file

@ -12,6 +12,7 @@ import Test.Framework (defaultMain)
import qualified Hakyll.Core.Dependencies.Tests import qualified Hakyll.Core.Dependencies.Tests
import qualified Hakyll.Core.Identifier.Tests import qualified Hakyll.Core.Identifier.Tests
import qualified Hakyll.Core.Provider.Metadata.Tests import qualified Hakyll.Core.Provider.Metadata.Tests
import qualified Hakyll.Core.Provider.GlobalMetadata.Tests
import qualified Hakyll.Core.Provider.Tests import qualified Hakyll.Core.Provider.Tests
import qualified Hakyll.Core.Routes.Tests import qualified Hakyll.Core.Routes.Tests
import qualified Hakyll.Core.Rules.Tests import qualified Hakyll.Core.Rules.Tests
@ -32,6 +33,7 @@ main = defaultMain
[ Hakyll.Core.Dependencies.Tests.tests [ Hakyll.Core.Dependencies.Tests.tests
, Hakyll.Core.Identifier.Tests.tests , Hakyll.Core.Identifier.Tests.tests
, Hakyll.Core.Provider.Metadata.Tests.tests , Hakyll.Core.Provider.Metadata.Tests.tests
, Hakyll.Core.Provider.GlobalMetadata.Tests.tests
, Hakyll.Core.Provider.Tests.tests , Hakyll.Core.Provider.Tests.tests
, Hakyll.Core.Routes.Tests.tests , Hakyll.Core.Routes.Tests.tests
, Hakyll.Core.Rules.Tests.tests , Hakyll.Core.Rules.Tests.tests

27
tests/data/metadata Normal file
View file

@ -0,0 +1,27 @@
--- posts/2013-10-18-metadata-test.md
a1: 8
a2: 8
a3: 8
a4: 8
a5: 8
a6: 8
a7: 8
a8: 8
--- posts/*
a1: 7
a2: 7
a3: 7
a4: 7
a5: 7
a6: 7
a7: 7
--- **
a1: 6
a2: 6
a3: 6
a4: 6
a5: 6
a6: 6

View file

@ -0,0 +1,4 @@
---
a1: 1
---
Nothing interesting here.

View file

@ -0,0 +1,2 @@
a1: 2
a2: 2

18
tests/data/posts/metadata Normal file
View file

@ -0,0 +1,18 @@
--- **
a1: 5
a2: 5
a3: 5
a4: 5
a5: 5
--- *
a1: 4
a2: 4
a3: 4
a4: 4
--- 2013-10-18-metadata-test.md
a1: 3
a2: 3
a3: 3