haskell-ffprobe-0.1.0.1: test/FFProbe/TestFFProbe.hs
module FFProbe.TestFFProbe (specs) where
import FFProbe
import FFProbe.Data.Chapter
import FFProbe.Data.Stream
import Test.Hspec
import Utils (shouldBeRight)
specs :: Spec
specs = describe "Running ffprobe" $ do
it "Should Run ffprobe and give the correct values" $ do
res <- ffprobe "test/assets/test.mp4"
shouldBeRight
res
( \ffprobeData -> do
-- Testing streams
length (streams ffprobeData) `shouldBe` 3
let videoStream = filter isVideoStream (streams ffprobeData)
length videoStream `shouldBe` 1
let audioStream = filter isAudioStream (streams ffprobeData)
length audioStream `shouldBe` 1
-- Testing Chapters
length (chapters ffprobeData) `shouldBe` 3
title (head (chapters ffprobeData)) `shouldBe` Just "Start"
title (chapters ffprobeData !! 1) `shouldBe` Just "Middle"
title (chapters ffprobeData !! 2) `shouldBe` Just "End"
)
it "Should Succeed at parsing unicode characters" $ do
res <- ffprobe "test/assets/test-unicode.mp4"
shouldBeRight
res
( \ffprobeData -> do
title (head (chapters ffprobeData)) `shouldBe` Just "Début"
)