diff options
author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2010-09-23 12:23:25 +0200 |
---|---|---|
committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2010-09-23 12:23:25 +0200 |
commit | 2c6239b37d66e991e9f7ddc07316b2ca4c8f5d7d (patch) | |
tree | d8bf8bc8f730b39a9fe598ef0a9cad5ddc56ea06 | |
parent | 3631e42f49708a324f0be401c04f4b70685a8f76 (diff) | |
download | hakyll-2c6239b37d66e991e9f7ddc07316b2ca4c8f5d7d.tar.gz |
Fix tests in master
-rw-r--r-- | .ghci | 2 | ||||
-rw-r--r-- | tests/Template.hs | 41 |
2 files changed, 18 insertions, 25 deletions
@@ -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 |