ObjectValidator tests: Extract undo validation tests.
authorlain <lain@soykaf.club>
Mon, 6 Jul 2020 13:09:41 +0000 (15:09 +0200)
committerlain <lain@soykaf.club>
Mon, 6 Jul 2020 13:09:41 +0000 (15:09 +0200)
test/web/activity_pub/object_validator_test.exs
test/web/activity_pub/object_validators/undo_validation_test.exs [new file with mode: 0644]

index 2b5d6e9fef1b2f1c420154c37b86b4987a213dfd..d41d9d73eaff4f5650dc0f9858bfbca9da617eff 100644 (file)
@@ -12,46 +12,6 @@ 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 "announces" do
     setup do
       user = insert(:user)
diff --git a/test/web/activity_pub/object_validators/undo_validation_test.exs b/test/web/activity_pub/object_validators/undo_validation_test.exs
new file mode 100644 (file)
index 0000000..75bbcc4
--- /dev/null
@@ -0,0 +1,53 @@
+# 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.UndoHandlingTest do
+  use Pleroma.DataCase
+
+  alias Pleroma.Web.ActivityPub.Builder
+  alias Pleroma.Web.ActivityPub.ObjectValidator
+  alias Pleroma.Web.CommonAPI
+
+  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
+end