summaryrefslogtreecommitdiff
path: root/test/web/activity_pub/object_validators/accept_validation_test.exs
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-10-08 15:44:48 -0500
committerAlex Gleason <alex@alexgleason.me>2020-10-08 15:44:48 -0500
commit77b1ea68a7700ac4a78c7f2e0ea9f118441d23da (patch)
tree06243af101a609256b517f48175380a7c4f5bfbb /test/web/activity_pub/object_validators/accept_validation_test.exs
parent4af1b803811cbb59d41f0149706d6dda340b4755 (diff)
parent74be4de3f6c2c34447029649526637411acfa9f3 (diff)
downloadpleroma-77b1ea68a7700ac4a78c7f2e0ea9f118441d23da.tar.gz
pleroma-77b1ea68a7700ac4a78c7f2e0ea9f118441d23da.zip
Merge remote-tracking branch 'upstream/develop' into aliases
Diffstat (limited to 'test/web/activity_pub/object_validators/accept_validation_test.exs')
-rw-r--r--test/web/activity_pub/object_validators/accept_validation_test.exs56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/web/activity_pub/object_validators/accept_validation_test.exs b/test/web/activity_pub/object_validators/accept_validation_test.exs
new file mode 100644
index 000000000..d6111ba41
--- /dev/null
+++ b/test/web/activity_pub/object_validators/accept_validation_test.exs
@@ -0,0 +1,56 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ActivityPub.ObjectValidators.AcceptValidationTest do
+ use Pleroma.DataCase
+
+ alias Pleroma.Web.ActivityPub.Builder
+ alias Pleroma.Web.ActivityPub.ObjectValidator
+ alias Pleroma.Web.ActivityPub.Pipeline
+
+ import Pleroma.Factory
+
+ setup do
+ follower = insert(:user)
+ followed = insert(:user, local: false)
+
+ {:ok, follow_data, _} = Builder.follow(follower, followed)
+ {:ok, follow_activity, _} = Pipeline.common_pipeline(follow_data, local: true)
+
+ {:ok, accept_data, _} = Builder.accept(followed, follow_activity)
+
+ %{accept_data: accept_data, followed: followed}
+ end
+
+ test "it validates a basic 'accept'", %{accept_data: accept_data} do
+ assert {:ok, _, _} = ObjectValidator.validate(accept_data, [])
+ end
+
+ test "it fails when the actor doesn't exist", %{accept_data: accept_data} do
+ accept_data =
+ accept_data
+ |> Map.put("actor", "https://gensokyo.2hu/users/raymoo")
+
+ assert {:error, _} = ObjectValidator.validate(accept_data, [])
+ end
+
+ test "it fails when the accepted activity doesn't exist", %{accept_data: accept_data} do
+ accept_data =
+ accept_data
+ |> Map.put("object", "https://gensokyo.2hu/users/raymoo/follows/1")
+
+ assert {:error, _} = ObjectValidator.validate(accept_data, [])
+ end
+
+ test "for an accepted follow, it only validates if the actor of the accept is the followed actor",
+ %{accept_data: accept_data} do
+ stranger = insert(:user)
+
+ accept_data =
+ accept_data
+ |> Map.put("actor", stranger.ap_id)
+
+ assert {:error, _} = ObjectValidator.validate(accept_data, [])
+ end
+end