diff options
author | marcin mikołajczak <me@mkljczk.pl> | 2024-10-09 09:42:53 +0000 |
---|---|---|
committer | marcin mikołajczak <me@mkljczk.pl> | 2024-10-09 09:42:53 +0000 |
commit | ddedc575e7993a57aadb65853d3c57f19bf60e34 (patch) | |
tree | d1e55b7792ddd4ad34dbde92cd9e9be3795de5dc /test | |
parent | 07cfbe4ae8b97b0afd4060303d07e224499a37cb (diff) | |
parent | e74e0089bf2943f925cbead14154f8b2fa207963 (diff) | |
download | pleroma-ddedc575e7993a57aadb65853d3c57f19bf60e34.tar.gz pleroma-ddedc575e7993a57aadb65853d3c57f19bf60e34.zip |
Merge branch 'hashtag-feeds-restricted' into 'develop'
Repesct :restrict_unauthenticated for hashtag rss/atom feeds
See merge request pleroma/pleroma!4266
Diffstat (limited to 'test')
-rw-r--r-- | test/pleroma/web/feed/tag_controller_test.exs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/test/pleroma/web/feed/tag_controller_test.exs b/test/pleroma/web/feed/tag_controller_test.exs index 7d196b228..662235f31 100644 --- a/test/pleroma/web/feed/tag_controller_test.exs +++ b/test/pleroma/web/feed/tag_controller_test.exs @@ -191,4 +191,60 @@ defmodule Pleroma.Web.Feed.TagControllerTest do |> response(404) end end + + describe "restricted for unauthenticated" do + test "returns 404 when local timeline is disabled", %{conn: conn} do + clear_config([:restrict_unauthenticated, :timelines], %{local: true, federated: false}) + + conn + |> put_req_header("accept", "application/rss+xml") + |> get(tag_feed_path(conn, :feed, "pleromaart.rss")) + |> response(404) + end + + test "returns local posts only when federated timeline is disabled", %{conn: conn} do + clear_config([:restrict_unauthenticated, :timelines], %{local: false, federated: true}) + + local_user = insert(:user) + remote_user = insert(:user, local: false) + + local_note = + insert(:note, + user: local_user, + data: %{ + "content" => "local post #PleromaArt", + "summary" => "", + "tag" => ["pleromaart"] + } + ) + + remote_note = + insert(:note, + user: remote_user, + data: %{ + "content" => "remote post #PleromaArt", + "summary" => "", + "tag" => ["pleromaart"] + }, + local: false + ) + + insert(:note_activity, user: local_user, note: local_note) + insert(:note_activity, user: remote_user, note: remote_note, local: false) + + response = + conn + |> put_req_header("accept", "application/rss+xml") + |> get(tag_feed_path(conn, :feed, "pleromaart.rss")) + |> response(200) + + xml = parse(response) + + assert xpath(xml, ~x"//channel/title/text()") == ~c"#pleromaart" + + assert xpath(xml, ~x"//channel/item/title/text()"l) == [ + ~c"local post #PleromaArt" + ] + end + end end |