Purge Rejected Follow requests in daily task (#334)
[akkoma] / test / pleroma / web / twitter_api / remote_follow_controller_test.exs
index fa3b290063ab2a5fceaefdd89ff74a28453f9404..e7c496eb04adccf3f25c217231376bf6aa1c09b5 100644 (file)
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do
-  use Pleroma.Web.ConnCase
+  use Pleroma.Web.ConnCase, async: false
 
   alias Pleroma.MFA
   alias Pleroma.MFA.TOTP
@@ -410,4 +410,49 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do
       assert response =~ "Error following account"
     end
   end
+
+  describe "avatar url" do
+    test "without media proxy" do
+      clear_config([:media_proxy, :enabled], false)
+
+      user =
+        insert(:user, %{
+          local: false,
+          avatar: %{"url" => [%{"href" => "https://remote.org/avatar.png"}]}
+        })
+
+      avatar_url = Pleroma.Web.TwitterAPI.RemoteFollowView.avatar_url(user)
+
+      assert avatar_url == "https://remote.org/avatar.png"
+    end
+
+    test "with media proxy" do
+      clear_config([:media_proxy, :enabled], true)
+
+      user =
+        insert(:user, %{
+          local: false,
+          avatar: %{"url" => [%{"href" => "https://remote.org/avatar.png"}]}
+        })
+
+      avatar_url = Pleroma.Web.TwitterAPI.RemoteFollowView.avatar_url(user)
+      url = Pleroma.Web.Endpoint.url()
+
+      assert String.starts_with?(avatar_url, url)
+    end
+
+    test "local avatar is not proxied" do
+      clear_config([:media_proxy, :enabled], true)
+
+      user =
+        insert(:user, %{
+          local: true,
+          avatar: %{"url" => [%{"href" => "#{Pleroma.Web.Endpoint.url()}/localuser/avatar.png"}]}
+        })
+
+      avatar_url = Pleroma.Web.TwitterAPI.RemoteFollowView.avatar_url(user)
+
+      assert avatar_url == "#{Pleroma.Web.Endpoint.url()}/localuser/avatar.png"
+    end
+  end
 end