aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/web/rich_media/parser/card_test.exs42
1 files changed, 42 insertions, 0 deletions
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