on master help sign in
Add testcase

I've ensured both parts of the test fail without the changes. To ensure the whole test fails without the fixes, accented characters must be in the path argument, not just in the current working directory.

commit8b431268fe57139dd39d94f56403ab62c69251c8 authorPaolo G. Giarrusso <p.giarrusso@gmail.com> dateSun 14 Aug 2016, 21:39 (10 years ago) parente878add
3 files changed+16
test/Data/YamlSpec.hs+13 test/resources/accenté/foo.yaml+1 yaml.cabal+2
test/Data/YamlSpec.hs+13
@@ -19,6 +19,7 @@ import Control.Monad
1919import Control.Exception (try, SomeException)
2020import Test.Hspec
2121import Data.Either.Compat
22+import System.Directory (createDirectory)
2223import Test.Mockery.Directory
2324
2425import qualified Data.Yaml as D
@@ -63,6 +64,7 @@ spec = do
6364 describe "Data.Yaml" $ do
6465 it "encode/decode" caseEncodeDecodeData
6566 it "encode/decode file" caseEncodeDecodeFileData
67+ it "encode/decode files with non-ASCII names" caseEncodeDecodeNonAsciiFileData
6668 it "encode/decode strings" caseEncodeDecodeStrings
6769 it "decode invalid file" caseDecodeInvalid
6870 it "processes datatypes" caseDataTypes
@@ -317,6 +319,17 @@ caseEncodeDecodeFileData = withFile "" $ \fp -> do
317319 out <- D.decodeFile fp
318320 out @?= Just sample
319321
322+caseEncodeDecodeNonAsciiFileData :: Assertion
323+caseEncodeDecodeNonAsciiFileData = do
324+ let mySample = (object ["foo" .= True])
325+ inTempDirectory $ do
326+ createDirectory "accenté"
327+ D.encodeFile "accenté/bar.yaml" mySample
328+ out1 <- D.decodeFile "accenté/bar.yaml"
329+ out1 @?= Just mySample
330+ out2 <- D.decodeFile "test/resources/accenté/foo.yaml"
331+ out2 @?= Just mySample
332+
320333caseEncodeDecodeStrings :: Assertion
321334caseEncodeDecodeStrings = do
322335 let out = D.decode $ D.encode sample
test/resources/accenté/foo.yamlnew file+1
@@ -0,0 +1 @@
1+foo: true
yaml.cabal+2
@@ -20,6 +20,7 @@ extra-source-files: c/helper.h
2020 test/resources/foo.yaml
2121 test/resources/bar.yaml
2222 test/resources/baz.yaml
23+ test/resources/accenté/foo.yaml
2324 test/resources/loop/foo.yaml
2425 test/resources/loop/bar.yaml
2526 README.md
@@ -130,6 +131,7 @@ test-suite spec
130131 , text
131132 , aeson >= 0.7
132133 , unordered-containers
134+ , directory
133135 , vector
134136 , resourcet
135137 , aeson-qq