diff options
| -rw-r--r-- | test/fixtures/kroeg-post-activity.json | 50 | ||||
| -rw-r--r-- | test/support/httpoison_mock.ex | 12 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 9 | 
3 files changed, 71 insertions, 0 deletions
diff --git a/test/fixtures/kroeg-post-activity.json b/test/fixtures/kroeg-post-activity.json new file mode 100644 index 000000000..32dabd947 --- /dev/null +++ b/test/fixtures/kroeg-post-activity.json @@ -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" +} diff --git a/test/support/httpoison_mock.ex b/test/support/httpoison_mock.ex index a52d44ed6..dc83b115e 100644 --- a/test/support/httpoison_mock.ex +++ b/test/support/httpoison_mock.ex @@ -4,6 +4,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"],          follow_redirect: true diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 838ae169d..e455da39f 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -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)  | 
