Page MenuHomePhorge

No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None
diff --git a/lib/pleroma/web/web_finger/web_finger_controller.ex b/lib/pleroma/web/web_finger/web_finger_controller.ex
index 8a291e28e..e142a65b1 100644
--- a/lib/pleroma/web/web_finger/web_finger_controller.ex
+++ b/lib/pleroma/web/web_finger/web_finger_controller.ex
@@ -32,7 +32,9 @@ defmodule Pleroma.Web.WebFinger.WebFingerController do
def webfinger(%{assigns: %{format: format}} = conn, %{"resource" => resource})
when format in ["jrd", "json", "jrd+json"] do
with {:ok, response} <- WebFinger.webfinger(resource, "JSON") do
- json(conn, response)
+ conn
+ |> put_resp_content_type("application/jrd+json")
+ |> json(response)
else
_e ->
conn
diff --git a/test/pleroma/web/web_finger/web_finger_controller_test.exs b/test/pleroma/web/web_finger/web_finger_controller_test.exs
index ef52a4b85..6c80f76d0 100644
--- a/test/pleroma/web/web_finger/web_finger_controller_test.exs
+++ b/test/pleroma/web/web_finger/web_finger_controller_test.exs
@@ -15,6 +15,31 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
setup_all do: clear_config([:instance, :federating], true)
+ defp webfinger_json_response(conn, status) do
+ content_type = if status != 400 do
+ conn
+ |> Plug.Conn.get_resp_header("content-type")
+ |> List.first()
+ |> String.split(";")
+ |> List.first()
+ end
+
+ status = Plug.Conn.Status.code(status)
+
+ case status do
+ 200 ->
+ assert content_type == "application/jrd+json"
+ json_response(conn, status)
+
+ 404 ->
+ assert content_type == "application/json"
+ json_response(conn, status)
+
+ 400 ->
+ response(conn, status)
+ end
+ end
+
test "GET host-meta" do
response =
build_conn()
@@ -47,7 +72,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
build_conn()
|> put_req_header("accept", "application/jrd+json")
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@hyrule.world")
- |> json_response(200)
+ |> webfinger_json_response(200)
assert response["subject"] == "acct:#{user.nickname}@hyrule.world"
@@ -87,7 +112,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
response =
build_conn()
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@hyrule.world")
- |> json_response(200)
+ |> webfinger_json_response(200)
assert response["subject"] == "acct:#{user.nickname}@hyrule.world"
@@ -113,7 +138,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
response =
build_conn()
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@hyrule.world")
- |> json_response(200)
+ |> webfinger_json_response(200)
assert response["subject"] == "acct:#{user.nickname}@hyrule.world"
@@ -160,7 +185,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
build_conn()
|> put_req_header("accept", "application/jrd+json")
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@example.com")
- |> json_response(200)
+ |> webfinger_json_response(200)
assert response["subject"] == "acct:#{user.nickname}@example.com"
assert response["aliases"] == ["https://sub.example.com/users/#{user.nickname}"]
@@ -172,7 +197,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
build_conn()
|> put_req_header("accept", "application/jrd+json")
|> get("/.well-known/webfinger?resource=acct:jimm@localhost")
- |> json_response(404)
+ |> webfinger_json_response(404)
assert result == "Couldn't find user"
end
@@ -202,7 +227,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
build_conn()
|> put_req_header("accept", "text/html")
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@hyrule.world")
- |> json_response(200)
+ |> webfinger_json_response(200)
assert response["subject"] == "acct:#{user.nickname}@hyrule.world"
@@ -218,6 +243,6 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
|> put_req_header("accept", "application/xrd+xml,application/jrd+json")
|> get("/.well-known/webfinger")
- assert response(response, 400)
+ assert webfinger_json_response(response, 400)
end
end

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jul 19, 12:03 PM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1695253
Default Alt Text
(4 KB)

Event Timeline