@@ -16,9 +16,9 @@ import Model.AudioTrack qualified as AudioTrack
1616import Model.Tag qualified as Tag
1717import Path (reldir , relfile , (</>) )
1818import Path qualified
19+ import Path.IO qualified as Path
1920import Sound.HTagLib qualified as HTagLib
20- import System.IO qualified as System
21- import Test.Hspec.Expectations (shouldBe )
21+ import Test.Hspec.Expectations (shouldBe , shouldSatisfy )
2222import Test.Tasty qualified as Tasty
2323import Test.Tasty.HUnit qualified as Tasty
2424import Tests.Common qualified as Common
@@ -27,22 +27,57 @@ test :: TestTree
2727test =
2828 Tasty. testGroup
2929 " check cover"
30- [ Tasty. testCase " check an album without a cover.jpg " $
30+ [ Tasty. testCase " check an album without a cover.png " $
3131 Common. withTenTracksFiles $
3232 \ dir album -> do
33- result <- Album. check (Album. HaveCover covers ) album
33+ result <- Album. check (Album. HaveCover coverNoSize ) album
3434 result `shouldBe` Left (Album. MissingCover dir),
35- Tasty. testCase " check an album with a cover.jpg " $
35+ Tasty. testCase " check an album with a cover.png " $
3636 Common. withTenTracksFiles $
3737 \ dir album -> do
38- System. writeFile
39- (Path. toFilePath $ dir </> head covers)
40- " dummy content"
38+ let coverFile = [relfile |./data/cover.png|]
39+ Path. copyFile coverFile $ dir </> Path. filename coverFile
4140
42- result <- Album. check (Album. HaveCover covers) album
43- result `shouldBe` Right ()
41+ result <- Album. check (Album. HaveCover coverNoSize) album
42+ result `shouldBe` Right () ,
43+ Tasty. testCase " check an album with a cover.png but too small" $
44+ Common. withTenTracksFiles $
45+ \ dir album -> do
46+ let coverFile = [relfile |./data/cover.png|]
47+ Path. copyFile coverFile $ dir </> Path. filename coverFile
48+
49+ result <- Album. check (Album. HaveCover coverTooSmall) album
50+ result `shouldSatisfy` isBadCoverSize,
51+ Tasty. testCase " check an album with a cover.png but too big" $
52+ Common. withTenTracksFiles $
53+ \ dir album -> do
54+ let coverFile = [relfile |./data/cover.png|]
55+ Path. copyFile coverFile $ dir </> Path. filename coverFile
56+
57+ result <- Album. check (Album. HaveCover coverTooBig) album
58+ result `shouldSatisfy` isBadCoverSize
4459 ]
4560 where
61+ isBadCoverSize (Left (Album. BadCoverSize _ _)) = True
62+ isBadCoverSize _ = False
63+ coverNoSize =
64+ Album. Cover
65+ { Album. coPaths = covers,
66+ Album. coMinSize = Nothing ,
67+ Album. coMaxSize = Nothing
68+ }
69+ coverTooSmall =
70+ Album. Cover
71+ { Album. coPaths = covers,
72+ Album. coMinSize = Just (Album. Size 200 200 ),
73+ Album. coMaxSize = Nothing
74+ }
75+ coverTooBig =
76+ Album. Cover
77+ { Album. coPaths = covers,
78+ Album. coMinSize = Nothing ,
79+ Album. coMaxSize = Just (Album. Size 50 50 )
80+ }
4681 covers = fromList [[relfile |cover.jpg|], [relfile |cover.png|]]
4782
4883test :: TestTree
0 commit comments