summaryrefslogtreecommitdiffstats
path: root/tests/activities/models/test_post.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/activities/models/test_post.py')
-rw-r--r--tests/activities/models/test_post.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/activities/models/test_post.py b/tests/activities/models/test_post.py
index 5c7fca2..fb2e7a6 100644
--- a/tests/activities/models/test_post.py
+++ b/tests/activities/models/test_post.py
@@ -29,3 +29,35 @@ def test_fetch_post(httpx_mock: HTTPXMock):
assert post.author.actor_uri == "https://example.com/test-actor"
# Fetch again with a DB hit
assert Post.by_object_uri("https://example.com/test-post").id == post.id
+
+
+@pytest.mark.django_db
+def test_linkify_mentions(identity, remote_identity):
+ """
+ Tests that we can linkify post mentions properly
+ """
+ # Test a short username without a mention (presumed local)
+ post = Post.objects.create(
+ content="<p>Hello @test</p>",
+ author=identity,
+ local=True,
+ )
+ assert post.safe_content == '<p>Hello <a href="/@test/">@test</a></p>'
+ # Test a full username
+ post = Post.objects.create(
+ content="<p>@test@example.com, welcome!</p>",
+ author=identity,
+ local=True,
+ )
+ assert (
+ post.safe_content
+ == '<p><a href="/@test@example.com/">@test@example.com</a>, welcome!</p>'
+ )
+ # Test a short username with a mention resolving to remote
+ post = Post.objects.create(
+ content="<p>Hello @test</p>",
+ author=identity,
+ local=True,
+ )
+ post.mentions.add(remote_identity)
+ assert post.safe_content == '<p>Hello <a href="/@test@remote.test/">@test</a></p>'