tests: add tests for rich media helper functions
authorWilliam Pitcock <nenolod@dereferenced.org>
Sun, 24 Feb 2019 19:39:27 +0000 (19:39 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Mon, 4 Mar 2019 18:31:49 +0000 (18:31 +0000)
test/web/rich_media/helpers_test.exs [new file with mode: 0644]

diff --git a/test/web/rich_media/helpers_test.exs b/test/web/rich_media/helpers_test.exs
new file mode 100644 (file)
index 0000000..9285f07
--- /dev/null
@@ -0,0 +1,42 @@
+defmodule Pleroma.Web.RichMedia.HelpersTest do
+  use Pleroma.DataCase
+
+  alias Pleroma.Web.CommonAPI
+
+  import Pleroma.Factory
+  import Tesla.Mock
+
+  setup do
+    mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
+    :ok
+  end
+
+  test "refuses to crawl incomplete URLs" do
+    user = insert(:user)
+
+    {:ok, activity} =
+      CommonAPI.post(user, %{
+        "status" => "[test](example.com/ogp)",
+        "content_type" => "text/markdown"
+      })
+
+    assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
+  end
+
+  test "crawls valid, complete URLs" do
+    user = insert(:user)
+
+    {:ok, activity} =
+      CommonAPI.post(user, %{
+        "status" => "[test](http://example.com/ogp)",
+        "content_type" => "text/markdown"
+      })
+
+    Pleroma.Config.put([:rich_media, :enabled], true)
+
+    assert %{page_url: "http://example.com/ogp", rich_media: _} =
+             Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
+
+    Pleroma.Config.put([:rich_media, :enabled], false)
+  end
+end