diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/user_test.exs | 23 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/account_controller_test.exs | 29 | 
2 files changed, 45 insertions, 7 deletions
| diff --git a/test/user_test.exs b/test/user_test.exs index 2c1f2b7c5..b47405895 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -513,6 +513,29 @@ defmodule Pleroma.UserTest do        refute changeset.valid?      end +    test "it blocks blacklisted email domains" do +      clear_config([User, :email_blacklist], ["trolling.world"]) + +      # Block with match +      params = Map.put(@full_user_data, :email, "troll@trolling.world") +      changeset = User.register_changeset(%User{}, params) +      refute changeset.valid? + +      # Block with subdomain match +      params = Map.put(@full_user_data, :email, "troll@gnomes.trolling.world") +      changeset = User.register_changeset(%User{}, params) +      refute changeset.valid? + +      # Pass with different domains that are similar +      params = Map.put(@full_user_data, :email, "troll@gnomestrolling.world") +      changeset = User.register_changeset(%User{}, params) +      assert changeset.valid? + +      params = Map.put(@full_user_data, :email, "troll@trolling.world.us") +      changeset = User.register_changeset(%User{}, params) +      assert changeset.valid? +    end +      test "it sets the password_hash and ap_id" do        changeset = User.register_changeset(%User{}, @full_user_data) diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index d390c3ce1..17a1e7d66 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -940,17 +940,32 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        assert refresh        assert scope == "read write follow" +      clear_config([User, :email_blacklist], ["example.org"]) + +      params = %{ +        username: "lain", +        email: "lain@example.org", +        password: "PlzDontHackLain", +        bio: "Test Bio", +        agreement: true +      } +        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 -        }) +        |> post("/api/v1/accounts", params) + +      assert %{"error" => "{\"email\":[\"Invalid email\"]}"} = +               json_response_and_validate_schema(conn, 400) + +      Pleroma.Config.put([User, :email_blacklist], []) + +      conn = +        build_conn() +        |> put_req_header("content-type", "multipart/form-data") +        |> put_req_header("authorization", "Bearer " <> token) +        |> post("/api/v1/accounts", params)        %{          "access_token" => token, | 
