@@ -39,15 +39,15 @@ import Data.Monoid (mempty, mappend)
3939
4040import Network.Wai
4141import Network.Wai.Internal (ResponseReceived (ResponseReceived))
42+import Network.Wai.Test.Internal
4243import Control.Monad.IO.Class (liftIO)
4344import Control.Monad.Trans.Class (lift)
4445import qualified Control.Monad.Trans.State as ST
45−import Control.Monad.Trans.Reader (ReaderT, runReaderT, ask)
46+import Control.Monad.Trans.Reader (runReaderT, ask)
4647import Control.Monad (unless)
4748import Control.DeepSeq (deepseq)
4849import Control.Exception (throwIO, Exception)
4950import Data.Typeable (Typeable)
50−import Data.Map (Map)
5151import qualified Data.Map as Map
5252import qualified Web.Cookie as Cookie
5353import Data.ByteString (ByteString)
@@ -64,17 +64,6 @@ import qualified Data.Text.Encoding as TE
6464import Data.IORef
6565import Data.Time.Clock (getCurrentTime)
6666
67−type Session = ReaderT Application (ST.StateT ClientState IO)
68−
69−-- |
70−--
71−-- Since 3.0.6
72−type ClientCookies = Map ByteString Cookie.SetCookie
73−
74−data ClientState = ClientState
75− { clientCookies :: ClientCookies
76− }
77−
7867-- |
7968--
8069-- Since 3.0.6
@@ -104,9 +93,7 @@ deleteClientCookie cookieName =
10493 modifyClientCookies
10594 (Map.delete cookieName)
10695
107−initState :: ClientState
108−initState = ClientState Map.empty
109−
96+-- | See also: 'runSessionWith'.
11097runSession :: Session a -> Application -> IO a
11198runSession session app = ST.evalStateT (runReaderT session app) initState
11299
@@ -337,4 +324,3 @@ assertClientCookieValue s cookieName cookieValue = do
337324 ]
338325 )
339326 (Cookie.setCookieValue c == cookieValue)
340−