diff --git a/yesod-core/Yesod/Internal/Request.hs b/yesod-core/Yesod/Internal/Request.hs index 49c3be18..6470e3f9 100644 --- a/yesod-core/Yesod/Internal/Request.hs +++ b/yesod-core/Yesod/Internal/Request.hs @@ -5,10 +5,9 @@ module Yesod.Internal.Request , Request (..) , RequestBodyContents , FileInfo (..) -#ifdef TEST + -- The below are exported for testing. , randomString , parseWaiRequest' -#endif ) where import Control.Applicative ((<$>)) @@ -41,8 +40,7 @@ parseWaiRequest :: W.Request -> [(Text, Text)] -- ^ session -> Maybe a -> IO Request -parseWaiRequest env session' key' = parseWaiRequest' env session' key' - <$> newStdGen +parseWaiRequest env session' key' = parseWaiRequest' env session' key' <$> newStdGen parseWaiRequest' :: RandomGen g => W.Request diff --git a/yesod-core/Yesod/Internal/TestApi.hs b/yesod-core/Yesod/Internal/TestApi.hs new file mode 100644 index 00000000..2e0db12d --- /dev/null +++ b/yesod-core/Yesod/Internal/TestApi.hs @@ -0,0 +1,10 @@ +-- +-- | WARNING: This module exposes internal interfaces solely for the +-- purpose of facilitating unit testing with cabal install. Library +-- users should not import this module. +-- +module Yesod.Internal.TestApi + ( Request (..), randomString, parseWaiRequest' + ) where + +import Yesod.Internal.Request (Request (..), randomString, parseWaiRequest') diff --git a/yesod-core/test/main.hs b/yesod-core/test/main.hs index afdaaa8e..00cff379 100644 --- a/yesod-core/test/main.hs +++ b/yesod-core/test/main.hs @@ -6,13 +6,15 @@ import Test.Widget import Test.Media import Test.Links import Test.NoOverloadedStrings +import Test.InternalRequest main :: IO () -main = hspecX $ descriptions $ +main = hspecX $ descriptions $ [ cleanPathTest , exceptionsTest , widgetTest , mediaTest , linksTest , noOverloadedTest + , internalRequestTest ] diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index 233b95c6..8ac3de66 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -65,6 +65,7 @@ library Yesod.Request Yesod.Widget Yesod.Message + Yesod.Internal.TestApi other-modules: Yesod.Internal Yesod.Internal.Core Yesod.Internal.Session @@ -101,6 +102,7 @@ test-suite runtests ,shakespeare-js ,text ,http-types + , random ,HUnit ,QuickCheck >= 2 && < 3 ghc-options: -Wall