@@ -0,0 +1,54 @@
1+module Hakyll.Web.Page.Metadata.Tests
2+ ( tests
3+ ) where
4+
5+import Test.Framework
6+import Test.HUnit hiding (Test)
7+
8+import qualified Data.Map as M
9+import Data.Monoid (mempty)
10+import Data.Char (toLower)
11+
12+import Hakyll.Web.Page
13+import Hakyll.Web.Page.Metadata
14+import TestSuite.Util
15+
16+tests :: [Test]
17+tests = concat $
18+ [ fromAssertions "getField"
19+ [ "bar" @=? getField "foo" (Page (M.singleton "foo" "bar") "body\n")
20+ , "" @=? getField "foo" (Page M.empty "body")
21+ ]
22+
23+ , fromAssertions "getFieldMaybe"
24+ [ Just "bar" @=? getFieldMaybe "foo" (Page (M.singleton "foo" "bar") "")
25+ , Nothing @=? getFieldMaybe "foo" (Page M.empty "body")
26+ ]
27+
28+ , fromAssertions "setField"
29+ [ (Page (M.singleton "bar" "foo") "") @=? setField "bar" "foo" mempty
30+ , (Page (M.singleton "bar" "foo") "") @=?
31+ setField "bar" "foo" (Page (M.singleton "bar" "qux") "")
32+ ]
33+
34+ , fromAssertions "trySetField"
35+ [ (Page (M.singleton "bar" "foo") "") @=? trySetField "bar" "foo" mempty
36+ , (Page (M.singleton "bar" "qux") "") @=?
37+ trySetField "bar" "foo" (Page (M.singleton "bar" "qux") "")
38+ ]
39+
40+ , fromAssertions "setFieldA"
41+ [ (Page (M.singleton "bar" "foo") "") @=?
42+ setFieldA "bar" (map toLower) (mempty, "FOO")
43+ ]
44+
45+ , fromAssertions "copyBodyToField"
46+ [ (Page (M.singleton "bar" "foo") "foo") @=?
47+ copyBodyToField "bar" (Page M.empty "foo")
48+ ]
49+
50+ , fromAssertions "copyBodyFromField"
51+ [ (Page (M.singleton "bar" "foo") "foo") @=?
52+ copyBodyFromField "bar" (Page (M.singleton "bar" "foo") "qux")
53+ ]
54+ ]