helpers: use AutoLinker to validate URIs as well as the other tests

This commit is contained in:
William Pitcock 2019-03-02 12:22:02 +00:00
parent d7a278a733
commit 9f3cb38012
2 changed files with 24 additions and 1 deletions

View File

@ -12,7 +12,10 @@ defmodule Pleroma.Web.RichMedia.Helpers do
defp validate_page_url(%URI{authority: nil}), do: :error defp validate_page_url(%URI{authority: nil}), do: :error
defp validate_page_url(%URI{scheme: nil}), do: :error defp validate_page_url(%URI{scheme: nil}), do: :error
defp validate_page_url(%URI{}), do: :ok defp validate_page_url(%URI{}), do: :ok
defp validate_page_url(page_url), do: URI.parse(page_url) |> validate_page_url
defp validate_page_url(page_url) do
AutoLinker.Parser.is_url?(page_url, true) && URI.parse(page_url) |> validate_page_url
end
def fetch_data_for_activity(%Activity{} = activity) do def fetch_data_for_activity(%Activity{} = activity) do
with true <- Pleroma.Config.get([:rich_media, :enabled]), with true <- Pleroma.Config.get([:rich_media, :enabled]),

View File

@ -20,7 +20,27 @@ defmodule Pleroma.Web.RichMedia.HelpersTest do
"content_type" => "text/markdown" "content_type" => "text/markdown"
}) })
Pleroma.Config.put([:rich_media, :enabled], true)
assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity) assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
Pleroma.Config.put([:rich_media, :enabled], false)
end
test "refuses to crawl malformed URLs" do
user = insert(:user)
{:ok, activity} =
CommonAPI.post(user, %{
"status" => "[test](example.com[]/ogp)",
"content_type" => "text/markdown"
})
Pleroma.Config.put([:rich_media, :enabled], true)
assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
Pleroma.Config.put([:rich_media, :enabled], false)
end end
test "crawls valid, complete URLs" do test "crawls valid, complete URLs" do