|
|
@@ -2684,33 +2684,50 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do |
|
|
|
|> post("/api/v1/statuses/#{activity_two.id}/pin") |
|
|
|
|> json_response(400) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
test "Status rich-media Card", %{conn: conn, user: user} do |
|
|
|
describe "cards" do |
|
|
|
setup do |
|
|
|
Pleroma.Config.put([:rich_media, :enabled], true) |
|
|
|
|
|
|
|
on_exit(fn -> |
|
|
|
Pleroma.Config.put([:rich_media, :enabled], false) |
|
|
|
end) |
|
|
|
|
|
|
|
user = insert(:user) |
|
|
|
%{user: user} |
|
|
|
end |
|
|
|
|
|
|
|
test "returns rich-media card", %{conn: conn, user: user} do |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "http://example.com/ogp"}) |
|
|
|
|
|
|
|
card_data = %{ |
|
|
|
"image" => "http://ia.media-imdb.com/images/rock.jpg", |
|
|
|
"provider_name" => "www.imdb.com", |
|
|
|
"provider_url" => "http://www.imdb.com", |
|
|
|
"title" => "The Rock", |
|
|
|
"type" => "link", |
|
|
|
"url" => "http://www.imdb.com/title/tt0117500/", |
|
|
|
"description" => |
|
|
|
"Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.", |
|
|
|
"pleroma" => %{ |
|
|
|
"opengraph" => %{ |
|
|
|
"image" => "http://ia.media-imdb.com/images/rock.jpg", |
|
|
|
"title" => "The Rock", |
|
|
|
"type" => "video.movie", |
|
|
|
"url" => "http://www.imdb.com/title/tt0117500/", |
|
|
|
"description" => |
|
|
|
"Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer." |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
response = |
|
|
|
conn |
|
|
|
|> get("/api/v1/statuses/#{activity.id}/card") |
|
|
|
|> json_response(200) |
|
|
|
|
|
|
|
assert response == %{ |
|
|
|
"image" => "http://ia.media-imdb.com/images/rock.jpg", |
|
|
|
"provider_name" => "www.imdb.com", |
|
|
|
"provider_url" => "http://www.imdb.com", |
|
|
|
"title" => "The Rock", |
|
|
|
"type" => "link", |
|
|
|
"url" => "http://www.imdb.com/title/tt0117500/", |
|
|
|
"description" => nil, |
|
|
|
"pleroma" => %{ |
|
|
|
"opengraph" => %{ |
|
|
|
"image" => "http://ia.media-imdb.com/images/rock.jpg", |
|
|
|
"title" => "The Rock", |
|
|
|
"type" => "video.movie", |
|
|
|
"url" => "http://www.imdb.com/title/tt0117500/" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
assert response == card_data |
|
|
|
|
|
|
|
# works with private posts |
|
|
|
{:ok, activity} = |
|
|
@@ -2722,9 +2739,33 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do |
|
|
|
|> get("/api/v1/statuses/#{activity.id}/card") |
|
|
|
|> json_response(200) |
|
|
|
|
|
|
|
assert response_two == response |
|
|
|
assert response_two == card_data |
|
|
|
end |
|
|
|
|
|
|
|
test "replaces missing description with an empty string", %{conn: conn, user: user} do |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "http://example.com/ogp-missing-data"}) |
|
|
|
|
|
|
|
response = |
|
|
|
conn |
|
|
|
|> get("/api/v1/statuses/#{activity.id}/card") |
|
|
|
|> json_response(:ok) |
|
|
|
|
|
|
|
Pleroma.Config.put([:rich_media, :enabled], false) |
|
|
|
assert response == %{ |
|
|
|
"type" => "link", |
|
|
|
"title" => "Pleroma", |
|
|
|
"description" => "", |
|
|
|
"image" => nil, |
|
|
|
"provider_name" => "pleroma.social", |
|
|
|
"provider_url" => "https://pleroma.social", |
|
|
|
"url" => "https://pleroma.social/", |
|
|
|
"pleroma" => %{ |
|
|
|
"opengraph" => %{ |
|
|
|
"title" => "Pleroma", |
|
|
|
"type" => "website", |
|
|
|
"url" => "https://pleroma.social/" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|