Properly handle UTF-8 in tests
authorGreg Hurrell <greg@hurrell.net>
Wed, 3 May 2017 07:13:48 +0000 (00:13 -0700)
committerGreg Hurrell <greg@hurrell.net>
Wed, 3 May 2017 07:14:49 +0000 (00:14 -0700)
Closes: https://github.com/wincent/docvim/issues/37
docvim.cabal
tests/Tasty.hs
tests/fixtures/integration/ferret/golden/markdown.golden
tests/fixtures/integration/ferret/golden/plaintext.golden

index d9e55167e1b24b8052e9f8ca952f71dfb5d78875..c8717de2b1c598d7fdd535ebe1a1c18351edf3e5 100644 (file)
@@ -302,6 +302,7 @@ test-suite tasty
                ,    tasty-golden
                ,    tasty-hunit
                ,    temporary
+               ,    utf8-string
   other-modules:     Text.Docvim.AST
                ,     Text.Docvim.Compile
                ,     Text.Docvim.Optimize
index fea1682da1053df7a713eb572e6535bcc9785c8c..b86ca0f68eb05c2d9c93363af1323abc838222d5 100644 (file)
@@ -8,7 +8,7 @@ import Control.Applicative ((<$>))
 #endif
 import Control.DeepSeq
 import Control.Exception hiding (assert)
-import Data.ByteString.Lazy.Char8 (pack, unpack)
+import Data.ByteString.Lazy.UTF8 (fromString, toString)
 import Data.Char
 import Data.List --(isPrefixOf, sort)
 import Data.Monoid
@@ -110,7 +110,7 @@ goldenTests description sources transform = testGroup groupName $ do
       run = do
         input <- readFile file
         let output = normalize $ transform [input]
-        return $ pack output -- pack because tasty-golden wants a ByteString
+        return $ fromString output
       name = takeBaseName file
       golden = replaceExtension file ".golden"
     return $ goldenVsStringDiff' name diff golden run
@@ -130,7 +130,7 @@ integrationTests sources = testGroup "Integration tests" $
         output = do
           inputs <- getFixtures $ source </> "input"
           contents <- mapM readFile (sort inputs)
-          return $ pack $ normalize $ process contents
+          return $ fromString $ normalize $ process contents
         name = takeBaseName source
         golden = "tests/fixtures/integration" </> (takeBaseName source) </> "golden/" ++ kind ++ ".golden"
       return $ goldenVsStringDiff' (name ++ " (" ++ kind ++ ")") diff golden output
@@ -163,7 +163,7 @@ goldenVsStringDiff' name diff' golden run =
   where
     template = takeFileName golden <.> "actual"
     hunkHeader = map chr [0x1b, 0x5b, 0x33, 0x36, 0x6d] ++ "@@ "
-    strip out = unlines $ dropWhile (not . isPrefixOf hunkHeader) (lines $ unpack out)
+    strip out = unlines $ dropWhile (not . isPrefixOf hunkHeader) (lines $ toString out)
     cmp _ actBS = withSystemTempFile template $ \tmpFile tmpHandle -> do
       ByteString.hPut tmpHandle actBS >> hFlush tmpHandle
       let cmd = diff' golden tmpFile
index 119f262b3a433a75b9766b3ae1ace34253d6a209..42b6c4e8069d95717b05cdd4eca80f3c1593ed9c 100644 (file)
@@ -503,7 +503,7 @@ The idea for vim-dispatch integration was taken from Miles Sterrett's ack.vim pl
 Other contributors that have submitted patches include (in alphabetical order):
 
 - Daniel Silva
-- Filip SzymaDski
+- Filip Szymański
 - Joe Lencioni
 - Nelo-Thara Wallus
 - Tom Dooner
index e03a45eb722f1dc67babcfd3d7fad8d864a910d6..62f3bb8ac25b1347e073eb46e923f7f013a8e798 100644 (file)
@@ -576,7 +576,7 @@ Other contributors that have submitted patches include (in alphabetical
 order):
 
 - Daniel Silva
-- Filip SzymaDski
+- Filip Szymański
 - Joe Lencioni
 - Nelo-Thara Wallus
 - Tom Dooner