test "removes doubled 'to' recipients" do
{:ok, activity} = ActivityPub.create(["user1", "user1", "user2"], %User{ap_id: "1"}, "", %{})
assert activity.data["to"] == ["user1", "user2"]
+ assert activity.actor == "1"
end
end
{:ok, activity_two} = ActivityBuilder.insert(%{"type" => "Create", "context" => "2hu"})
{:ok, _activity_three} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"})
{:ok, _activity_four} = ActivityBuilder.insert(%{"type" => "Announce", "context" => "2hu"})
+ activity_five = insert(:note_activity)
+ user = insert(:user)
- activities = ActivityPub.fetch_activities_for_context("2hu")
+ {:ok, user} = User.block(user, %{ap_id: activity_five.data["actor"]})
+ activities = ActivityPub.fetch_activities_for_context("2hu", %{"blocking_user" => user})
assert activities == [activity_two, activity]
end
end
+ test "doesn't return blocked activities" do
+ activity_one = insert(:note_activity)
+ activity_two = insert(:note_activity)
+ user = insert(:user)
+ {:ok, user} = User.block(user, %{ap_id: activity_one.data["actor"]})
+
+ activities = ActivityPub.fetch_activities([], %{"blocking_user" => user})
+
+ assert Enum.member?(activities, activity_two)
+ refute Enum.member?(activities, activity_one)
+
+ {:ok, user} = User.unblock(user, %{ap_id: activity_one.data["actor"]})
+
+ activities = ActivityPub.fetch_activities([], %{"blocking_user" => user})
+
+ assert Enum.member?(activities, activity_two)
+ assert Enum.member?(activities, activity_one)
+
+ activities = ActivityPub.fetch_activities([], %{"blocking_user" => nil})
+
+ assert Enum.member?(activities, activity_two)
+ assert Enum.member?(activities, activity_one)
+ end
+
describe "public fetch activities" do
test "retrieves public activities" do
+ activities = ActivityPub.fetch_public_activities
+
%{public: public} = ActivityBuilder.public_and_non_public
activities = ActivityPub.fetch_public_activities