Handle remote update activities.
[akkoma] / test / web / activity_pub / transmogrifier_test.exs
index 2e500d11dee9e216eb2424f2bc3b031f3217d7aa..2803f1a0533cd10b42df0f903181e3ce025b63b6 100644 (file)
@@ -36,7 +36,9 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
 
       {:ok, returned_activity} = Transmogrifier.handle_incoming(data)
 
-      assert Activity.get_create_activity_by_object_ap_id("tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment")
+      assert activity = Activity.get_create_activity_by_object_ap_id("tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment")
+      assert returned_activity.data["object"]["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"
+      assert returned_activity.data["object"]["inReplyToStatusId"] == activity.id
     end
 
     test "it works for incoming notices" do
@@ -124,6 +126,28 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
 
       assert Activity.get_create_activity_by_object_ap_id(data["object"]).id == activity.id
     end
+
+    test "it works for incoming update activities" do
+      data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!
+
+      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
+      update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!
+      object = update_data["object"]
+      |> Map.put("actor", data["actor"])
+      |> Map.put("id", data["actor"])
+
+      update_data = update_data
+      |> Map.put("actor", data["actor"])
+      |> Map.put("object", object)
+
+      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data)
+
+      user = User.get_cached_by_ap_id(data["actor"])
+      assert user.name == "gargle"
+      assert user.avatar["url"] == [%{"href" => "https://cd.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg"}]
+      assert user.info["banner"]["url"] == [%{"href" => "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"}]
+      assert user.bio == "<p>Some bio</p>"
+    end
   end
 
   describe "prepare outgoing" do