fix for content-type header for tag feed
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Fri, 13 Mar 2020 14:58:14 +0000 (17:58 +0300)
committerAlexander Strizhakov <alex.strizhakov@gmail.com>
Mon, 16 Mar 2020 09:59:18 +0000 (12:59 +0300)
lib/pleroma/web/feed/tag_controller.ex
test/web/feed/tag_controller_test.exs
test/web/feed/user_controller_test.exs

index 904047b125625f8d5082911e07d21513ca01e479..8133f8480366bc2c14c6fa36538b0435e3d928d4 100644 (file)
@@ -20,7 +20,7 @@ defmodule Pleroma.Web.Feed.TagController do
       |> ActivityPub.fetch_public_activities()
 
     conn
-    |> put_resp_content_type("application/atom+xml")
+    |> put_resp_content_type("application/#{format}+xml")
     |> put_view(FeedView)
     |> render("tag.#{format}",
       activities: activities,
index c774bd420971c312fddcb7221c562cc030894246..da1caf049559204c2a2ea14bc93cc61ff2555821 100644 (file)
@@ -49,7 +49,7 @@ defmodule Pleroma.Web.Feed.TagControllerTest do
 
     response =
       conn
-      |> put_req_header("content-type", "application/atom+xml")
+      |> put_req_header("accept", "application/atom+xml")
       |> get(tag_feed_path(conn, :feed, "pleromaart.atom"))
       |> response(200)
 
@@ -65,12 +65,13 @@ defmodule Pleroma.Web.Feed.TagControllerTest do
     assert xpath(xml, ~x"//feed/entry/author/name/text()"ls) == [user.nickname, user.nickname]
     assert xpath(xml, ~x"//feed/entry/author/id/text()"ls) == [user.ap_id, user.ap_id]
 
-    resp =
+    conn =
       conn
-      |> put_req_header("content-type", "application/atom+xml")
+      |> put_req_header("accept", "application/atom+xml")
       |> get("/tags/pleromaart.atom", %{"max_id" => activity2.id})
-      |> response(200)
 
+    assert get_resp_header(conn, "content-type") == ["application/atom+xml; charset=utf-8"]
+    resp = response(conn, 200)
     xml = parse(resp)
 
     assert xpath(xml, ~x"//feed/title/text()") == '#pleromaart'
@@ -115,7 +116,7 @@ defmodule Pleroma.Web.Feed.TagControllerTest do
 
     response =
       conn
-      |> put_req_header("content-type", "application/rss+xml")
+      |> put_req_header("accept", "application/rss+xml")
       |> get(tag_feed_path(conn, :feed, "pleromaart.rss"))
       |> response(200)
 
@@ -155,7 +156,7 @@ defmodule Pleroma.Web.Feed.TagControllerTest do
 
     response =
       conn
-      |> put_req_header("content-type", "application/atom+xml")
+      |> put_req_header("accept", "application/rss+xml")
       |> get(tag_feed_path(conn, :feed, "pleromaart"))
       |> response(200)
 
@@ -165,12 +166,13 @@ defmodule Pleroma.Web.Feed.TagControllerTest do
     assert xpath(xml, ~x"//channel/description/text()"s) ==
              "These are public toots tagged with #pleromaart. You can interact with them if you have an account anywhere in the fediverse."
 
-    resp =
+    conn =
       conn
-      |> put_req_header("content-type", "application/atom+xml")
-      |> get("/tags/pleromaart", %{"max_id" => activity2.id})
-      |> response(200)
+      |> put_req_header("accept", "application/rss+xml")
+      |> get("/tags/pleromaart.rss", %{"max_id" => activity2.id})
 
+    assert get_resp_header(conn, "content-type") == ["application/rss+xml; charset=utf-8"]
+    resp = response(conn, 200)
     xml = parse(resp)
 
     assert xpath(xml, ~x"//channel/title/text()") == '#pleromaart'
index e3dfa88f19740a134f0ec2789699886841e1b179..5c91c33d88444394613661aeffbc4abe63a94531 100644 (file)
@@ -19,7 +19,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do
   describe "feed" do
     clear_config([:feed])
 
-    test "gets an atom feed", %{conn: conn} do
+    test "gets a feed", %{conn: conn} do
       Config.put(
         [:feed, :post_title],
         %{max_length: 10, omission: "..."}
@@ -139,7 +139,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do
 
       resp =
         conn
-        |> put_req_header("accept", "application/atom+xml")
+        |> put_req_header("accept", "application/rss+xml")
         |> get("/users/#{user.nickname}/feed.rss", %{"max_id" => note_activity2.id})
         |> response(200)