diff options
Diffstat (limited to 'test/web/mastodon_api')
3 files changed, 84 insertions, 1 deletions
diff --git a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs index 76e6d603a..f67d294ba 100644 --- a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs +++ b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs @@ -400,4 +400,71 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do                 |> json_response_and_validate_schema(403)      end    end + +  describe "Mark account as bot" do +    setup do: oauth_access(["write:accounts"]) +    setup :request_content_type + +    test "changing actor_type to Service makes account a bot", %{conn: conn} do +      account = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Service"}) +        |> json_response_and_validate_schema(200) + +      assert account["bot"] +      assert account["source"]["pleroma"]["actor_type"] == "Service" +    end + +    test "changing actor_type to Person makes account a human", %{conn: conn} do +      account = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Person"}) +        |> json_response_and_validate_schema(200) + +      refute account["bot"] +      assert account["source"]["pleroma"]["actor_type"] == "Person" +    end + +    test "changing actor_type to Application causes error", %{conn: conn} do +      response = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{actor_type: "Application"}) +        |> json_response_and_validate_schema(403) + +      assert %{"error" => "Invalid request"} == response +    end + +    test "changing bot field to true changes actor_type to Service", %{conn: conn} do +      account = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{bot: "true"}) +        |> json_response_and_validate_schema(200) + +      assert account["bot"] +      assert account["source"]["pleroma"]["actor_type"] == "Service" +    end + +    test "changing bot field to false changes actor_type to Person", %{conn: conn} do +      account = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{bot: "false"}) +        |> json_response_and_validate_schema(200) + +      refute account["bot"] +      assert account["source"]["pleroma"]["actor_type"] == "Person" +    end + +    test "actor_type field has a higher priority than bot", %{conn: conn} do +      account = +        conn +        |> patch("/api/v1/accounts/update_credentials", %{ +          actor_type: "Person", +          bot: "true" +        }) +        |> json_response_and_validate_schema(200) + +      refute account["bot"] +      assert account["source"]["pleroma"]["actor_type"] == "Person" +    end +  end  end diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index c605957b1..826f37fbc 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -151,6 +151,22 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do               ]      end +    test "supports pagination of hashtags search results", %{conn: conn} do +      results = +        conn +        |> get( +          "/api/v2/search?#{ +            URI.encode_query(%{q: "#some #text #with #hashtags", limit: 2, offset: 1}) +          }" +        ) +        |> json_response_and_validate_schema(200) + +      assert results["hashtags"] == [ +               %{"name" => "text", "url" => "#{Web.base_url()}/tag/text"}, +               %{"name" => "with", "url" => "#{Web.base_url()}/tag/with"} +             ] +    end +      test "excludes a blocked users from search results", %{conn: conn} do        user = insert(:user)        user_smith = insert(:user, %{nickname: "Agent", name: "I love 2hu"}) diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index 648e6f2ce..a98e939e8 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -1561,7 +1561,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do      # Using the header for pagination works correctly      [next, _] = get_resp_header(result, "link") |> hd() |> String.split(", ") -    [_, max_id] = Regex.run(~r/max_id=(.*)>;/, next) +    [_, max_id] = Regex.run(~r/max_id=([^&]+)/, next)      assert max_id == third_favorite.id  | 
