diff --git a/yesod-core/test/YesodCoreTest/InternalRequest.hs b/yesod-core/test/YesodCoreTest/InternalRequest.hs index 6615ddd1..b3aa4044 100644 --- a/yesod-core/test/YesodCoreTest/InternalRequest.hs +++ b/yesod-core/test/YesodCoreTest/InternalRequest.hs @@ -18,8 +18,10 @@ randomStringSpecs = describe "Yesod.Internal.Request.randomString" -- NOTE: this testcase may break on other systems/architectures if -- mkStdGen is not identical everywhere (is it?). +looksRandom :: Bool looksRandom = randomString 20 (mkStdGen 0) == "VH9SkhtptqPs6GqtofVg" +noRepeat :: Int -> Int -> Bool noRepeat len n = length (nub $ map (randomString len . mkStdGen) [1..n]) == n @@ -36,15 +38,19 @@ nonceSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqNonce)" , it "generates a new nonce for sessions without nonce" generateNonce ] +noDisabledNonce :: Bool noDisabledNonce = reqNonce r == Nothing where r = parseWaiRequest' defaultRequest [] Nothing g +ignoreDisabledNonce :: Bool ignoreDisabledNonce = reqNonce r == Nothing where r = parseWaiRequest' defaultRequest [("_NONCE", "old")] Nothing g +useOldNonce :: Bool useOldNonce = reqNonce r == Just "old" where r = parseWaiRequest' defaultRequest [("_NONCE", "old")] (Just undefined) g +generateNonce :: Bool generateNonce = reqNonce r /= Nothing where r = parseWaiRequest' defaultRequest [("_NONCE", "old")] (Just undefined) g @@ -58,21 +64,26 @@ langSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqLangs)" , it "prioritizes correctly" prioritizeLangs ] +respectAcceptLangs :: Bool respectAcceptLangs = reqLangs r == ["accept1", "accept2"] where r = parseWaiRequest' defaultRequest { requestHeaders = [("Accept-Language", "accept1, accept2")] } [] Nothing g +respectSessionLang :: Bool respectSessionLang = reqLangs r == ["session"] where r = parseWaiRequest' defaultRequest [("_LANG", "session")] Nothing g +respectCookieLang :: Bool respectCookieLang = reqLangs r == ["cookie"] where r = parseWaiRequest' defaultRequest { requestHeaders = [("Cookie", "_LANG=cookie")] } [] Nothing g +respectQueryLang :: Bool respectQueryLang = reqLangs r == ["query"] where r = parseWaiRequest' defaultRequest { queryString = [("_LANG", Just "query")] } [] Nothing g +prioritizeLangs :: Bool prioritizeLangs = reqLangs r == ["query", "cookie", "session", "accept1", "accept2"] where r = parseWaiRequest' defaultRequest { requestHeaders = [ ("Accept-Language", "accept1, accept2") @@ -87,5 +98,3 @@ internalRequestTest = descriptions [ randomStringSpecs , nonceSpecs , langSpecs ] - -main = hspec internalRequestTest diff --git a/yesod-core/test/YesodCoreTest/Redirect.hs b/yesod-core/test/YesodCoreTest/Redirect.hs index 8a31d19b..9a869a93 100644 --- a/yesod-core/test/YesodCoreTest/Redirect.hs +++ b/yesod-core/test/YesodCoreTest/Redirect.hs @@ -1,5 +1,5 @@ {-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings #-} -module YesodCoreTest.Redirect (specs) where +module YesodCoreTest.Redirect (specs, Widget) where import YesodCoreTest.YesodTest import Yesod.Handler (RedirectType(..))