2019-01-01 12:26:40 -08:00
|
|
|
defmodule Pleroma.Web.RichMedia.ParserTest do
|
|
|
|
use ExUnit.Case, async: true
|
|
|
|
|
|
|
|
setup do
|
|
|
|
Tesla.Mock.mock(fn
|
|
|
|
%{
|
|
|
|
method: :get,
|
|
|
|
url: "http://example.com/ogp"
|
|
|
|
} ->
|
|
|
|
%Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}
|
2019-01-02 06:02:50 -08:00
|
|
|
|
|
|
|
%{method: :get, url: "http://example.com/empty"} ->
|
|
|
|
%Tesla.Env{status: 200, body: "hello"}
|
2019-01-01 12:26:40 -08:00
|
|
|
end)
|
|
|
|
|
|
|
|
:ok
|
|
|
|
end
|
|
|
|
|
2019-01-02 06:02:50 -08:00
|
|
|
test "returns error when no metadata present" do
|
|
|
|
assert {:error, _} = Pleroma.Web.RichMedia.Parser.parse("http://example.com/empty")
|
|
|
|
end
|
|
|
|
|
2019-01-01 12:26:40 -08:00
|
|
|
test "parses ogp" do
|
|
|
|
assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp") ==
|
2019-01-02 06:02:50 -08:00
|
|
|
{:ok,
|
|
|
|
%{
|
|
|
|
image: "http://ia.media-imdb.com/images/rock.jpg",
|
|
|
|
title: "The Rock",
|
|
|
|
type: "video.movie",
|
|
|
|
url: "http://www.imdb.com/title/tt0117500/"
|
|
|
|
}}
|
2019-01-01 12:26:40 -08:00
|
|
|
end
|
|
|
|
end
|