1 defmodule Pleroma.Web.RichMedia.HelpersTest do
5 alias Pleroma.Web.CommonAPI
11 mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
15 test "refuses to crawl incomplete URLs" do
19 CommonAPI.post(user, %{
20 "status" => "[test](example.com/ogp)",
21 "content_type" => "text/markdown"
24 Pleroma.Config.put([:rich_media, :enabled], true)
26 assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
28 Pleroma.Config.put([:rich_media, :enabled], false)
31 test "refuses to crawl malformed URLs" do
35 CommonAPI.post(user, %{
36 "status" => "[test](example.com[]/ogp)",
37 "content_type" => "text/markdown"
40 Pleroma.Config.put([:rich_media, :enabled], true)
42 assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
44 Pleroma.Config.put([:rich_media, :enabled], false)
47 test "crawls valid, complete URLs" do
51 CommonAPI.post(user, %{
52 "status" => "[test](http://example.com/ogp)",
53 "content_type" => "text/markdown"
56 Pleroma.Config.put([:rich_media, :enabled], true)
58 assert %{page_url: "http://example.com/ogp", rich_media: _} =
59 Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
61 Pleroma.Config.put([:rich_media, :enabled], false)
64 test "refuses to crawl URLs from posts marked sensitive" do
68 CommonAPI.post(user, %{
69 "status" => "http://example.com/ogp",
73 %Object{} = object = Object.normalize(activity)
75 assert object.data["sensitive"]
77 Pleroma.Config.put([:rich_media, :enabled], true)
79 assert %{} = Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
81 Pleroma.Config.put([:rich_media, :enabled], false)