X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fuser_test.exs;h=31c5962e2d0f4023e2922f0d58c34d302d523a44;hb=69f1024bb0c6fef509cb38aabcbb1482055cde05;hp=36ac2765656954f0dc83de17ffacd4af6781cda4;hpb=345ad870f710ef8e8da8bc49878317696362c5c0;p=akkoma diff --git a/test/user_test.exs b/test/user_test.exs index 36ac27656..31c5962e2 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -3,6 +3,7 @@ defmodule Pleroma.UserTest do alias Pleroma.{User, Repo} alias Pleroma.Web.OStatus alias Pleroma.Web.Websub.WebsubClientSubscription + alias Pleroma.Web.CommonAPI use Pleroma.DataCase import Pleroma.Factory @@ -35,7 +36,7 @@ defmodule Pleroma.UserTest do followed = User.get_by_ap_id(followed.ap_id) assert followed.info["follower_count"] == 1 - assert user.following == [User.ap_followers(followed)] + assert User.ap_followers(followed) in user.following end test "following a remote user will ensure a websub subscription is present" do @@ -45,7 +46,7 @@ defmodule Pleroma.UserTest do assert followed.local == false {:ok, user} = User.follow(user, followed) - assert user.following == [User.ap_followers(followed)] + assert User.ap_followers(followed) in user.following query = from w in WebsubClientSubscription, where: w.topic == ^followed.info["topic"] @@ -65,6 +66,16 @@ defmodule Pleroma.UserTest do assert user.following == [] end + test "unfollow doesn't unfollow yourself" do + user = insert(:user) + + {:error, _} = User.unfollow(user, user) + + user = Repo.get(User, user.id) + assert user.following == [user.ap_id] + end + + test "test if a user is following another user" do followed = insert(:user) user = insert(:user, %{following: [User.ap_followers(followed)]}) @@ -273,5 +284,46 @@ defmodule Pleroma.UserTest do assert user.info["follower_count"] == 1 end end + + describe "blocks" do + test "it blocks people" do + user = insert(:user) + blocked_user = insert(:user) + + refute User.blocks?(user, blocked_user) + + {:ok, user} = User.block(user, blocked_user) + + assert User.blocks?(user, blocked_user) + end + + test "it unblocks users" do + user = insert(:user) + blocked_user = insert(:user) + + {:ok, user} = User.block(user, blocked_user) + {:ok, user} = User.unblock(user, blocked_user) + + refute User.blocks?(user, blocked_user) + end + end + + test "get recipients from activity" do + actor = insert(:user) + user = insert(:user, local: true) + user_two = insert(:user, local: false) + addressed = insert(:user, local: true) + addressed_remote = insert(:user, local: false) + {:ok, activity} = CommonAPI.post(actor, %{"status" => "hey @#{addressed.nickname} @#{addressed_remote.nickname}"}) + + assert [addressed] == User.get_recipients_from_activity(activity) + + {:ok, user} = User.follow(user, actor) + {:ok, user_two} = User.follow(user_two, actor) + recipients = User.get_recipients_from_activity(activity) + assert length(recipients) == 2 + assert user in recipients + assert addressed in recipients + end end