diff options
Diffstat (limited to 'test/web/mastodon_api')
| -rw-r--r-- | test/web/mastodon_api/controllers/account_controller_test.exs | 52 | 
1 files changed, 51 insertions, 1 deletions
| diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index 57d0f4416..7f7d8cea3 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -601,6 +601,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        [valid_params: valid_params]      end +    clear_config([:instance, :account_activation_required]) +      test "Account registration via Application", %{conn: conn} do        conn =          post(conn, "/api/v1/apps", %{ @@ -685,7 +687,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        assert json_response(res, 200)        [{127, 0, 0, 1}, {127, 0, 0, 2}, {127, 0, 0, 3}, {127, 0, 0, 4}] -      |> Stream.zip(valid_params) +      |> Stream.zip(Map.delete(valid_params, :email))        |> Enum.each(fn {ip, {attr, _}} ->          res =            conn @@ -697,6 +699,54 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        end)      end +    clear_config([:instance, :account_activation_required]) + +    test "returns bad_request if missing email params when :account_activation_required is enabled", +         %{conn: conn, valid_params: valid_params} do +      Pleroma.Config.put([:instance, :account_activation_required], true) + +      app_token = insert(:oauth_token, user: nil) +      conn = put_req_header(conn, "authorization", "Bearer " <> app_token.token) + +      res = +        conn +        |> Map.put(:remote_ip, {127, 0, 0, 5}) +        |> post("/api/v1/accounts", Map.delete(valid_params, :email)) + +      assert json_response(res, 400) == %{"error" => "Missing parameters"} + +      res = +        conn +        |> Map.put(:remote_ip, {127, 0, 0, 6}) +        |> post("/api/v1/accounts", Map.put(valid_params, :email, "")) + +      assert json_response(res, 400) == %{"error" => "{\"email\":[\"can't be blank\"]}"} +    end + +    test "allow registration without an email", %{conn: conn, valid_params: valid_params} do +      app_token = insert(:oauth_token, user: nil) +      conn = put_req_header(conn, "authorization", "Bearer " <> app_token.token) + +      res = +        conn +        |> Map.put(:remote_ip, {127, 0, 0, 7}) +        |> post("/api/v1/accounts", Map.delete(valid_params, :email)) + +      assert json_response(res, 200) +    end + +    test "allow registration with an empty email", %{conn: conn, valid_params: valid_params} do +      app_token = insert(:oauth_token, user: nil) +      conn = put_req_header(conn, "authorization", "Bearer " <> app_token.token) + +      res = +        conn +        |> Map.put(:remote_ip, {127, 0, 0, 8}) +        |> post("/api/v1/accounts", Map.put(valid_params, :email, "")) + +      assert json_response(res, 200) +    end +      test "returns forbidden if token is invalid", %{conn: conn, valid_params: valid_params} do        conn = put_req_header(conn, "authorization", "Bearer " <> "invalid-token") | 
