@@ -0,0 +1,50 @@
1+{-# LANGUAGE OverloadedStrings #-}
2+module Hakyll.Core.UnixFilter.Tests
3+ where
4+
5+import Control.Arrow ((>>>))
6+import qualified Data.Map as M
7+
8+import Test.Framework (Test)
9+import Test.Framework.Providers.HUnit (testCase)
10+import qualified Test.HUnit as H
11+import qualified Data.Text.Lazy as TL
12+import qualified Data.Text.Lazy.Encoding as TL
13+
14+import Hakyll.Core.Compiler
15+import Hakyll.Core.Resource.Provider.Dummy
16+import Hakyll.Core.UnixFilter
17+import TestSuite.Util
18+
19+tests :: [Test]
20+tests =
21+ [ testCase "unixFilter rev" unixFilterRev
22+ ]
23+
24+unixFilterRev :: H.Assertion
25+unixFilterRev = do
26+ provider <- dummyResourceProvider $ M.singleton "foo" $
27+ TL.encodeUtf8 $ TL.pack text
28+ output <- runCompilerJobTest compiler "foo" provider ["foo"]
29+ H.assert $ rev text == lines output
30+ where
31+ compiler = getResource >>> getResourceString >>> unixFilter "rev" []
32+ rev = map reverse . lines
33+
34+text :: String
35+text = unlines
36+ [ "Статья 18"
37+ , ""
38+ , "Каждый человек имеет право на свободу мысли, совести и религии; это"
39+ , "право включает свободу менять свою религию или убеждения и свободу"
40+ , "исповедовать свою религию или убеждения как единолично, так и сообща с"
41+ , "другими, публичным или частным порядком в учении, богослужении и"
42+ , "выполнении религиозных и ритуальных обрядов."
43+ , ""
44+ , "Статья 19"
45+ , ""
46+ , "Каждый человек имеет право на свободу убеждений и на свободное выражение"
47+ , "их; это право включает свободу беспрепятственно придерживаться своих"
48+ , "убеждений и свободу искать, получать и распространять информацию и идеи"
49+ , "любыми средствами и независимо от государственных границ."
50+ ]