summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper Van der Jeugt <jaspervdj@gmail.com>2010-09-23 12:23:25 +0200
committerJasper Van der Jeugt <jaspervdj@gmail.com>2010-09-23 12:23:25 +0200
commit2c6239b37d66e991e9f7ddc07316b2ca4c8f5d7d (patch)
treed8bf8bc8f730b39a9fe598ef0a9cad5ddc56ea06
parent3631e42f49708a324f0be401c04f4b70685a8f76 (diff)
downloadhakyll-2c6239b37d66e991e9f7ddc07316b2ca4c8f5d7d.tar.gz
Fix tests in master
-rw-r--r--.ghci2
-rw-r--r--tests/Template.hs41
2 files changed, 18 insertions, 25 deletions
diff --git a/.ghci b/.ghci
index 17b7559..fd1deff 100644
--- a/.ghci
+++ b/.ghci
@@ -1 +1 @@
-:set -isrc -itests
+:set -isrc -itests -idist/build/autogen
diff --git a/tests/Template.hs b/tests/Template.hs
index 4024b6a..648e3de 100644
--- a/tests/Template.hs
+++ b/tests/Template.hs
@@ -16,6 +16,7 @@ import Test.QuickCheck
import Text.Hakyll.Context (Context (..))
import Text.Hakyll.Internal.Template
+import Text.Hakyll.Internal.Template.Template
-- Template test group.
templateGroup = testGroup "Template"
@@ -26,33 +27,25 @@ templateGroup = testGroup "Template"
]
-- | Generate arbitrary templates from a given length.
-arbitraryTemplate :: Int -> Gen Template
-arbitraryTemplate 0 = return End
-arbitraryTemplate length' = oneof [ do chunk <- chunk'
- Chunk chunk <$> template'
- , do key <- key'
- Identifier key <$> template'
- , EscapeCharacter <$> template'
- ]
- where
- template' = arbitraryTemplate (length' - 1)
- -- Generate keys.
- key' = do l <- choose (5, 10)
- replicateM l $ choose ('a', 'z')
- -- Generate non-empty chunks.
- chunk' = do string <- arbitrary
- let sanitized = filter (/= '$') string
- return $ if null sanitized then "foo"
- else sanitized
+--
+instance Arbitrary TemplateElement where
+ arbitrary = oneof
+ -- Random chunk
+ [ Chunk <$> do
+ string <- arbitrary
+ let sanitized = filter (/= '$') string
+ return $ if null sanitized then "foo" else sanitized
+ -- Random identifier
+ , fmap Identifier $
+ choose (5, 10) >>= flip replicateM (choose ('a', 'z'))
+ -- Escape character
+ , return EscapeCharacter
+ ]
-- | Make @Template@ testable.
instance Arbitrary Template where
- arbitrary = choose (0, 20) >>= arbitraryTemplate
-
- shrink (Chunk chunk template) = [template, Chunk chunk End]
- shrink (Identifier key template) = [template, Identifier key End]
- shrink (EscapeCharacter template) = [template, EscapeCharacter End]
- shrink End = []
+ arbitrary = Template <$> arbitrary
+ shrink = map Template . shrink . unTemplate
-- Test encoding/decoding of templates.
prop_template_encode_id :: Template -> Bool