hablo/test/XML/Favicon.hs

26 lines
912 B
Haskell

module XML.Favicon (
test
) where
import Blog.Skin (findImage)
import Distribution.TestSuite
import Mock.URL (cdnFavicon, localDiscovered, localFavicon)
import Network.URL (URL)
import Utils (assertAll, assertEqual, simpleTest, tag)
check :: IO (Maybe URL) -> Maybe URL -> IO Progress
check getter expected = do
actual <- getter
assertAll $ [
assertEqual "URLs" actual expected
]
test :: Test
test = tag "favicon" . testGroup "Favicons" $ simpleTest <$> [
("auto-discover", check (findImage "favicon" Nothing) (Just localDiscovered))
, ("none", check (findImage "blerp" Nothing) Nothing)
, ("manual absolute", check (findImage "" (Just "https://cdn.net/favicon.png")) (Just cdnFavicon))
, ("manual relative", check (findImage "" (Just "favicon.png")) (Just localFavicon))
, ("manual host-relative", check (findImage "" (Just "/favicon.png")) (Just localFavicon))
]