diff options
| author | rinpatch <rinpatch@sdf.org> | 2020-09-02 09:38:43 +0000 | 
|---|---|---|
| committer | rinpatch <rinpatch@sdf.org> | 2020-09-02 09:38:43 +0000 | 
| commit | 47ff425cfd53212aba26e9eba86de16e3ef1442b (patch) | |
| tree | 319991d713598939f90aef71354ae2f47a3c61fe /test | |
| parent | b2d776d77d25eaf8dc789005c856d86e4c38f86d (diff) | |
| parent | 03d06062ab8feffbf7b03ecb7ff86c4a42af79ef (diff) | |
| download | pleroma-47ff425cfd53212aba26e9eba86de16e3ef1442b.tar.gz pleroma-47ff425cfd53212aba26e9eba86de16e3ef1442b.zip | |
Merge branch 'fix/2047-rich-media-parser' into 'develop'
RichMedia parser fix
Closes #2047
See merge request pleroma/pleroma!2941
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/rich_media/aws_signed_url_test.exs | 2 | ||||
| -rw-r--r-- | test/web/rich_media/parser_test.exs | 26 | 
2 files changed, 20 insertions, 8 deletions
| diff --git a/test/web/rich_media/aws_signed_url_test.exs b/test/web/rich_media/aws_signed_url_test.exs index b30f4400e..a21f3c935 100644 --- a/test/web/rich_media/aws_signed_url_test.exs +++ b/test/web/rich_media/aws_signed_url_test.exs @@ -21,7 +21,7 @@ defmodule Pleroma.Web.RichMedia.TTL.AwsSignedUrlTest do      expire_time =        Timex.parse!(timestamp, "{ISO:Basic:Z}") |> Timex.to_unix() |> Kernel.+(valid_till) -    assert expire_time == Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl.ttl(metadata, url) +    assert {:ok, expire_time} == Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl.ttl(metadata, url)    end    test "s3 signed url is parsed and correct ttl is set for rich media" do diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index 420a612c6..1e09cbf84 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -5,6 +5,8 @@  defmodule Pleroma.Web.RichMedia.ParserTest do    use ExUnit.Case, async: true +  alias Pleroma.Web.RichMedia.Parser +    setup do      Tesla.Mock.mock(fn        %{ @@ -48,23 +50,29 @@ defmodule Pleroma.Web.RichMedia.ParserTest do        %{method: :get, url: "http://example.com/empty"} ->          %Tesla.Env{status: 200, body: "hello"} + +      %{method: :get, url: "http://example.com/malformed"} -> +        %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/malformed-data.html")} + +      %{method: :get, url: "http://example.com/error"} -> +        {:error, :overload}      end)      :ok    end    test "returns error when no metadata present" do -    assert {:error, _} = Pleroma.Web.RichMedia.Parser.parse("http://example.com/empty") +    assert {:error, _} = Parser.parse("http://example.com/empty")    end    test "doesn't just add a title" do -    assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/non-ogp") == +    assert Parser.parse("http://example.com/non-ogp") ==               {:error,                "Found metadata was invalid or incomplete: %{\"url\" => \"http://example.com/non-ogp\"}"}    end    test "parses ogp" do -    assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp") == +    assert Parser.parse("http://example.com/ogp") ==               {:ok,                %{                  "image" => "http://ia.media-imdb.com/images/rock.jpg", @@ -77,7 +85,7 @@ defmodule Pleroma.Web.RichMedia.ParserTest do    end    test "falls back to <title> when ogp:title is missing" do -    assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp-missing-title") == +    assert Parser.parse("http://example.com/ogp-missing-title") ==               {:ok,                %{                  "image" => "http://ia.media-imdb.com/images/rock.jpg", @@ -90,7 +98,7 @@ defmodule Pleroma.Web.RichMedia.ParserTest do    end    test "parses twitter card" do -    assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/twitter-card") == +    assert Parser.parse("http://example.com/twitter-card") ==               {:ok,                %{                  "card" => "summary", @@ -103,7 +111,7 @@ defmodule Pleroma.Web.RichMedia.ParserTest do    end    test "parses OEmbed" do -    assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/oembed") == +    assert Parser.parse("http://example.com/oembed") ==               {:ok,                %{                  "author_name" => "bees", @@ -132,6 +140,10 @@ defmodule Pleroma.Web.RichMedia.ParserTest do    end    test "rejects invalid OGP data" do -    assert {:error, _} = Pleroma.Web.RichMedia.Parser.parse("http://example.com/malformed") +    assert {:error, _} = Parser.parse("http://example.com/malformed") +  end + +  test "returns error if getting page was not successful" do +    assert {:error, :overload} = Parser.parse("http://example.com/error")    end  end | 
