SubSubTest
This commit is contained in:
parent
197ecb409f
commit
9ce822b8f7
@ -9,6 +9,7 @@ import YesodCoreTest.Meta
|
|||||||
import YesodCoreTest.Links
|
import YesodCoreTest.Links
|
||||||
import YesodCoreTest.Header
|
import YesodCoreTest.Header
|
||||||
import YesodCoreTest.NoOverloadedStrings
|
import YesodCoreTest.NoOverloadedStrings
|
||||||
|
import YesodCoreTest.SubSub
|
||||||
import YesodCoreTest.InternalRequest
|
import YesodCoreTest.InternalRequest
|
||||||
import YesodCoreTest.ErrorHandling
|
import YesodCoreTest.ErrorHandling
|
||||||
import YesodCoreTest.Cache
|
import YesodCoreTest.Cache
|
||||||
@ -43,6 +44,7 @@ specs = do
|
|||||||
mediaTest
|
mediaTest
|
||||||
linksTest
|
linksTest
|
||||||
noOverloadedTest
|
noOverloadedTest
|
||||||
|
subSubTest
|
||||||
internalRequestTest
|
internalRequestTest
|
||||||
errorHandlingTest
|
errorHandlingTest
|
||||||
cacheTest
|
cacheTest
|
||||||
|
|||||||
48
yesod-core/test/YesodCoreTest/SubSub.hs
Normal file
48
yesod-core/test/YesodCoreTest/SubSub.hs
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
{-# LANGUAGE FlexibleInstances #-}
|
||||||
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||||
|
module YesodCoreTest.SubSub where
|
||||||
|
|
||||||
|
import Test.Hspec
|
||||||
|
|
||||||
|
import Yesod.Core
|
||||||
|
import Network.Wai.Test
|
||||||
|
import qualified Data.Text as T
|
||||||
|
import qualified Data.ByteString.Lazy.Char8 as L8
|
||||||
|
|
||||||
|
import YesodCoreTest.SubSubData
|
||||||
|
|
||||||
|
data App = App { getOuter :: OuterSubSite }
|
||||||
|
|
||||||
|
instance Yesod App
|
||||||
|
|
||||||
|
getSubR :: SubHandlerFor InnerSubSite master T.Text
|
||||||
|
getSubR = return $ T.pack "sub"
|
||||||
|
|
||||||
|
instance YesodSubDispatch OuterSubSite master where
|
||||||
|
yesodSubDispatch = $(mkYesodSubDispatch resourcesOuterSubSite)
|
||||||
|
|
||||||
|
instance YesodSubDispatch InnerSubSite master where
|
||||||
|
yesodSubDispatch = $(mkYesodSubDispatch resourcesInnerSubSite)
|
||||||
|
|
||||||
|
mkYesod "App" [parseRoutes|
|
||||||
|
/ OuterSubSiteR OuterSubSite getOuter
|
||||||
|
|]
|
||||||
|
|
||||||
|
app :: App
|
||||||
|
app = App { getOuter = OuterSubSite { getInner = InnerSubSite }}
|
||||||
|
|
||||||
|
runner :: Session () -> IO ()
|
||||||
|
runner f = toWaiApp app >>= runSession f
|
||||||
|
|
||||||
|
case_subSubsite :: IO ()
|
||||||
|
case_subSubsite = runner $ do
|
||||||
|
res <- request defaultRequest
|
||||||
|
assertBody (L8.pack "sub") res
|
||||||
|
assertStatus 200 res
|
||||||
|
|
||||||
|
subSubTest :: Spec
|
||||||
|
subSubTest = describe "YesodCoreTest.SubSub" $ do
|
||||||
|
it "sub_subsite" case_subSubsite
|
||||||
20
yesod-core/test/YesodCoreTest/SubSubData.hs
Normal file
20
yesod-core/test/YesodCoreTest/SubSubData.hs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
|
||||||
|
module YesodCoreTest.SubSubData where
|
||||||
|
|
||||||
|
import Yesod.Core
|
||||||
|
|
||||||
|
|
||||||
|
data OuterSubSite = OuterSubSite { getInner :: InnerSubSite }
|
||||||
|
|
||||||
|
data InnerSubSite = InnerSubSite
|
||||||
|
|
||||||
|
mkYesodSubData "InnerSubSite" [parseRoutes|
|
||||||
|
/ SubR GET
|
||||||
|
|]
|
||||||
|
|
||||||
|
mkYesodSubData "OuterSubSite" [parseRoutes|
|
||||||
|
/ InnerSubSiteR InnerSubSite getInner
|
||||||
|
|]
|
||||||
@ -173,6 +173,8 @@ test-suite tests
|
|||||||
YesodCoreTest.StubSslOnly
|
YesodCoreTest.StubSslOnly
|
||||||
YesodCoreTest.StubStrictSameSite
|
YesodCoreTest.StubStrictSameSite
|
||||||
YesodCoreTest.StubUnsecured
|
YesodCoreTest.StubUnsecured
|
||||||
|
YesodCoreTest.SubSub
|
||||||
|
YesodCoreTest.SubSubData
|
||||||
YesodCoreTest.WaiSubsite
|
YesodCoreTest.WaiSubsite
|
||||||
YesodCoreTest.Widget
|
YesodCoreTest.Widget
|
||||||
YesodCoreTest.YesodTest
|
YesodCoreTest.YesodTest
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user