Browse Source

Merge branch 'bugfix/rich-media-card' into 'develop'

rich media cards: bugfixes and regression tests

See merge request pleroma/pleroma!785
tags/v0.9.9
Haelwenn 5 years ago
parent
commit
1220a17146
2 changed files with 59 additions and 2 deletions
  1. +4
    -2
      lib/pleroma/web/mastodon_api/views/status_view.ex
  2. +55
    -0
      test/web/mastodon_api/status_view_test.exs

+ 4
- 2
lib/pleroma/web/mastodon_api/views/status_view.ex View File

@@ -182,11 +182,13 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
end

def render("card.json", %{rich_media: rich_media, page_url: page_url}) do
page_url_data = URI.parse(page_url)

page_url_data =
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
page_url
page_url_data
end

page_url = page_url_data |> to_string


+ 55
- 0
test/web/mastodon_api/status_view_test.exs View File

@@ -235,4 +235,59 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
]
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

Loading…
Cancel
Save