GTS: cherry-picks and collection usage (#186)
[akkoma] / test / pleroma / web / plugs / http_signature_plug_test.exs
index e6cbde8031d23a1546cdd0e8d3ae657d82b00eaa..8ce9565103344378ad36001e36ab4f38c0ecd040 100644 (file)
@@ -1,9 +1,10 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Plugs.HTTPSignaturePlugTest do
   use Pleroma.Web.ConnCase
+  import Pleroma.Factory
   alias Pleroma.Web.Plugs.HTTPSignaturePlug
 
   import Plug.Conn
@@ -32,11 +33,7 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlugTest do
 
   describe "requires a signature when `authorized_fetch_mode` is enabled" do
     setup do
-      Pleroma.Config.put([:activitypub, :authorized_fetch_mode], true)
-
-      on_exit(fn ->
-        Pleroma.Config.put([:activitypub, :authorized_fetch_mode], false)
-      end)
+      clear_config([:activitypub, :authorized_fetch_mode], true)
 
       params = %{"actor" => "http://mastodon.example.org/users/admin"}
       conn = build_conn(:get, "/doesntmattter", params) |> put_format("activity+json")
@@ -85,5 +82,16 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlugTest do
       assert conn.state == :sent
       assert conn.resp_body == "Request not signed"
     end
+
+    test "aliases redirected /object endpoints", _ do
+      obj = insert(:note)
+      act = insert(:note_activity, note: obj)
+      params = %{"actor" => "someparam"}
+      path = URI.parse(obj.data["id"]).path
+      conn = build_conn(:get, path, params)
+
+      assert ["/notice/#{act.id}", "/notice/#{act.id}?actor=someparam"] ==
+               HTTPSignaturePlug.route_aliases(conn)
+    end
   end
 end