summaryrefslogtreecommitdiff
path: root/test/web/activity_pub/object_validator_test.exs
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-05-07 14:28:10 +0000
committerrinpatch <rinpatch@sdf.org>2020-05-07 14:28:10 +0000
commitbef08b85e5e1e25b65851938d6152bf0c170af03 (patch)
treec40fae753b4791bf1feaa98b33822221db8f2a59 /test/web/activity_pub/object_validator_test.exs
parent516ff945cedbfae774f4c8272264a4cf0e453130 (diff)
parentd11eea62b139ce16d7dffbd574947b2550df238f (diff)
downloadpleroma-bef08b85e5e1e25b65851938d6152bf0c170af03.tar.gz
pleroma-bef08b85e5e1e25b65851938d6152bf0c170af03.zip
Merge branch 'feature/undo-validator-reduced' into 'develop'
Move Undo (except undo follow) to the common pipeline See merge request pleroma/pleroma!2489
Diffstat (limited to 'test/web/activity_pub/object_validator_test.exs')
-rw-r--r--test/web/activity_pub/object_validator_test.exs40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs
index 744c46781..174be5ec6 100644
--- a/test/web/activity_pub/object_validator_test.exs
+++ b/test/web/activity_pub/object_validator_test.exs
@@ -10,6 +10,46 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do
import Pleroma.Factory
+ describe "Undos" do
+ setup do
+ user = insert(:user)
+ {:ok, post_activity} = CommonAPI.post(user, %{"status" => "uguu"})
+ {:ok, like} = CommonAPI.favorite(user, post_activity.id)
+ {:ok, valid_like_undo, []} = Builder.undo(user, like)
+
+ %{user: user, like: like, valid_like_undo: valid_like_undo}
+ end
+
+ test "it validates a basic like undo", %{valid_like_undo: valid_like_undo} do
+ assert {:ok, _, _} = ObjectValidator.validate(valid_like_undo, [])
+ end
+
+ test "it does not validate if the actor of the undo is not the actor of the object", %{
+ valid_like_undo: valid_like_undo
+ } do
+ other_user = insert(:user, ap_id: "https://gensokyo.2hu/users/raymoo")
+
+ bad_actor =
+ valid_like_undo
+ |> Map.put("actor", other_user.ap_id)
+
+ {:error, cng} = ObjectValidator.validate(bad_actor, [])
+
+ assert {:actor, {"not the same as object actor", []}} in cng.errors
+ end
+
+ test "it does not validate if the object is missing", %{valid_like_undo: valid_like_undo} do
+ missing_object =
+ valid_like_undo
+ |> Map.put("object", "https://gensokyo.2hu/objects/1")
+
+ {:error, cng} = ObjectValidator.validate(missing_object, [])
+
+ assert {:object, {"can't find object", []}} in cng.errors
+ assert length(cng.errors) == 1
+ end
+ end
+
describe "deletes" do
setup do
user = insert(:user)