logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

masto_fe_controller_test.exs (2268B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.MastodonAPI.MastoFEControllerTest do
  5. use Pleroma.Web.ConnCase
  6. alias Pleroma.User
  7. import Pleroma.Factory
  8. setup do: clear_config([:instance, :public])
  9. test "put settings", %{conn: conn} do
  10. user = insert(:user)
  11. conn =
  12. conn
  13. |> assign(:user, user)
  14. |> assign(:token, insert(:oauth_token, user: user, scopes: ["write:accounts"]))
  15. |> put("/api/web/settings", %{"data" => %{"programming" => "socks"}})
  16. assert %{} = json_response(conn, 200)
  17. user = User.get_cached_by_ap_id(user.ap_id)
  18. assert user.mastofe_settings == %{"programming" => "socks"}
  19. end
  20. describe "index/2 redirections" do
  21. setup %{conn: conn} do
  22. session_opts = [
  23. store: :cookie,
  24. key: "_test",
  25. signing_salt: "cooldude"
  26. ]
  27. conn =
  28. conn
  29. |> Plug.Session.call(Plug.Session.init(session_opts))
  30. |> fetch_session()
  31. test_path = "/web/statuses/test"
  32. %{conn: conn, path: test_path}
  33. end
  34. test "redirects not logged-in users to the login page", %{conn: conn, path: path} do
  35. conn = get(conn, path)
  36. assert conn.status == 302
  37. assert redirected_to(conn) == "/web/login"
  38. end
  39. test "redirects not logged-in users to the login page on private instances", %{
  40. conn: conn,
  41. path: path
  42. } do
  43. clear_config([:instance, :public], false)
  44. conn = get(conn, path)
  45. assert conn.status == 302
  46. assert redirected_to(conn) == "/web/login"
  47. end
  48. test "does not redirect logged in users to the login page", %{conn: conn, path: path} do
  49. {:ok, app} = Pleroma.Web.MastodonAPI.AuthController.local_mastofe_app()
  50. token = insert(:oauth_token, app: app, scopes: ["read"])
  51. conn =
  52. conn
  53. |> assign(:user, token.user)
  54. |> assign(:token, token)
  55. |> get(path)
  56. assert conn.status == 200
  57. end
  58. test "saves referer path to session", %{conn: conn, path: path} do
  59. conn = get(conn, path)
  60. return_to = Plug.Conn.get_session(conn, :return_to)
  61. assert return_to == path
  62. end
  63. end
  64. end