diff options
-rw-r--r-- | lib/pleroma/web/rich_media/parser/embed.ex | 2 | ||||
-rw-r--r-- | lib/pleroma/web/rich_media/parsers/ogp.ex | 4 | ||||
-rw-r--r-- | test/pleroma/web/rich_media/parser/card_test.exs | 42 |
3 files changed, 44 insertions, 4 deletions
diff --git a/lib/pleroma/web/rich_media/parser/embed.ex b/lib/pleroma/web/rich_media/parser/embed.ex index 509e557e6..f06756b1e 100644 --- a/lib/pleroma/web/rich_media/parser/embed.ex +++ b/lib/pleroma/web/rich_media/parser/embed.ex @@ -6,5 +6,5 @@ defmodule Pleroma.Web.RichMedia.Parser.Embed do @moduledoc """ Represents embedded content, including scraped markup and OEmbed. """ - defstruct url: nil, meta: nil, oembed: nil + defstruct url: nil, title: nil, meta: nil, oembed: nil end diff --git a/lib/pleroma/web/rich_media/parsers/ogp.ex b/lib/pleroma/web/rich_media/parsers/ogp.ex index d0edf1c88..b33a48fb5 100644 --- a/lib/pleroma/web/rich_media/parsers/ogp.ex +++ b/lib/pleroma/web/rich_media/parsers/ogp.ex @@ -4,7 +4,5 @@ defmodule Pleroma.Web.RichMedia.Parsers.OGP do @deprecated "OGP parser is deprecated. Use TwitterCard instead." - def parse(_html, _data) do - %{} - end + def parse(_html, data), do: data end diff --git a/test/pleroma/web/rich_media/parser/card_test.exs b/test/pleroma/web/rich_media/parser/card_test.exs new file mode 100644 index 000000000..489d2d848 --- /dev/null +++ b/test/pleroma/web/rich_media/parser/card_test.exs @@ -0,0 +1,42 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.RichMedia.Parser.CardTest do + use ExUnit.Case, async: true + alias Pleroma.Web.RichMedia.Parser.Card + alias Pleroma.Web.RichMedia.Parser.Embed + alias Pleroma.Web.RichMedia.Parsers.TwitterCard + + describe "parse/1" do + test "converts an %Embed{} into a %Card{}" do + embed = + File.read!("test/fixtures/nypd-facial-recognition-children-teenagers.html") + |> Floki.parse_document!() + |> TwitterCard.parse(%Embed{}) + + expected = %Card{ + description: + "With little oversight, the N.Y.P.D. has been using powerful surveillance technology on photos of children and teenagers.", + image: + "https://static01.nyt.com/images/2019/08/01/nyregion/01nypd-juveniles-promo/01nypd-juveniles-promo-videoSixteenByNineJumbo1600.jpg", + title: "She Was Arrested at 14. Then Her Photo Went to a Facial Recognition Database.", + type: "link" + } + + assert Card.parse(embed) == {:ok, expected} + end + end + + describe "validate/1" do + test "returns {:ok, card} with a valid %Card{}" do + card = %Card{ + title: "Moms can't believe this one trick", + url: "http://spam.com", + type: "link" + } + + assert {:ok, ^card} = Card.validate(card) + end + end +end |