@@ -1,10 +1,8 @@
1module Servant.QuickCheck.Internal.Predicates where
1module Servant.QuickCheck.Internal.Predicates where
3−import Control.Exception (SomeException, catch, throw)
3+import Control.Exception (catch, throw)
4−import Control.Monad (ap, guard, liftM2)
5import Control.Monad.Reader
4import Control.Monad.Reader
6import Data.Aeson (Object, decode)
5import Data.Aeson (Object, decode)
7−import Data.Bifunctor (Bifunctor (..))
8import qualified Data.ByteString as SBS
6import qualified Data.ByteString as SBS
9import qualified Data.ByteString.Char8 as SBSC
7import qualified Data.ByteString.Char8 as SBSC
10import qualified Data.ByteString.Lazy as LBS
8import qualified Data.ByteString.Lazy as LBS
@@ -13,12 +11,10 @@ import Data.Either (isRight)
13import Data.List.Split (wordsBy)
11import Data.List.Split (wordsBy)
14import Data.Maybe (fromMaybe, isJust)
12import Data.Maybe (fromMaybe, isJust)
15import Data.Monoid ((<>))
13import Data.Monoid ((<>))
16−import Data.Text (Text)
17import GHC.Generics (Generic)
14import GHC.Generics (Generic)
18import Network.HTTP.Client (Manager, Request, Response, httpLbs,
15import Network.HTTP.Client (Manager, Request, Response, httpLbs,
19− method, parseUrl, requestHeaders,
16+ method, requestHeaders, responseBody,
20− responseBody, responseHeaders,
21− responseStatus)
17+ responseHeaders, parseUrl, responseStatus)
22import Network.HTTP.Media (matchAccept)
18import Network.HTTP.Media (matchAccept)
23import Network.HTTP.Types (methodGet, methodHead, parseMethod,
19import Network.HTTP.Types (methodGet, methodHead, parseMethod,
24 renderStdMethod, status100, status200,
20 renderStdMethod, status100, status200,
@@ -134,7 +130,7 @@ notAllowedContainsAllowHeader
134 | m <- [minBound .. maxBound ]
130 | m <- [minBound .. maxBound ]
135 , renderStdMethod m /= method req ]
131 , renderStdMethod m /= method req ]
136 case filter pred' resp of
132 case filter pred' resp of
137− (x:xs) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x
133+ (x:_) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x
138 [] -> return resp
134 [] -> return resp
140 pred' resp = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)
136 pred' resp = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)