summaryrefslogtreecommitdiff
path: root/test/web/activity_pub/object_validators/reject_validation_test.exs
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2020-10-08 17:24:09 -0500
committerAlex Gleason <alex@alexgleason.me>2020-10-08 17:24:09 -0500
commit3f9263fb16ad519d2dd45106549a8ba42b68fc1f (patch)
treea48eb564f7f037a876a4d2131f8571aa33702b22 /test/web/activity_pub/object_validators/reject_validation_test.exs
parent24ce9c011caf7401fb261c7df4196b2ef9ba3d90 (diff)
parent74be4de3f6c2c34447029649526637411acfa9f3 (diff)
downloadpleroma-3f9263fb16ad519d2dd45106549a8ba42b68fc1f.tar.gz
pleroma-3f9263fb16ad519d2dd45106549a8ba42b68fc1f.zip
Merge remote-tracking branch 'upstream/develop' into restrict-origin
Diffstat (limited to 'test/web/activity_pub/object_validators/reject_validation_test.exs')
-rw-r--r--test/web/activity_pub/object_validators/reject_validation_test.exs56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/web/activity_pub/object_validators/reject_validation_test.exs b/test/web/activity_pub/object_validators/reject_validation_test.exs
new file mode 100644
index 000000000..370bb6e5c
--- /dev/null
+++ b/test/web/activity_pub/object_validators/reject_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.RejectValidationTest 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, reject_data, _} = Builder.reject(followed, follow_activity)
+
+ %{reject_data: reject_data, followed: followed}
+ end
+
+ test "it validates a basic 'reject'", %{reject_data: reject_data} do
+ assert {:ok, _, _} = ObjectValidator.validate(reject_data, [])
+ end
+
+ test "it fails when the actor doesn't exist", %{reject_data: reject_data} do
+ reject_data =
+ reject_data
+ |> Map.put("actor", "https://gensokyo.2hu/users/raymoo")
+
+ assert {:error, _} = ObjectValidator.validate(reject_data, [])
+ end
+
+ test "it fails when the rejected activity doesn't exist", %{reject_data: reject_data} do
+ reject_data =
+ reject_data
+ |> Map.put("object", "https://gensokyo.2hu/users/raymoo/follows/1")
+
+ assert {:error, _} = ObjectValidator.validate(reject_data, [])
+ end
+
+ test "for an rejected follow, it only validates if the actor of the reject is the followed actor",
+ %{reject_data: reject_data} do
+ stranger = insert(:user)
+
+ reject_data =
+ reject_data
+ |> Map.put("actor", stranger.ap_id)
+
+ assert {:error, _} = ObjectValidator.validate(reject_data, [])
+ end
+end