aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-03-21 20:22:05 +0100
committerRoger Braun <roger@rogerbraun.net>2017-03-21 20:22:05 +0100
commitd4cf273f289168c6555624717a4060e0c15b7197 (patch)
treec6f3c4c55925251308eac005bdd9bfaaef02732a /test
parentad303783afc0be046d0bcb4b70b3bce9aabac27f (diff)
downloadpleroma-d4cf273f289168c6555624717a4060e0c15b7197.tar.gz
Add limiting to activity pub fetching.
Diffstat (limited to 'test')
-rw-r--r--test/support/builders/activity_builder.ex35
-rw-r--r--test/web/activity_pub/activity_pub_test.exs15
2 files changed, 35 insertions, 15 deletions
diff --git a/test/support/builders/activity_builder.ex b/test/support/builders/activity_builder.ex
index 0b7f79c5f..b44afa896 100644
--- a/test/support/builders/activity_builder.ex
+++ b/test/support/builders/activity_builder.ex
@@ -1,11 +1,10 @@
defmodule Pleroma.Builders.ActivityBuilder do
alias Pleroma.Builders.UserBuilder
alias Pleroma.Web.ActivityPub.ActivityPub
- alias Pleroma.User
- def public_and_non_public do
- {:ok, user} = UserBuilder.insert
- public = %{
+ def build(data \\ %{}, opts \\ %{}) do
+ user = opts[:user] || UserBuilder.build
+ activity = %{
"id" => 1,
"actor" => user.ap_id,
"to" => ["https://www.w3.org/ns/activitystreams#Public"],
@@ -14,16 +13,26 @@ defmodule Pleroma.Builders.ActivityBuilder do
"content" => "test"
}
}
+ Map.merge(activity, data)
+ end
- non_public = %{
- "id" => 2,
- "actor" => user.ap_id,
- "to" => [],
- "object" => %{
- "type" => "Note",
- "content" => "test"
- }
- }
+ def insert(data \\ %{}, opts \\ %{}) do
+ activity = build(data, opts)
+ ActivityPub.insert(activity)
+ end
+
+ def insert_list(times, data \\ %{}, opts \\ %{}) do
+ Enum.map(1..times, fn (n) ->
+ {:ok, activity} = insert(%{"id" => n})
+ activity
+ end)
+ end
+
+ def public_and_non_public do
+ {:ok, user} = UserBuilder.insert
+
+ public = build(%{"id" => 1}, %{user: user})
+ non_public = build(%{"id" => 2, "to" => []}, %{user: user})
{:ok, public} = ActivityPub.insert(public)
{:ok, non_public} = ActivityPub.insert(non_public)
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs
index aa4abbec1..d640bfa2b 100644
--- a/test/web/activity_pub/activity_pub_test.exs
+++ b/test/web/activity_pub/activity_pub_test.exs
@@ -15,13 +15,24 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
end
end
- describe "fetch activities" do
- test "retrieves all public activities" do
+ describe "public fetch activities" do
+ test "retrieves public activities" do
%{public: public} = ActivityBuilder.public_and_non_public
activities = ActivityPub.fetch_public_activities
assert length(activities) == 1
assert Enum.at(activities, 0) == public
end
+
+ test "retrieves a maximum of 20 activities" do
+ activities = ActivityBuilder.insert_list(30)
+ last_expected = List.last(activities)
+
+ activities = ActivityPub.fetch_public_activities
+ last = List.last(activities)
+
+ assert length(activities) == 20
+ assert last == last_expected
+ end
end
end