--- /dev/null
+{
+ "@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="
+ }
+}
--- /dev/null
+{
+ "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"
+ }
+ ]
+}
defmodule Pleroma.FormatterTest do
alias Pleroma.Formatter
+ alias Pleroma.User
use Pleroma.DataCase
import Pleroma.Factory
assert expected_text == Formatter.finalize({subs, text})
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
text = "@o hi"
o = insert(:user, %{nickname: "o"})
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
{:ok,
%Response{