Files
pinchflat/test/pinchflat/metadata/source_image_parser_test.exs
T
Kieran 5a10015634 [Enhancement] Download image when using playlists with media center apps (#313)
* [WIP] started adding calls for downloading posters for playlists

* Updated source image parser to work with playlists
2024-07-15 12:04:57 -07:00

126 lines
3.4 KiB
Elixir

defmodule Pinchflat.Metadata.SourceImageParserTest do
use Pinchflat.DataCase
alias Pinchflat.Metadata.SourceImageParser
@base_dir Application.compile_env(:pinchflat, :tmpfile_directory)
describe "store_source_images/2" do
test "returns a map of image types and locations" do
metadata = render_parsed_metadata(:channel_source_metadata)
expected = %{
banner_filepath: "#{@base_dir}/banner.jpg",
fanart_filepath: "#{@base_dir}/fanart.jpg",
poster_filepath: "#{@base_dir}/poster.jpg"
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == expected
end
test "returns the avatar_uncropped as the poster" do
metadata = %{
"thumbnails" => [
%{"id" => "avatar_uncropped", "filepath" => "/app/test/support/files/channel_photos/a.0.jpg"}
]
}
expected = %{
poster_filepath: "#{@base_dir}/poster.jpg"
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == expected
end
test "returns the banner_uncropped as the fanart" do
metadata = %{
"thumbnails" => [
%{"id" => "banner_uncropped", "filepath" => "/app/test/support/files/channel_photos/a.0.jpg"}
]
}
expected = %{
fanart_filepath: "#{@base_dir}/fanart.jpg"
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == expected
end
test "doesn't return a banner if no suitable images are found" do
metadata = %{
"thumbnails" => [
%{
"id" => "1",
"filepath" => "foo.jpg",
"width" => 100,
"height" => 100
}
]
}
expected = %{}
assert SourceImageParser.store_source_images(@base_dir, metadata) == expected
end
test "doesn't blow up if empty metadata is passed" do
metadata = %{}
assert SourceImageParser.store_source_images(@base_dir, metadata) == %{}
end
test "doesn't blow up if no thumbnails are passed" do
metadata = %{"thumbnails" => []}
assert SourceImageParser.store_source_images(@base_dir, metadata) == %{}
end
end
describe "store_source_images/2 when testing fallbacks" do
test "uses the entries list for a fallback poster if needed" do
metadata = %{
"thumbnails" => [],
"entries" => [
%{
"thumbnails" => [%{"filepath" => "/app/test/support/files/channel_photos/a.0.jpg"}]
}
]
}
expected = %{
poster_filepath: "#{@base_dir}/poster.jpg"
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == expected
end
test "doesn't blow up if the entries list doesn't have any suitable thumbnails" do
metadata = %{
"thumbnails" => [],
"entries" => [
%{"thumbnails" => [%{"id" => "1"}]}
]
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == %{}
end
test "doesn't use the entries list if it's empty" do
metadata = %{
"thumbnails" => [],
"entries" => []
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == %{}
end
test "doesn't use the entries list if it's not present" do
metadata = %{
"thumbnails" => []
}
assert SourceImageParser.store_source_images(@base_dir, metadata) == %{}
end
end
end