aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-05-22 17:11:59 +0200
committerlain <lain@soykaf.club>2020-05-22 17:11:59 +0200
commit91c8467582d1b4b5ad12256292e86dc1c54f0234 (patch)
tree6a6ecb26a44a4682cd22ca9f8b18a5f52d6f7c27
parent355aa3bdc78465a42a9e0b20baaefd4fba04f596 (diff)
downloadpleroma-91c8467582d1b4b5ad12256292e86dc1c54f0234.tar.gz
OStatusController: Add Mastodon activity compat route.
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex4
-rw-r--r--test/web/ostatus/ostatus_controller_test.exs15
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
index 04a4bdeb4..de1b0b3f0 100644
--- a/lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -59,8 +59,8 @@ defmodule Pleroma.Web.OStatus.OStatusController do
ActivityPubController.call(conn, :activity)
end
- def activity(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do
- with id <- o_status_url(conn, :activity, uuid),
+ def activity(%{assigns: %{format: format}} = conn, _params) do
+ with id <- Endpoint.url() <> conn.request_path,
{_, %Activity{} = activity} <- {:activity, Activity.normalize(id)},
{_, true} <- {:public?, Visibility.is_public?(activity)} do
case format do
diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs
index 0f973d5b6..ee498f4b5 100644
--- a/test/web/ostatus/ostatus_controller_test.exs
+++ b/test/web/ostatus/ostatus_controller_test.exs
@@ -26,10 +26,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
describe "Mastodon compatibility routes" do
setup %{conn: conn} do
conn = put_req_header(conn, "accept", "text/html")
- %{conn: conn}
- end
- test "redirects to /notice/:id for html format", %{conn: conn} do
{:ok, object} =
%{
"type" => "Note",
@@ -50,9 +47,21 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
}
|> ActivityPub.persist(local: true)
+ %{conn: conn, activity: activity}
+ end
+
+ test "redirects to /notice/:id for html format", %{conn: conn, activity: activity} do
conn = get(conn, "/users/raymoo/statuses/999999999")
assert redirected_to(conn) == "/notice/#{activity.id}"
end
+
+ test "redirects to /notice/:id for html format for activity", %{
+ conn: conn,
+ activity: activity
+ } do
+ conn = get(conn, "/users/raymoo/statuses/999999999/activity")
+ assert redirected_to(conn) == "/notice/#{activity.id}"
+ end
end
# Note: see ActivityPubControllerTest for JSON format tests