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
in either (error.show) (findMetadata dir) . P.parse namedMetadata path <$> readFile path
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 = 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.Identifier.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.Routes.Tests
import qualified Hakyll.Core.Rules.Tests
@ -32,6 +33,7 @@ main = defaultMain
[ Hakyll.Core.Dependencies.Tests.tests
, Hakyll.Core.Identifier.Tests.tests
, Hakyll.Core.Provider.Metadata.Tests.tests
, Hakyll.Core.Provider.GlobalMetadata.Tests.tests
, Hakyll.Core.Provider.Tests.tests
, Hakyll.Core.Routes.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