@@ -63,25 +63,39 @@ import Data.Time.Clock (getCurrentTime)
6363
6464type Session = ReaderT Application (ST.StateT ClientState IO)
6565
66+-- |
67+--
68+-- Since 3.0.6
6669type ClientCookies = Map ByteString Cookie.SetCookie
6770
6871data ClientState = ClientState
6972 { clientCookies :: ClientCookies
7073 }
7174
75+-- |
76+--
77+-- Since 3.0.6
7278getClientCookies :: Session ClientCookies
7379getClientCookies = clientCookies <$> lift ST.get
7480
81+-- |
82+--
83+-- Since 3.0.6
7584modifyClientCookies :: (ClientCookies -> ClientCookies) -> Session ()
7685modifyClientCookies f =
7786 lift (ST.modify (\cs -> cs { clientCookies = f $ clientCookies cs }))
7887
88+-- |
89+--
90+-- Since 3.0.6
7991setClientCookie :: Cookie.SetCookie -> Session ()
8092setClientCookie c =
8193 modifyClientCookies
82− (Map.union
83− (Map.singleton (Cookie.setCookieName c) c))
94+ (Map.insert (Cookie.setCookieName c) c)
8495
96+-- |
97+--
98+-- Since 3.0.6
8599deleteClientCookie :: ByteString -> Session ()
86100deleteClientCookie cookieName =
87101 modifyClientCookies
@@ -280,16 +294,25 @@ assertNoHeader header SResponse{simpleHeaders = h} =
280294 , show s
281295 ]
282296
297+-- |
298+--
299+-- Since 3.0.6
283300assertClientCookieExists :: String -> ByteString -> Session ()
284301assertClientCookieExists s cookieName = do
285302 cookies <- getClientCookies
286303 assertBool s $ Map.member cookieName cookies
287304
305+-- |
306+--
307+-- Since 3.0.6
288308assertNoClientCookieExists :: String -> ByteString -> Session ()
289309assertNoClientCookieExists s cookieName = do
290310 cookies <- getClientCookies
291311 assertBool s $ not $ Map.member cookieName cookies
292312
313+-- |
314+--
315+-- Since 3.0.6
293316assertClientCookieValue :: String -> ByteString -> ByteString -> Session ()
294317assertClientCookieValue s cookieName cookieValue = do
295318 cookies <- getClientCookies