X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fpleroma%2Fweb%2Ffeed%2Fuser_controller_test.exs;h=451ce45aa24cdb7fa804712957ff4547fcbac88c;hb=20e3cb2b25be4d9598bfc2cf3870f2f451974cb6;hp=50445862bb650083089abf424932b5030f04276a;hpb=80167e62dd7afaf761443d268d7c2306608ffea4;p=akkoma diff --git a/test/pleroma/web/feed/user_controller_test.exs b/test/pleroma/web/feed/user_controller_test.exs index 50445862b..451ce45aa 100644 --- a/test/pleroma/web/feed/user_controller_test.exs +++ b/test/pleroma/web/feed/user_controller_test.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors +# Copyright © 2017-2021 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Feed.UserControllerTest do @@ -8,7 +8,6 @@ defmodule Pleroma.Web.Feed.UserControllerTest do import Pleroma.Factory import SweetXml - alias Pleroma.Config alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.CommonAPI @@ -20,7 +19,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do setup do: clear_config([:feed]) setup do - Config.put( + clear_config( [:feed, :post_title], %{max_length: 15, omission: "..."} ) @@ -185,25 +184,39 @@ defmodule Pleroma.Web.Feed.UserControllerTest do note_activity = insert(:note_activity) user = User.get_cached_by_ap_id(note_activity.data["actor"]) + %{assigns: %{csp_nonce: nonce}} = resp_conn = get(conn, "/users/#{user.nickname}") + response = - conn - |> get("/users/#{user.nickname}") + resp_conn |> response(200) assert response == Pleroma.Web.Fallback.RedirectController.redirector_with_meta( - conn, + assign(conn, :csp_nonce, nonce), %{user: user} ).resp_body end - test "with html format, it returns error when user is not found", %{conn: conn} do + test "with html format, it falls back to frontend when user is remote", %{conn: conn} do + user = insert(:user, local: false) + + {:ok, _} = CommonAPI.post(user, %{status: "test"}) + + response = + conn + |> get("/users/#{user.nickname}") + |> response(200) + + assert response =~ "" + end + + test "with html format, it falls back to frontend when user is not found", %{conn: conn} do response = conn |> get("/users/jimm") - |> json_response(404) + |> response(200) - assert response == %{"error" => "Not found"} + assert response =~ "" end test "with non-html / non-json format, it redirects to user feed in atom format", %{ @@ -218,7 +231,9 @@ defmodule Pleroma.Web.Feed.UserControllerTest do |> get("/users/#{user.nickname}") assert conn.status == 302 - assert redirected_to(conn) == "#{Pleroma.Web.base_url()}/users/#{user.nickname}/feed.atom" + + assert redirected_to(conn) == + "#{Pleroma.Web.Endpoint.url()}/users/#{user.nickname}/feed.atom" end test "with non-html / non-json format, it returns error when user is not found", %{conn: conn} do @@ -236,7 +251,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do setup do: clear_config([:instance, :public]) test "returns 404 for user feed", %{conn: conn} do - Config.put([:instance, :public], false) + clear_config([:instance, :public], false) user = insert(:user) {:ok, _} = CommonAPI.post(user, %{status: "test"})