mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-11-18 15:14:42 +00:00
Merge branch 'bugfix/rich-media-card' into 'develop'
rich media cards: bugfixes and regression tests See merge request pleroma/pleroma!785
This commit is contained in:
commit
1220a17146
2 changed files with 59 additions and 2 deletions
|
@ -182,11 +182,13 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
|
||||||
end
|
end
|
||||||
|
|
||||||
def render("card.json", %{rich_media: rich_media, page_url: page_url}) do
|
def render("card.json", %{rich_media: rich_media, page_url: page_url}) do
|
||||||
|
page_url_data = URI.parse(page_url)
|
||||||
|
|
||||||
page_url_data =
|
page_url_data =
|
||||||
if rich_media[:url] != nil do
|
if rich_media[:url] != nil do
|
||||||
URI.merge(URI.parse(page_url), URI.parse(rich_media[:url]))
|
URI.merge(page_url_data, URI.parse(rich_media[:url]))
|
||||||
else
|
else
|
||||||
page_url
|
page_url_data
|
||||||
end
|
end
|
||||||
|
|
||||||
page_url = page_url_data |> to_string
|
page_url = page_url_data |> to_string
|
||||||
|
|
|
@ -235,4 +235,59 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "rich media cards" do
|
||||||
|
test "a rich media card without a site name renders correctly" do
|
||||||
|
page_url = "http://example.com"
|
||||||
|
|
||||||
|
card = %{
|
||||||
|
url: page_url,
|
||||||
|
image: page_url <> "/example.jpg",
|
||||||
|
title: "Example website"
|
||||||
|
}
|
||||||
|
|
||||||
|
%{provider_name: "example.com"} =
|
||||||
|
StatusView.render("card.json", %{page_url: page_url, rich_media: card})
|
||||||
|
end
|
||||||
|
|
||||||
|
test "a rich media card without a site name or image renders correctly" do
|
||||||
|
page_url = "http://example.com"
|
||||||
|
|
||||||
|
card = %{
|
||||||
|
url: page_url,
|
||||||
|
title: "Example website"
|
||||||
|
}
|
||||||
|
|
||||||
|
%{provider_name: "example.com"} =
|
||||||
|
StatusView.render("card.json", %{page_url: page_url, rich_media: card})
|
||||||
|
end
|
||||||
|
|
||||||
|
test "a rich media card without an image renders correctly" do
|
||||||
|
page_url = "http://example.com"
|
||||||
|
|
||||||
|
card = %{
|
||||||
|
url: page_url,
|
||||||
|
site_name: "Example site name",
|
||||||
|
title: "Example website"
|
||||||
|
}
|
||||||
|
|
||||||
|
%{provider_name: "Example site name"} =
|
||||||
|
StatusView.render("card.json", %{page_url: page_url, rich_media: card})
|
||||||
|
end
|
||||||
|
|
||||||
|
test "a rich media card with all relevant data renders correctly" do
|
||||||
|
page_url = "http://example.com"
|
||||||
|
|
||||||
|
card = %{
|
||||||
|
url: page_url,
|
||||||
|
site_name: "Example site name",
|
||||||
|
title: "Example website",
|
||||||
|
image: page_url <> "/example.jpg",
|
||||||
|
description: "Example description"
|
||||||
|
}
|
||||||
|
|
||||||
|
%{provider_name: "Example site name"} =
|
||||||
|
StatusView.render("card.json", %{page_url: page_url, rich_media: card})
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue