@@ -11,6 +11,7 @@ import qualified Data.ByteString.Lazy.Char8 as B
11import Text.Hakyll.CompressCSS
11import Text.Hakyll.CompressCSS
12import Text.Hakyll.Util
12import Text.Hakyll.Util
13import Text.Hakyll.Context
13import Text.Hakyll.Context
14+import Text.Hakyll.File
15main = defaultMain tests
16main = defaultMain tests
@@ -33,6 +34,11 @@ tests = [ testGroup "Util group" [ testProperty "trim length" prop_trim_length
33 , testGroup "Context group" [ testCase "renderDate 1" test_render_date1
34 , testGroup "Context group" [ testCase "renderDate 1" test_render_date1
34 , testCase "renderDate 2" test_render_date1
35 , testCase "renderDate 2" test_render_date1
38+ , testGroup "File group" [ testProperty "havingExtension count" prop_having_extension_count
39+ , testCase "havingExtension 1" test_having_extension1
40+ , testCase "havingExtension 2" test_having_extension2
38-- Test that a string always becomes shorter when trimmed.
44-- Test that a string always becomes shorter when trimmed.
@@ -78,3 +84,14 @@ test_render_date2 = M.lookup (B.pack "date") rendered @?= Just (B.pack "Unknown
78 "Unknown date"
84 "Unknown date"
79 (M.singleton (B.pack "path")
85 (M.singleton (B.pack "path")
80 (B.pack "2009-badness-30-a-title.markdown"))
86 (B.pack "2009-badness-30-a-title.markdown"))
88+-- Add an extension, and test that they have that extension
89+prop_having_extension_count names extension =
90+ not (any ('.' `elem`) names || any (`elem` extension) "./\\")
91+ ==> havingExtension fullExtension withExtensions == withExtensions
92+ where fullExtension = '.' : extension
93+ withExtensions = map (++ fullExtension) names
95+-- Having extension test cases
96+test_having_extension1 = havingExtension ".foo" ["file.bar", "file.txt"] @?= []
97+test_having_extension2 = havingExtension ".foo" ["file.foo", "file.txt"] @?= ["file.foo"]