X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fuser_test.exs;h=b87d3186266c94d19e636c05de67e8dd94e32f21;hb=118c572006dd96e6718035e5859aa339aa254476;hp=417282ff9d32df9018f7329ecd7ac0bf164156b0;hpb=bda389d7d942b7e90ffb519bc680a424a8400e2f;p=akkoma diff --git a/test/user_test.exs b/test/user_test.exs index 417282ff9..b87d31862 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -60,7 +60,7 @@ defmodule Pleroma.UserTest do followed = insert(:user) user = insert(:user, %{following: [User.ap_followers(followed)]}) - {:ok, user } = User.unfollow(user, followed) + {:ok, user, _activity } = User.unfollow(user, followed) user = Repo.get(User, user.id) @@ -139,5 +139,49 @@ defmodule Pleroma.UserTest do user = insert(:user) assert User.ap_followers(user) == Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :feed_redirect, user.nickname) <> "/followers" end + + describe "remote user creation changeset" do + @valid_remote %{ + bio: "hello", + name: "Someone", + nickname: "a@b.de", + ap_id: "http...", + info: %{some: "info"}, + avatar: %{some: "avatar"} + } + + test "it confirms validity" do + cs = User.remote_user_creation(@valid_remote) + assert cs.valid? + end + + test "it enforces the fqn format for nicknames" do + cs = User.remote_user_creation(%{@valid_remote | nickname: "bla"}) + assert cs.changes.local == false + assert cs.changes.avatar + refute cs.valid? + end + + test "it has required fields" do + [:name, :nickname, :ap_id] + |> Enum.each(fn (field) -> + cs = User.remote_user_creation(Map.delete(@valid_remote, field)) + refute cs.valid? + end) + end + + test "it restricts some sizes" do + [bio: 1000, name: 100] + |> Enum.each(fn ({field, size}) -> + string = String.pad_leading(".", size) + cs = User.remote_user_creation(Map.put(@valid_remote, field, string)) + assert cs.valid? + + string = String.pad_leading(".", size + 1) + cs = User.remote_user_creation(Map.put(@valid_remote, field, string)) + refute cs.valid? + end) + end + end end