hakyll/tests/Hakyll/Core/Identifier/Tests.hs

70 lines
2.9 KiB
Haskell
Raw Normal View History

2012-11-20 10:36:45 +00:00
--------------------------------------------------------------------------------
2010-12-23 16:19:21 +00:00
{-# LANGUAGE OverloadedStrings #-}
module Hakyll.Core.Identifier.Tests
( tests
) where
2012-11-20 10:36:45 +00:00
--------------------------------------------------------------------------------
2012-11-24 12:34:50 +00:00
import Data.Monoid (mappend, mempty)
2012-11-20 10:36:45 +00:00
import Test.Framework (Test, testGroup)
import Test.HUnit ((@=?))
2010-12-23 16:19:21 +00:00
2012-11-20 10:36:45 +00:00
--------------------------------------------------------------------------------
import Hakyll.Core.Identifier
import Hakyll.Core.Identifier.Pattern
import TestSuite.Util
--------------------------------------------------------------------------------
tests :: Test
tests = testGroup "Hakyll.Core.Identifier.Tests" $ concat
2012-11-24 12:34:50 +00:00
[ isLiteralTests
, captureTests
2011-05-29 10:17:36 +00:00
, matchesTests
2011-04-06 07:39:20 +00:00
]
2012-11-20 10:36:45 +00:00
2012-11-24 12:34:50 +00:00
--------------------------------------------------------------------------------
isLiteralTests :: [Test]
isLiteralTests = fromAssertions "isLiteral"
[ Just "index.html" @=? fromLiteral "index.html"
, Nothing @=? fromLiteral "posts/*.markdown"
, Just "test.txt" @=? fromLiteral ("test.txt" `mappend` mempty)
]
2012-11-20 10:36:45 +00:00
--------------------------------------------------------------------------------
2011-04-06 07:39:20 +00:00
captureTests :: [Test]
captureTests = fromAssertions "capture"
2011-04-05 09:52:50 +00:00
[ Just ["bar"] @=? capture "foo/**" "foo/bar"
, Just ["foo/bar"] @=? capture "**" "foo/bar"
, Nothing @=? capture "*" "foo/bar"
, Just [] @=? capture "foo" "foo"
, Just ["foo"] @=? capture "*/bar" "foo/bar"
, Just ["foo/bar"] @=? capture "**/qux" "foo/bar/qux"
, Just ["foo/bar", "qux"] @=? capture "**/*" "foo/bar/qux"
, Just ["foo", "bar/qux"] @=? capture "*/**" "foo/bar/qux"
, Just ["foo"] @=? capture "*.html" "foo.html"
, Nothing @=? capture "*.html" "foo/bar.html"
, Just ["foo/bar"] @=? capture "**.html" "foo/bar.html"
, Just ["foo/bar", "wut"] @=? capture "**/qux/*" "foo/bar/qux/wut"
, Just ["lol", "fun/large"] @=? capture "*cat/**.jpg" "lolcat/fun/large.jpg"
2011-04-08 20:20:15 +00:00
, Just [] @=? capture "\\*.jpg" "*.jpg"
, Nothing @=? capture "\\*.jpg" "foo.jpg"
2010-12-23 16:19:21 +00:00
]
2011-04-06 07:39:20 +00:00
2012-11-20 10:36:45 +00:00
--------------------------------------------------------------------------------
2011-05-29 10:17:36 +00:00
matchesTests :: [Test]
matchesTests = fromAssertions "matches"
2012-11-20 10:36:45 +00:00
[ True @=? matches (fromList ["foo.markdown"]) "foo.markdown"
, False @=? matches (fromList ["foo"]) (setVersion (Just "x") "foo")
, True @=? matches (fromVersion (Just "xz")) (setVersion (Just "xz") "bar")
, True @=? matches (fromRegex "^foo/[^x]*$") "foo/bar"
, False @=? matches (fromRegex "^foo/[^x]*$") "foo/barx"
2012-02-19 19:29:26 +00:00
, True @=? matches (complement "foo.markdown") "bar.markdown"
, False @=? matches (complement "foo.markdown") "foo.markdown"
2011-04-06 07:39:20 +00:00
]