@@ -0,0 +1,54 @@ | |||||
{ | |||||
"@context": [ | |||||
"https://www.w3.org/ns/activitystreams", | |||||
"https://w3id.org/security/v1" | |||||
], | |||||
"type": "Person", | |||||
"id": "https://osada.macgirvin.com/channel/mike", | |||||
"preferredUsername": "mike", | |||||
"name": "Mike Macgirvin (Osada)", | |||||
"updated": "2018-08-29T03:09:11Z", | |||||
"icon": { | |||||
"type": "Image", | |||||
"mediaType": "image/jpeg", | |||||
"updated": "2018-08-29T03:10:13Z", | |||||
"url": "https://osada.macgirvin.com/photo/profile/l/2", | |||||
"height": 300, | |||||
"width": 300 | |||||
}, | |||||
"url": [ | |||||
{ | |||||
"type": "Link", | |||||
"mediaType": "text/html", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
}, | |||||
{ | |||||
"type": "Link", | |||||
"mediaType": "text/x-zot+json", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
} | |||||
], | |||||
"inbox": "https://osada.macgirvin.com/inbox/mike", | |||||
"outbox": "https://osada.macgirvin.com/outbox/mike", | |||||
"followers": "https://osada.macgirvin.com/followers/mike", | |||||
"following": "https://osada.macgirvin.com/following/mike", | |||||
"endpoints": { | |||||
"sharedInbox": "https://osada.macgirvin.com/inbox" | |||||
}, | |||||
"publicKey": { | |||||
"id": "https://osada.macgirvin.com/channel/mike/public_key_pem", | |||||
"owner": "https://osada.macgirvin.com/channel/mike", | |||||
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAskSyK2VwBNKbzZl9XNJk\nvxU5AAilmRArMmmKSzphdHaVBHakeafUfixvqNrQ/oX2srJvJKcghNmEMrJ6MJ7r\npeEndVOo7pcP4PwVjtnC06p3J711q5tBehqM25BfCLCrB2YqWF6c8zk3CPN3Na21\n8k5s4cO95N/rGN+Po0XFAX/HjKjlpgNpKRDrpxmXxTU8NZfAqeQGJ5oiMBZI9vVB\n+eU7t1L6F5/XWuUCeP4OMrG8oZX822AREba8rknS6DpkWGES0Rx2eNOyYTf6ue75\nI6Ek6rlO+da5wMWr+3BvYMq4JMIwTHzAO+ZqqJPFpzKSiVuAWb2DOX/MDFecVWJE\ntF/R60lONxe4e/00MPCoDdqkLKdwROsk1yGL7z4Zk6jOWFEhIcWy/d2Ya5CpPvS3\nu4wNN4jkYAjra+8TiloRELhV4gpcEk8nkyNwLXOhYm7zQ5sIc5rfXoIrFzALB86W\nG05Nnqg+77zZIaTZpD9qekYlaEt+0OVtt9TTIeTiudQ983l6mfKwZYymrzymH1dL\nVgxBRYo+Z53QOSLiSKELfTBZxEoP1pBw6RiOHXydmJ/39hGgc2YAY/5ADwW2F2yb\nJ7+gxG6bPJ3ikDLYcD4CB5iJQdnTcDsFt3jyHAT6wOCzFAYPbHUqtzHfUM30dZBn\nnJhQF8udPLcXLaj6GW75JacCAwEAAQ==\n-----END PUBLIC KEY-----\n" | |||||
}, | |||||
"signature": { | |||||
"@context": [ | |||||
"https://www.w3.org/ns/activitystreams", | |||||
"https://w3id.org/security/v1" | |||||
], | |||||
"type": "RsaSignature2017", | |||||
"nonce": "bd60167a764a936788d9538531284dfacc258daae0297bc34a83bce136dedb5d", | |||||
"creator": "https://osada.macgirvin.com/channel/mike/public_key_pem", | |||||
"created": "2018-10-17T07:16:28Z", | |||||
"signatureValue": "WbfFVIPImkd3yNu6brz0CvZaeV242rwAbH0vy8DM4vfnXCxLr5Uv/Wj9gwP+tbooTxGaahAKBeqlGkQp8RLEo37LATrKMRLA/0V6DeeV+C5ORWR9B4WxyWiD3s/9Wf+KesFMtktNLAcMZ5PfnOS/xNYerhnpkp/gWPxtkglmLIWJv+w18A5zZ01JCxsO4QljHbhYaEUPHUfQ97abrkLECeam+FThVwdO6BFCtbjoNXHfzjpSZL/oKyBpi5/fpnqMqOLOQPs5WgBBZJvjEYYkQcoPTyxYI5NGpNbzIjGHPQNuACnOelH16A7L+q4swLWDIaEFeXQ2/5bmqVKZDZZ6usNP4QyTVszwd8jqo27qcDTNibXDUTsTdKpNQvM/3UncBuzuzmUV3FczhtGshIU1/pRVZiQycpVqPlGLvXhP/yZCe+1siyqDd+3uMaS2vkHTObSl5r+VYof+c+TcjrZXHSWnQTg8/X3zkoBWosrQ93VZcwjzMxQoARYv6rphbOoTz7RPmGAXYUt3/PDWkqDlmQDwCpLNNkJo1EidyefZBdD9HXQpCBO0ZU0NHb0JmPvg/+zU0krxlv70bm3RHA/maBETVjroIWzt7EwQEg5pL2hVnvSBG+1wF3BtRVe77etkPOHxLnYYIcAMLlVKCcgDd89DPIziQyruvkx1busHI08=" | |||||
} | |||||
} |
@@ -0,0 +1,53 @@ | |||||
{ | |||||
"subject": "acct:mike@osada.macgirvin.com", | |||||
"aliases": [ | |||||
"https://osada.macgirvin.com/channel/mike", | |||||
"https://osada.macgirvin.com/~mike", | |||||
"https://osada.macgirvin.com/@mike" | |||||
], | |||||
"properties": { | |||||
"http://webfinger.net/ns/name": "Mike Macgirvin (Osada)", | |||||
"http://xmlns.com/foaf/0.1/name": "Mike Macgirvin (Osada)", | |||||
"https://w3id.org/security/v1#publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAskSyK2VwBNKbzZl9XNJk\nvxU5AAilmRArMmmKSzphdHaVBHakeafUfixvqNrQ/oX2srJvJKcghNmEMrJ6MJ7r\npeEndVOo7pcP4PwVjtnC06p3J711q5tBehqM25BfCLCrB2YqWF6c8zk3CPN3Na21\n8k5s4cO95N/rGN+Po0XFAX/HjKjlpgNpKRDrpxmXxTU8NZfAqeQGJ5oiMBZI9vVB\n+eU7t1L6F5/XWuUCeP4OMrG8oZX822AREba8rknS6DpkWGES0Rx2eNOyYTf6ue75\nI6Ek6rlO+da5wMWr+3BvYMq4JMIwTHzAO+ZqqJPFpzKSiVuAWb2DOX/MDFecVWJE\ntF/R60lONxe4e/00MPCoDdqkLKdwROsk1yGL7z4Zk6jOWFEhIcWy/d2Ya5CpPvS3\nu4wNN4jkYAjra+8TiloRELhV4gpcEk8nkyNwLXOhYm7zQ5sIc5rfXoIrFzALB86W\nG05Nnqg+77zZIaTZpD9qekYlaEt+0OVtt9TTIeTiudQ983l6mfKwZYymrzymH1dL\nVgxBRYo+Z53QOSLiSKELfTBZxEoP1pBw6RiOHXydmJ/39hGgc2YAY/5ADwW2F2yb\nJ7+gxG6bPJ3ikDLYcD4CB5iJQdnTcDsFt3jyHAT6wOCzFAYPbHUqtzHfUM30dZBn\nnJhQF8udPLcXLaj6GW75JacCAwEAAQ==\n-----END PUBLIC KEY-----\n", | |||||
"http://purl.org/zot/federation": "zot6,activitypub" | |||||
}, | |||||
"links": [ | |||||
{ | |||||
"rel": "http://webfinger.net/rel/avatar", | |||||
"type": "image/jpeg", | |||||
"href": "https://osada.macgirvin.com/photo/profile/l/2" | |||||
}, | |||||
{ | |||||
"rel": "http://webfinger.net/rel/blog", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
}, | |||||
{ | |||||
"rel": "http://openid.net/specs/connect/1.0/issuer", | |||||
"href": "https://osada.macgirvin.com" | |||||
}, | |||||
{ | |||||
"rel": "http://purl.org/zot/protocol/6.0", | |||||
"type": "application/x-zot+json", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
}, | |||||
{ | |||||
"rel": "http://purl.org/openwebauth/v1", | |||||
"type": "application/x-zot+json", | |||||
"href": "https://osada.macgirvin.com/owa" | |||||
}, | |||||
{ | |||||
"rel": "http://ostatus.org/schema/1.0/subscribe", | |||||
"template": "https://osada.macgirvin.com/follow?url={uri}" | |||||
}, | |||||
{ | |||||
"rel": "self", | |||||
"type": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
}, | |||||
{ | |||||
"rel": "self", | |||||
"type": "application/activity+json", | |||||
"href": "https://osada.macgirvin.com/channel/mike" | |||||
} | |||||
] | |||||
} |
@@ -1,5 +1,6 @@ | |||||
defmodule Pleroma.FormatterTest do | defmodule Pleroma.FormatterTest do | ||||
alias Pleroma.Formatter | alias Pleroma.Formatter | ||||
alias Pleroma.User | |||||
use Pleroma.DataCase | use Pleroma.DataCase | ||||
import Pleroma.Factory | import Pleroma.Factory | ||||
@@ -131,6 +132,24 @@ defmodule Pleroma.FormatterTest do | |||||
assert expected_text == Formatter.finalize({subs, text}) | assert expected_text == Formatter.finalize({subs, text}) | ||||
end | end | ||||
test "gives a replacement for user links when the user is using Osada" do | |||||
mike = User.get_or_fetch("mike@osada.macgirvin.com") | |||||
text = "@mike@osada.macgirvin.com test" | |||||
mentions = Formatter.parse_mentions(text) | |||||
{subs, text} = Formatter.add_user_links({[], text}, mentions) | |||||
assert length(subs) == 1 | |||||
Enum.each(subs, fn {uuid, _} -> assert String.contains?(text, uuid) end) | |||||
expected_text = | |||||
"<span><a class='mention' href='#{mike.ap_id}'>@<span>mike</span></a></span> test" | |||||
assert expected_text == Formatter.finalize({subs, text}) | |||||
end | |||||
test "gives a replacement for single-character local nicknames" do | test "gives a replacement for single-character local nicknames" do | ||||
text = "@o hi" | text = "@o hi" | ||||
o = insert(:user, %{nickname: "o"}) | o = insert(:user, %{nickname: "o"}) | ||||
@@ -3,6 +3,27 @@ defmodule HTTPoisonMock do | |||||
def get(url, body \\ [], headers \\ []) | def get(url, body \\ [], headers \\ []) | ||||
def get("https://osada.macgirvin.com/channel/mike", _, _) do | |||||
{:ok, | |||||
%Response{ | |||||
status_code: 200, | |||||
body: | |||||
File.read!("test/fixtures/httpoison_mock/https___osada.macgirvin.com_channel_mike.json") | |||||
}} | |||||
end | |||||
def get( | |||||
"https://osada.macgirvin.com/.well-known/webfinger?resource=acct:mike@osada.macgirvin.com", | |||||
_, | |||||
_ | |||||
) do | |||||
{:ok, | |||||
%Response{ | |||||
status_code: 200, | |||||
body: File.read!("test/fixtures/httpoison_mock/mike@osada.macgirvin.com.json") | |||||
}} | |||||
end | |||||
def get("https://info.pleroma.site/activity.json", _, _) do | def get("https://info.pleroma.site/activity.json", _, _) do | ||||
{:ok, | {:ok, | ||||
%Response{ | %Response{ | ||||