alias Pleroma.{User, Repo}
alias Pleroma.Web.OStatus
alias Pleroma.Web.Websub.WebsubClientSubscription
+ alias Pleroma.Web.CommonAPI
use Pleroma.DataCase
import Pleroma.Factory
import Ecto.Query
test "ap_id returns the activity pub id for the user" do
- host =
- Application.get_env(:pleroma, Pleroma.Web.Endpoint)
- |> Keyword.fetch!(:url)
- |> Keyword.fetch!(:host)
-
user = UserBuilder.build
expected_ap_id = "#{Pleroma.Web.base_url}/users/#{user.nickname}"
{:ok, res} = User.get_followers(user)
- assert res == [follower_one, follower_two]
+ assert Enum.member?(res, follower_one)
+ assert Enum.member?(res, follower_two)
+ refute Enum.member?(res, not_follower)
end
test "gets all friends (followed users) for a given user" do
followed_one = User.get_by_ap_id(followed_one.ap_id)
followed_two = User.get_by_ap_id(followed_two.ap_id)
- assert res == [followed_one, followed_two]
+ assert Enum.member?(res, followed_one)
+ assert Enum.member?(res, followed_two)
+ refute Enum.member?(res, not_followed)
end
end
assert user.info["note_count"] == 1
end
+ test "it increases the info->note_count property" do
+ note = insert(:note)
+ user = User.get_by_ap_id(note.data["actor"])
+
+ assert user.info["note_count"] == nil
+
+ {:ok, user} = User.increase_note_count(user)
+
+ assert user.info["note_count"] == 1
+
+ {:ok, user} = User.increase_note_count(user)
+
+ assert user.info["note_count"] == 2
+ end
+
test "it sets the info->follower_count property" do
user = insert(:user)
follower = insert(:user)
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)
+ recipients = User.get_recipients_from_activity(activity)
+ assert length(recipients) == 2
+ assert user in recipients
+ assert addressed in recipients
+ end
end