test: add kroeg fixtures
authorWilliam Pitcock <nenolod@dereferenced.org>
Tue, 14 Aug 2018 17:07:01 +0000 (17:07 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Tue, 14 Aug 2018 17:09:17 +0000 (17:09 +0000)
test/fixtures/kroeg-post-activity.json [new file with mode: 0644]
test/support/httpoison_mock.ex
test/web/activity_pub/transmogrifier_test.exs

diff --git a/test/fixtures/kroeg-post-activity.json b/test/fixtures/kroeg-post-activity.json
new file mode 100644 (file)
index 0000000..32dabd9
--- /dev/null
@@ -0,0 +1,50 @@
+{
+    "@context": [
+        "https://www.w3.org/ns/activitystreams",
+        "https://puckipedia.com/-/context"
+    ],
+    "actor": {
+        "endpoints": "https://puckipedia.com/#endpoints",
+        "followers": "https://puckipedia.com/followers",
+        "following": "https://puckipedia.com/following",
+        "icon": {
+            "mediaType": "image/png",
+            "type": "Image",
+            "url": "https://puckipedia.com/images/avatar.png"
+        },
+        "id": "https://puckipedia.com/",
+        "inbox": "https://puckipedia.com/inbox",
+        "kroeg:blocks": {
+            "id": "https://puckipedia.com/blocks"
+        },
+        "liked": "https://puckipedia.com/liked",
+        "manuallyApprovesFollowers": false,
+        "name": "HACKER TEEN PUCKIPEDIA \ud83d\udc69\u200d\ud83d\udcbb",
+        "outbox": "https://puckipedia.com/outbox",
+        "preferredUsername": "puckipedia",
+        "publicKey": {
+            "id": "https://puckipedia.com/#key",
+            "owner": "https://puckipedia.com/",
+            "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvN05xIcFE0Qgany7Rht4\n0ZI5wu++IT7K5iSqRimBYkpoeHbVcT9RFlW+aWH/QJJW/YgZ7+LMr8AMCrKrwSpS\nCndyrpx4O4lZ3FNRLu7tbklh01rGZfE6R1SFfYBpvMvImc9nYT6iezYDbv6NkHku\no3aVhjql216XlA0OhIrqQme9sAdrLbjbMrTUS8douCTkDOX+JFj1ghHCqdYEMZJI\nOY9kovtgnqyxFLm0RsPGsO1+g/OVojqG+VqHz6O2lceaTVQLlnZ4gOhLVG1tVsA2\nRfXQK+R/VgXncYE+BlQVd/tcdGAz7CDL7PP3rP65gmARnafhGR96cCOi/KzlAXSO\nMwIDAQAB\n-----END PUBLIC KEY-----",
+            "type": []
+        },
+        "summary": "<p>federated hacker teen<br/>\n[<a href=\"https://pronoun.is/she\">she</a>/<a href=\"https://pronoun.is/they\">they</a>]</p>",
+        "type": "Person",
+        "updated": "2017-12-19T16:56:29.7576707+00:00"
+    },
+    "cc": "https://puckipedia.com/followers",
+    "id": "https://puckipedia.com/ae4ee4e8be/activity",
+    "object": {
+        "attributedTo": "https://puckipedia.com/",
+        "cc": "https://puckipedia.com/followers",
+        "content": "<p>henlo from my Psion netBook</p><p>message sent from my Psion netBook</p>",
+        "id": "https://puckipedia.com/ae4ee4e8be",
+        "likes": "https://puckipedia.com/ae4ee4e8be/likes",
+        "replies": "https://puckipedia.com/ae4ee4e8be/replies",
+        "shares": "https://puckipedia.com/ae4ee4e8be/shares",
+        "to": "https://www.w3.org/ns/activitystreams#Public",
+        "type": "Note"
+    },
+    "to": "https://www.w3.org/ns/activitystreams#Public",
+    "type": "Create"
+}
index a52d44ed6df2a4a58e11153ab9b163cdb5f15e4e..dc83b115eb493adab4c09cb265ce73e4b29607dc 100644 (file)
@@ -3,6 +3,18 @@ defmodule HTTPoisonMock do
 
   def get(url, body \\ [], headers \\ [])
 
+  def get(
+        "https://puckipedia.com/",
+        [Accept: "application/activity+json"],
+        []
+      ) do
+    {:ok,
+     %Response{
+       status_code: 200,
+       body: File.read!("test/fixtures/httpoison_mock/puckipedia.com.json")
+     }}
+  end
+
   def get(
         "https://gerzilla.de/.well-known/webfinger?resource=acct:kaniini@gerzilla.de",
         [Accept: "application/xrd+xml,application/jrd+json"],
index 838ae169dc1f2ff26ac2195a8c4baaa77999fa51..e455da39f88d1a2e0fde5470a081b415743fd792 100644 (file)
@@ -112,6 +112,15 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
                "<p><span class=\"h-card\"><a href=\"http://localtesting.pleroma.lol/users/lain\" class=\"u-url mention\">@<span>lain</span></a></span></p>"
     end
 
+    test "it works for incoming notices with to/cc not being an array (kroeg)" do
+      data = File.read!("test/fixtures/kroeg-post-activity.json") |> Poison.decode!()
+
+      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
+
+      assert data["object"]["content"] ==
+               "<p>henlo from my Psion netBook</p><p>message sent from my Psion netBook</p>"
+    end
+
     test "it works for incoming follow requests" do
       user = insert(:user)