diff options
author | lain <lain@soykaf.club> | 2019-08-20 12:44:14 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-08-20 12:44:14 +0000 |
commit | ef43016b2c03f02ed6d77c6ca4afb1f19ff04771 (patch) | |
tree | 01566e4988a6948104d109ca3b7b70d8598a4db5 /test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs | |
parent | 10696ce2eede57d256e6a1b6f4775037fd63b146 (diff) | |
parent | a2e1db56323d0f306ee42a1f58471eb55c8c1e68 (diff) | |
download | pleroma-ef43016b2c03f02ed6d77c6ca4afb1f19ff04771.tar.gz pleroma-ef43016b2c03f02ed6d77c6ca4afb1f19ff04771.zip |
Merge branch 'feature/custom-fields' into 'develop'
Add custom profile fields
See merge request pleroma/pleroma!1488
Diffstat (limited to 'test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs')
-rw-r--r-- | test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs b/test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs index 71d0c8af8..dd443495b 100644 --- a/test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller/update_credentials_test.exs @@ -300,5 +300,69 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do assert user["display_name"] == name assert [%{"shortcode" => "blank"}, %{"shortcode" => "firefox"}] = user["emojis"] end + + test "update fields", %{conn: conn} do + user = insert(:user) + + fields = [ + %{"name" => "<a href=\"http://google.com\">foo</a>", "value" => "<script>bar</script>"}, + %{"name" => "link", "value" => "cofe.io"} + ] + + account = + conn + |> assign(:user, user) + |> patch("/api/v1/accounts/update_credentials", %{"fields" => fields}) + |> json_response(200) + + assert account["fields"] == [ + %{"name" => "foo", "value" => "bar"}, + %{"name" => "link", "value" => "<a href=\"http://cofe.io\">cofe.io</a>"} + ] + + assert account["source"]["fields"] == [ + %{ + "name" => "<a href=\"http://google.com\">foo</a>", + "value" => "<script>bar</script>" + }, + %{"name" => "link", "value" => "cofe.io"} + ] + + name_limit = Pleroma.Config.get([:instance, :account_field_name_length]) + value_limit = Pleroma.Config.get([:instance, :account_field_value_length]) + + long_value = Enum.map(0..value_limit, fn _ -> "x" end) |> Enum.join() + + fields = [%{"name" => "<b>foo<b>", "value" => long_value}] + + assert %{"error" => "Invalid request"} == + conn + |> assign(:user, user) + |> patch("/api/v1/accounts/update_credentials", %{"fields" => fields}) + |> json_response(403) + + long_name = Enum.map(0..name_limit, fn _ -> "x" end) |> Enum.join() + + fields = [%{"name" => long_name, "value" => "bar"}] + + assert %{"error" => "Invalid request"} == + conn + |> assign(:user, user) + |> patch("/api/v1/accounts/update_credentials", %{"fields" => fields}) + |> json_response(403) + + Pleroma.Config.put([:instance, :max_account_fields], 1) + + fields = [ + %{"name" => "<b>foo<b>", "value" => "<i>bar</i>"}, + %{"name" => "link", "value" => "cofe.io"} + ] + + assert %{"error" => "Invalid request"} == + conn + |> assign(:user, user) + |> patch("/api/v1/accounts/update_credentials", %{"fields" => fields}) + |> json_response(403) + end end end |