@@ -6,11 +6,12 @@
6module Servant.API.ContentTypesSpec where
6module Servant.API.ContentTypesSpec where
8import Control.Applicative
8import Control.Applicative
9import Data.Aeson
10import Data.Aeson
10import Data.Function (on)
11import Data.Function (on)
11import Data.Proxy
12import Data.Proxy
13−import Data.ByteString.Char8
14+import Data.ByteString.Char8 (ByteString, append, pack)
14import qualified Data.ByteString.Lazy as BSL
15import qualified Data.ByteString.Lazy as BSL
15import Data.List (maximumBy)
16import Data.List (maximumBy)
16import Data.Maybe (fromJust, isJust, isNothing)
17import Data.Maybe (fromJust, isJust, isNothing)
@@ -19,6 +20,7 @@ import Data.String.Conversions (cs)
19import qualified Data.Text as TextS
20import qualified Data.Text as TextS
20import qualified Data.Text.Lazy as TextL
21import qualified Data.Text.Lazy as TextL
21import GHC.Generics
22import GHC.Generics
23+import Network.URL (importParams, exportParams)
22import Test.Hspec
24import Test.Hspec
23import Test.QuickCheck
25import Test.QuickCheck
24import Test.QuickCheck.Instances ()
26import Test.QuickCheck.Instances ()
@@ -44,6 +46,14 @@ spec = describe "Servant.API.ContentTypes" $ do
44 let p = Proxy :: Proxy FormUrlEncoded
46 let p = Proxy :: Proxy FormUrlEncoded
45 property $ \x -> fromByteString p (toByteString p x) == Right (x::[(TextS.Text,TextS.Text)])
47 property $ \x -> fromByteString p (toByteString p x) == Right (x::[(TextS.Text,TextS.Text)])
49+ it "has fromByteString reverse exportParams (Network.URL)" $ do
50+ let p = Proxy :: Proxy FormUrlEncoded
51+ property $ \x -> (fromByteString p . cs . exportParams . map (cs *** cs) $ x) == Right (x::[(TextS.Text,TextS.Text)])
53+ it "has importParams (Network.URL) reverse toByteString" $ do
54+ let p = Proxy :: Proxy FormUrlEncoded
55+ property $ \x -> (fmap (map (cs *** cs)) . importParams . cs . toByteString p $ x) == Just (x::[(TextS.Text,TextS.Text)])
47 describe "The PlainText Content-Type type" $ do
57 describe "The PlainText Content-Type type" $ do
49 it "has fromByteString reverse toByteString (lazy Text)" $ do
59 it "has fromByteString reverse toByteString (lazy Text)" $ do