playlists-0.4.0.0: test/ResolveSpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-
This file is part of the Haskell package playlists. It is subject to
the license terms in the LICENSE file found in the top-level directory
of this distribution and at git://pmade.com/playlists/LICENSE. No part
of playlists package, including this file, may be copied, modified,
propagated, or distributed except according to the terms contained in
the LICENSE file.
-}
--------------------------------------------------------------------------------
module ResolveSpec (spec) where
--------------------------------------------------------------------------------
import Data.Text (Text)
import qualified Data.Text as Text
import Helper (playlistFromFile)
import System.FilePath (dropExtension, takeFileName)
import Test.Hspec
--------------------------------------------------------------------------------
import Text.Playlist
--------------------------------------------------------------------------------
spec :: Spec
spec =
describe "Simple" $
it "Nested" $ loadAndResolve M3U "nested" `shouldReturn` resolved
--------------------------------------------------------------------------------
loadAndResolve :: Format -> FilePath -> IO Playlist
loadAndResolve format file = do
playlist <- playlistFromFile format file
resolve playlist download
where
download :: Text -> IO Playlist
download = playlistFromFile format . dropExtension .
takeFileName . Text.unpack
--------------------------------------------------------------------------------
resolved :: Playlist
resolved = [ Track "http://foo.com" Nothing
, Track "http://bar.com" Nothing
, Track "http://foo.com/aa.baz.live" Nothing
]