diff options
Diffstat (limited to 'test/web')
5 files changed, 115 insertions, 13 deletions
diff --git a/test/web/admin_api/controllers/report_controller_test.exs b/test/web/admin_api/controllers/report_controller_test.exs index f30dc8956..57946e6bb 100644 --- a/test/web/admin_api/controllers/report_controller_test.exs +++ b/test/web/admin_api/controllers/report_controller_test.exs @@ -204,7 +204,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do      test "returns empty response when no reports created", %{conn: conn} do        response =          conn -        |> get("/api/pleroma/admin/reports") +        |> get(report_path(conn, :index))          |> json_response_and_validate_schema(:ok)        assert Enum.empty?(response["reports"]) @@ -224,7 +224,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do        response =          conn -        |> get("/api/pleroma/admin/reports") +        |> get(report_path(conn, :index))          |> json_response_and_validate_schema(:ok)        [report] = response["reports"] @@ -256,7 +256,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do        response =          conn -        |> get("/api/pleroma/admin/reports?state=open") +        |> get(report_path(conn, :index, %{state: "open"}))          |> json_response_and_validate_schema(:ok)        assert [open_report] = response["reports"] @@ -268,7 +268,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do        response =          conn -        |> get("/api/pleroma/admin/reports?state=closed") +        |> get(report_path(conn, :index, %{state: "closed"}))          |> json_response_and_validate_schema(:ok)        assert [closed_report] = response["reports"] @@ -280,9 +280,7 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do        assert %{"total" => 0, "reports" => []} ==                 conn -               |> get("/api/pleroma/admin/reports?state=resolved", %{ -                 "" => "" -               }) +               |> get(report_path(conn, :index, %{state: "resolved"}))                 |> json_response_and_validate_schema(:ok)      end diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index e6b283aab..708f8b5b3 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -903,10 +903,75 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        [valid_params: valid_params]      end -    setup do: clear_config([:instance, :account_activation_required]) +    test "Account registration via Application, no confirmation required", %{conn: conn} do +      clear_config([:instance, :account_activation_required], false) + +      conn = +        conn +        |> put_req_header("content-type", "application/json") +        |> post("/api/v1/apps", %{ +          client_name: "client_name", +          redirect_uris: "urn:ietf:wg:oauth:2.0:oob", +          scopes: "read, write, follow" +        }) + +      assert %{ +               "client_id" => client_id, +               "client_secret" => client_secret, +               "id" => _, +               "name" => "client_name", +               "redirect_uri" => "urn:ietf:wg:oauth:2.0:oob", +               "vapid_key" => _, +               "website" => nil +             } = json_response_and_validate_schema(conn, 200) + +      conn = +        post(conn, "/oauth/token", %{ +          grant_type: "client_credentials", +          client_id: client_id, +          client_secret: client_secret +        }) + +      assert %{"access_token" => token, "refresh_token" => refresh, "scope" => scope} = +               json_response(conn, 200) + +      assert token +      token_from_db = Repo.get_by(Token, token: token) +      assert token_from_db +      assert refresh +      assert scope == "read write follow" + +      conn = +        build_conn() +        |> put_req_header("content-type", "multipart/form-data") +        |> put_req_header("authorization", "Bearer " <> token) +        |> post("/api/v1/accounts", %{ +          username: "lain", +          email: "lain@example.org", +          password: "PlzDontHackLain", +          bio: "Test Bio", +          agreement: true +        }) + +      %{ +        "access_token" => token, +        "created_at" => _created_at, +        "scope" => ^scope, +        "token_type" => "Bearer" +      } = json_response_and_validate_schema(conn, 200) + +      token_from_db = Repo.get_by(Token, token: token) +      assert token_from_db +      token_from_db = Repo.preload(token_from_db, :user) +      assert token_from_db.user +      refute token_from_db.user.confirmation_pending +    end +      setup do: clear_config([:instance, :account_approval_required])      test "Account registration via Application", %{conn: conn} do +      clear_config([:instance, :account_activation_required], true) +        conn =          conn          |> put_req_header("content-type", "application/json") @@ -1032,7 +1097,6 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        token_from_db = Repo.preload(token_from_db, :user)        assert token_from_db.user -      assert token_from_db.user.confirmation_pending        assert token_from_db.user.approval_pending        assert token_from_db.user.registration_reason == "I'm a cool dude, bro" @@ -1258,8 +1322,6 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do          assert token_from_db          token_from_db = Repo.preload(token_from_db, :user)          assert token_from_db.user - -        assert token_from_db.user.confirmation_pending        end        conn = diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index d34f300da..5955d8334 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -1432,6 +1432,20 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do        [%{"id" => id}] = response        assert id == other_user.id      end + +    test "returns empty array when :show_reactions is disabled", %{conn: conn, activity: activity} do +      clear_config([:instance, :show_reactions], false) + +      other_user = insert(:user) +      {:ok, _} = CommonAPI.favorite(other_user, activity.id) + +      response = +        conn +        |> get("/api/v1/statuses/#{activity.id}/favourited_by") +        |> json_response_and_validate_schema(:ok) + +      assert Enum.empty?(response) +    end    end    describe "GET /api/v1/statuses/:id/reblogged_by" do diff --git a/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs b/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs index e1bb5ebfe..3deab30d1 100644 --- a/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_reaction_controller_test.exs @@ -106,6 +106,23 @@ defmodule Pleroma.Web.PleromaAPI.EmojiReactionControllerTest do               result    end +  test "GET /api/v1/pleroma/statuses/:id/reactions with :show_reactions disabled", %{conn: conn} do +    clear_config([:instance, :show_reactions], false) + +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, activity} = CommonAPI.post(user, %{status: "#cofe"}) +    {:ok, _} = CommonAPI.react_with_emoji(activity.id, other_user, "🎅") + +    result = +      conn +      |> get("/api/v1/pleroma/statuses/#{activity.id}/reactions") +      |> json_response_and_validate_schema(200) + +    assert result == [] +  end +    test "GET /api/v1/pleroma/statuses/:id/reactions/:emoji", %{conn: conn} do      user = insert(:user)      other_user = insert(:user) diff --git a/test/web/pleroma_api/views/chat/message_reference_view_test.exs b/test/web/pleroma_api/views/chat/message_reference_view_test.exs index e5b165255..40dbae3cd 100644 --- a/test/web/pleroma_api/views/chat/message_reference_view_test.exs +++ b/test/web/pleroma_api/views/chat/message_reference_view_test.exs @@ -43,7 +43,17 @@ defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceViewTest do      assert chat_message[:unread] == false      assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) -    {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk", media_id: upload.id) +    clear_config([:rich_media, :enabled], true) + +    Tesla.Mock.mock(fn +      %{url: "https://example.com/ogp"} -> +        %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")} +    end) + +    {:ok, activity} = +      CommonAPI.post_chat_message(recipient, user, "gkgkgk https://example.com/ogp", +        media_id: upload.id +      )      object = Object.normalize(activity) @@ -52,10 +62,11 @@ defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceViewTest do      chat_message_two = MessageReferenceView.render("show.json", chat_message_reference: cm_ref)      assert chat_message_two[:id] == cm_ref.id -    assert chat_message_two[:content] == "gkgkgk" +    assert chat_message_two[:content] == object.data["content"]      assert chat_message_two[:account_id] == recipient.id      assert chat_message_two[:chat_id] == chat_message[:chat_id]      assert chat_message_two[:attachment]      assert chat_message_two[:unread] == true +    assert chat_message_two[:card]    end  end  | 
