diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-07-29 19:01:15 +0700 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-08-14 14:52:54 +0700 | 
| commit | 5178f960c3f5a35e2071bd5463b537cadc9a53af (patch) | |
| tree | 8359958c4e16cf18454b83c272b3296fcc8c5fad /test | |
| parent | 8ab87ce40b0b8a5be7cd3576eddbacc279d8d3a1 (diff) | |
| download | pleroma-5178f960c3f5a35e2071bd5463b537cadc9a53af.tar.gz pleroma-5178f960c3f5a35e2071bd5463b537cadc9a53af.zip  | |
Support user attachment update in Transmogrifier
Diffstat (limited to 'test')
| -rw-r--r-- | test/fixtures/mastodon-update.json | 36 | ||||
| -rw-r--r-- | test/fixtures/tesla_mock/admin@mastdon.example.org.json | 55 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 36 | 
3 files changed, 118 insertions, 9 deletions
diff --git a/test/fixtures/mastodon-update.json b/test/fixtures/mastodon-update.json index f6713fea5..dbf8b6dff 100644 --- a/test/fixtures/mastodon-update.json +++ b/test/fixtures/mastodon-update.json @@ -1,10 +1,10 @@ -{                                                                                -  "type": "Update",                                                                     -  "object": {                                                                           -    "url": "http://mastodon.example.org/@gargron",                                      -    "type": "Person",                                                                   -    "summary": "<p>Some bio</p>",                                                               -    "publicKey": {                                                                      +{ +  "type": "Update", +  "object": { +    "url": "http://mastodon.example.org/@gargron", +    "type": "Person", +    "summary": "<p>Some bio</p>", +    "publicKey": {        "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0gs3VnQf6am3R+CeBV4H\nlfI1HZTNRIBHgvFszRZkCERbRgEWMu+P+I6/7GJC5H5jhVQ60z4MmXcyHOGmYMK/\n5XyuHQz7V2Ssu1AxLfRN5Biq1ayb0+DT/E7QxNXDJPqSTnstZ6C7zKH/uAETqg3l\nBonjCQWyds+IYbQYxf5Sp3yhvQ80lMwHML3DaNCMlXWLoOnrOX5/yK5+dedesg2\n/HIvGk+HEt36vm6hoH7bwPuEkgA++ACqwjXRe5Mta7i3eilHxFaF8XIrJFARV0t\nqOu4GID/jG6oA+swIWndGrtR2QRJIt9QIBFfK3HG5M0koZbY1eTqwNFRHFL3xaD\nUQIDAQAB\n-----END PUBLIC KEY-----\n",        "owner": "http://mastodon.example.org/users/gargron",        "id": "http://mastodon.example.org/users/gargron#main-key" @@ -20,7 +20,27 @@      "endpoints": {        "sharedInbox": "http://mastodon.example.org/inbox"      }, -    "icon":{"type":"Image","mediaType":"image/jpeg","url":"https://cd.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg"},"image":{"type":"Image","mediaType":"image/png","url":"https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"} +    "attachment": [{ +        "type": "PropertyValue", +        "name": "foo", +        "value": "updated" +      }, +      { +        "type": "PropertyValue", +        "name": "foo1", +        "value": "updated" +      } +    ], +    "icon": { +      "type": "Image", +      "mediaType": "image/jpeg", +      "url": "https://cd.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg" +    }, +    "image": { +      "type": "Image", +      "mediaType": "image/png", +      "url": "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" +    }    },    "id": "http://mastodon.example.org/users/gargron#updates/1519563538",    "actor": "http://mastodon.example.org/users/gargron", diff --git a/test/fixtures/tesla_mock/admin@mastdon.example.org.json b/test/fixtures/tesla_mock/admin@mastdon.example.org.json index c297e4349..8159dc20a 100644 --- a/test/fixtures/tesla_mock/admin@mastdon.example.org.json +++ b/test/fixtures/tesla_mock/admin@mastdon.example.org.json @@ -1 +1,54 @@ -{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","sensitive":"as:sensitive","movedTo":"as:movedTo","Hashtag":"as:Hashtag","ostatus":"http://ostatus.org#","atomUri":"ostatus:atomUri","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","toot":"http://joinmastodon.org/ns#","Emoji":"toot:Emoji"}],"id":"http://mastodon.example.org/users/admin","type":"Person","following":"http://mastodon.example.org/users/admin/following","followers":"http://mastodon.example.org/users/admin/followers","inbox":"http://mastodon.example.org/users/admin/inbox","outbox":"http://mastodon.example.org/users/admin/outbox","preferredUsername":"admin","name":null,"summary":"\u003cp\u003e\u003c/p\u003e","url":"http://mastodon.example.org/@admin","manuallyApprovesFollowers":false,"publicKey":{"id":"http://mastodon.example.org/users/admin#main-key","owner":"http://mastodon.example.org/users/admin","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtc4Tir+3ADhSNF6VKrtW\nOU32T01w7V0yshmQei38YyiVwVvFu8XOP6ACchkdxbJ+C9mZud8qWaRJKVbFTMUG\nNX4+6Q+FobyuKrwN7CEwhDALZtaN2IPbaPd6uG1B7QhWorrY+yFa8f2TBM3BxnUy\nI4T+bMIZIEYG7KtljCBoQXuTQmGtuffO0UwJksidg2ffCF5Q+K//JfQagJ3UzrR+\nZXbKMJdAw4bCVJYs4Z5EhHYBwQWiXCyMGTd7BGlmMkY6Av7ZqHKC/owp3/0EWDNz\nNqF09Wcpr3y3e8nA10X40MJqp/wR+1xtxp+YGbq/Cj5hZGBG7etFOmIpVBrDOhry\nBwIDAQAB\n-----END PUBLIC KEY-----\n"},"endpoints":{"sharedInbox":"http://mastodon.example.org/inbox"},"icon":{"type":"Image","mediaType":"image/jpeg","url":"https://cdn.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg"},"image":{"type":"Image","mediaType":"image/png","url":"https://cdn.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"}} +{ +  "@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", { +    "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", +    "sensitive": "as:sensitive", +    "movedTo": "as:movedTo", +    "Hashtag": "as:Hashtag", +    "ostatus": "http://ostatus.org#", +    "atomUri": "ostatus:atomUri", +    "inReplyToAtomUri": "ostatus:inReplyToAtomUri", +    "conversation": "ostatus:conversation", +    "toot": "http://joinmastodon.org/ns#", +    "Emoji": "toot:Emoji" +  }], +  "id": "http://mastodon.example.org/users/admin", +  "type": "Person", +  "following": "http://mastodon.example.org/users/admin/following", +  "followers": "http://mastodon.example.org/users/admin/followers", +  "inbox": "http://mastodon.example.org/users/admin/inbox", +  "outbox": "http://mastodon.example.org/users/admin/outbox", +  "preferredUsername": "admin", +  "name": null, +  "summary": "\u003cp\u003e\u003c/p\u003e", +  "url": "http://mastodon.example.org/@admin", +  "manuallyApprovesFollowers": false, +  "publicKey": { +    "id": "http://mastodon.example.org/users/admin#main-key", +    "owner": "http://mastodon.example.org/users/admin", +    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtc4Tir+3ADhSNF6VKrtW\nOU32T01w7V0yshmQei38YyiVwVvFu8XOP6ACchkdxbJ+C9mZud8qWaRJKVbFTMUG\nNX4+6Q+FobyuKrwN7CEwhDALZtaN2IPbaPd6uG1B7QhWorrY+yFa8f2TBM3BxnUy\nI4T+bMIZIEYG7KtljCBoQXuTQmGtuffO0UwJksidg2ffCF5Q+K//JfQagJ3UzrR+\nZXbKMJdAw4bCVJYs4Z5EhHYBwQWiXCyMGTd7BGlmMkY6Av7ZqHKC/owp3/0EWDNz\nNqF09Wcpr3y3e8nA10X40MJqp/wR+1xtxp+YGbq/Cj5hZGBG7etFOmIpVBrDOhry\nBwIDAQAB\n-----END PUBLIC KEY-----\n" +  }, +  "attachment": [{ +      "type": "PropertyValue", +      "name": "foo", +      "value": "bar" +    }, +    { +      "type": "PropertyValue", +      "name": "foo1", +      "value": "bar1" +    } +  ], +  "endpoints": { +    "sharedInbox": "http://mastodon.example.org/inbox" +  }, +  "icon": { +    "type": "Image", +    "mediaType": "image/jpeg", +    "url": "https://cdn.niu.moe/accounts/avatars/000/033/323/original/fd7f8ae0b3ffedc9.jpeg" +  }, +  "image": { +    "type": "Image", +    "mediaType": "image/png", +    "url": "https://cdn.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" +  } +} diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 060b91e29..05ec09ec1 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -509,6 +509,42 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert user.bio == "<p>Some bio</p>"      end +    test "it works with custom profile fields" do +      {:ok, activity} = +        "test/fixtures/mastodon-post-activity.json" +        |> File.read!() +        |> Poison.decode!() +        |> Transmogrifier.handle_incoming() + +      user = User.get_cached_by_ap_id(activity.actor) + +      assert user.info.source_data["attachment"] == [ +               %{"name" => "foo", "type" => "PropertyValue", "value" => "bar"}, +               %{"name" => "foo1", "type" => "PropertyValue", "value" => "bar1"} +             ] + +      update_data = File.read!("test/fixtures/mastodon-update.json") |> Poison.decode!() + +      object = +        update_data["object"] +        |> Map.put("actor", user.ap_id) +        |> Map.put("id", user.ap_id) + +      update_data = +        update_data +        |> Map.put("actor", user.ap_id) +        |> Map.put("object", object) + +      {:ok, _update_activity} = Transmogrifier.handle_incoming(update_data) + +      user = User.get_cached_by_ap_id(user.ap_id) + +      assert user.info.source_data["attachment"] == [ +               %{"name" => "foo", "type" => "PropertyValue", "value" => "updated"}, +               %{"name" => "foo1", "type" => "PropertyValue", "value" => "updated"} +             ] +    end +      test "it works for incoming update activities which lock the account" do        data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!()  | 
