diff options
Diffstat (limited to 'test/web/rich_media')
| -rw-r--r-- | test/web/rich_media/aws_signed_url_test.exs | 2 | ||||
| -rw-r--r-- | test/web/rich_media/helpers_test.exs | 32 | ||||
| -rw-r--r-- | test/web/rich_media/parser_test.exs | 2 | ||||
| -rw-r--r-- | test/web/rich_media/parsers/twitter_card_test.exs | 54 | 
4 files changed, 67 insertions, 23 deletions
diff --git a/test/web/rich_media/aws_signed_url_test.exs b/test/web/rich_media/aws_signed_url_test.exs index a3a50cbb1..b30f4400e 100644 --- a/test/web/rich_media/aws_signed_url_test.exs +++ b/test/web/rich_media/aws_signed_url_test.exs @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Pleroma.Web.RichMedia.TTL.AwsSignedUrlTest do diff --git a/test/web/rich_media/helpers_test.exs b/test/web/rich_media/helpers_test.exs index 48884319d..8264a9c41 100644 --- a/test/web/rich_media/helpers_test.exs +++ b/test/web/rich_media/helpers_test.exs @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Pleroma.Web.RichMedia.HelpersTest do @@ -19,15 +19,15 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      :ok    end -  clear_config([:rich_media, :enabled]) +  setup do: clear_config([:rich_media, :enabled])    test "refuses to crawl incomplete URLs" do      user = insert(:user)      {:ok, activity} =        CommonAPI.post(user, %{ -        "status" => "[test](example.com/ogp)", -        "content_type" => "text/markdown" +        status: "[test](example.com/ogp)", +        content_type: "text/markdown"        })      Config.put([:rich_media, :enabled], true) @@ -40,8 +40,8 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      {:ok, activity} =        CommonAPI.post(user, %{ -        "status" => "[test](example.com[]/ogp)", -        "content_type" => "text/markdown" +        status: "[test](example.com[]/ogp)", +        content_type: "text/markdown"        })      Config.put([:rich_media, :enabled], true) @@ -54,8 +54,8 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      {:ok, activity} =        CommonAPI.post(user, %{ -        "status" => "[test](https://example.com/ogp)", -        "content_type" => "text/markdown" +        status: "[test](https://example.com/ogp)", +        content_type: "text/markdown"        })      Config.put([:rich_media, :enabled], true) @@ -69,8 +69,8 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      {:ok, activity} =        CommonAPI.post(user, %{ -        "status" => "http://example.com/ogp", -        "sensitive" => true +        status: "http://example.com/ogp", +        sensitive: true        })      %Object{} = object = Object.normalize(activity) @@ -87,7 +87,7 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      {:ok, activity} =        CommonAPI.post(user, %{ -        "status" => "http://example.com/ogp #nsfw" +        status: "http://example.com/ogp #nsfw"        })      %Object{} = object = Object.normalize(activity) @@ -103,12 +103,12 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do      user = insert(:user)      {:ok, activity} = -      CommonAPI.post(user, %{"status" => "http://127.0.0.1:4000/notice/9kCP7VNyPJXFOXDrgO"}) +      CommonAPI.post(user, %{status: "http://127.0.0.1:4000/notice/9kCP7VNyPJXFOXDrgO"}) -    {:ok, activity2} = CommonAPI.post(user, %{"status" => "https://10.111.10.1/notice/9kCP7V"}) -    {:ok, activity3} = CommonAPI.post(user, %{"status" => "https://172.16.32.40/notice/9kCP7V"}) -    {:ok, activity4} = CommonAPI.post(user, %{"status" => "https://192.168.10.40/notice/9kCP7V"}) -    {:ok, activity5} = CommonAPI.post(user, %{"status" => "https://pleroma.local/notice/9kCP7V"}) +    {:ok, activity2} = CommonAPI.post(user, %{status: "https://10.111.10.1/notice/9kCP7V"}) +    {:ok, activity3} = CommonAPI.post(user, %{status: "https://172.16.32.40/notice/9kCP7V"}) +    {:ok, activity4} = CommonAPI.post(user, %{status: "https://192.168.10.40/notice/9kCP7V"}) +    {:ok, activity5} = CommonAPI.post(user, %{status: "https://pleroma.local/notice/9kCP7V"})      Config.put([:rich_media, :enabled], true) diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index b75bdf96f..e54a13bc8 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Pleroma.Web.RichMedia.ParserTest do diff --git a/test/web/rich_media/parsers/twitter_card_test.exs b/test/web/rich_media/parsers/twitter_card_test.exs index f8e1c9b40..87c767c15 100644 --- a/test/web/rich_media/parsers/twitter_card_test.exs +++ b/test/web/rich_media/parsers/twitter_card_test.exs @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do @@ -7,11 +7,14 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do    alias Pleroma.Web.RichMedia.Parsers.TwitterCard    test "returns error when html not contains twitter card" do -    assert TwitterCard.parse("", %{}) == {:error, "No twitter card metadata found"} +    assert TwitterCard.parse([{"html", [], [{"head", [], []}, {"body", [], []}]}], %{}) == +             {:error, "No twitter card metadata found"}    end    test "parses twitter card with only name attributes" do -    html = File.read!("test/fixtures/nypd-facial-recognition-children-teenagers3.html") +    html = +      File.read!("test/fixtures/nypd-facial-recognition-children-teenagers3.html") +      |> Floki.parse_document!()      assert TwitterCard.parse(html, %{}) ==               {:ok, @@ -26,7 +29,9 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do    end    test "parses twitter card with only property attributes" do -    html = File.read!("test/fixtures/nypd-facial-recognition-children-teenagers2.html") +    html = +      File.read!("test/fixtures/nypd-facial-recognition-children-teenagers2.html") +      |> Floki.parse_document!()      assert TwitterCard.parse(html, %{}) ==               {:ok, @@ -45,7 +50,9 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do    end    test "parses twitter card with name & property attributes" do -    html = File.read!("test/fixtures/nypd-facial-recognition-children-teenagers.html") +    html = +      File.read!("test/fixtures/nypd-facial-recognition-children-teenagers.html") +      |> Floki.parse_document!()      assert TwitterCard.parse(html, %{}) ==               {:ok, @@ -66,4 +73,41 @@ defmodule Pleroma.Web.RichMedia.Parsers.TwitterCardTest do                    "https://www.nytimes.com/2019/08/01/nyregion/nypd-facial-recognition-children-teenagers.html"                }}    end + +  test "respect only first title tag on the page" do +    image_path = +      "https://assets.atlasobscura.com/media/W1siZiIsInVwbG9hZHMvYXNzZXRzLzkwYzgyMzI4LThlMDUtNGRiNS05MDg3LTUzMGUxZTM5N2RmMmVkOTM5ZDM4MGM4OTIx" <> +        "YTQ5MF9EQVIgZXhodW1hdGlvbiBvZiBNYXJnYXJldCBDb3JiaW4gZ3JhdmUgMTkyNi5qcGciXSxbInAiLCJjb252ZXJ0IiwiIl0sWyJwIiwiY29udmVydCIsIi1xdWFsaXR5IDgxIC1hdXRvLW9" <> +        "yaWVudCJdLFsicCIsInRodW1iIiwiNjAweD4iXV0/DAR%20exhumation%20of%20Margaret%20Corbin%20grave%201926.jpg" + +    html = +      File.read!("test/fixtures/margaret-corbin-grave-west-point.html") |> Floki.parse_document!() + +    assert TwitterCard.parse(html, %{}) == +             {:ok, +              %{ +                site: "@atlasobscura", +                title: +                  "The Missing Grave of Margaret Corbin, Revolutionary War Veteran - Atlas Obscura", +                card: "summary_large_image", +                image: image_path +              }} +  end + +  test "takes first founded title in html head if there is html markup error" do +    html = +      File.read!("test/fixtures/nypd-facial-recognition-children-teenagers4.html") +      |> Floki.parse_document!() + +    assert TwitterCard.parse(html, %{}) == +             {:ok, +              %{ +                site: nil, +                title: +                  "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database. - The New York Times", +                "app:id:googleplay": "com.nytimes.android", +                "app:name:googleplay": "NYTimes", +                "app:url:googleplay": "nytimes://reader/id/100000006583622" +              }} +  end  end  | 
