mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
This commit adds support for message link (#**stream>topic@message_id**) syntax in the backend `topic_link_util` module.
102 lines
4.4 KiB
Python
102 lines
4.4 KiB
Python
from zerver.lib.test_classes import ZulipTestCase
|
|
from zerver.lib.topic_link_util import (
|
|
get_message_link_syntax,
|
|
get_stream_link_syntax,
|
|
get_stream_topic_link_syntax,
|
|
)
|
|
|
|
|
|
class TestTopicLinkUtil(ZulipTestCase):
|
|
def test_stream_link_syntax(self) -> None:
|
|
sweden_id = self.make_stream("Sweden").id
|
|
money_id = self.make_stream("$$MONEY$$").id
|
|
md_id = self.make_stream("Markdown [md]").id
|
|
|
|
self.assertEqual(get_stream_link_syntax(sweden_id, "Sweden"), "#**Sweden**")
|
|
|
|
self.assertEqual(
|
|
get_stream_link_syntax(money_id, "$$MONEY$$"),
|
|
f"[#$$MONEY$$](#narrow/channel/{money_id}-.24.24MONEY.24.24)",
|
|
)
|
|
|
|
self.assertEqual(
|
|
get_stream_link_syntax(md_id, "Markdown [md]"),
|
|
f"[#Markdown [md]](#narrow/channel/{md_id}-Markdown-.5Bmd.5D)",
|
|
)
|
|
|
|
def test_stream_topic_link_syntax(self) -> None:
|
|
sweden_id = self.make_stream("Sweden").id
|
|
money_id = self.make_stream("$$MONEY$$").id
|
|
denmark_id = self.get_stream_id("Denmark")
|
|
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "topic"), "#**Sweden>topic**"
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "test `test` test"),
|
|
f"[#Sweden > test `test` test](#narrow/channel/{sweden_id}-Sweden/topic/test.20.60test.60.20test)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(denmark_id, "Denmark", "test `test` test`s"),
|
|
f"[#Denmark > test `test` test`s](#narrow/channel/{denmark_id}-Denmark/topic/test.20.60test.60.20test.60s)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "error due to *"),
|
|
f"[#Sweden > error due to *](#narrow/channel/{sweden_id}-Sweden/topic/error.20due.20to.20*)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "*asterisk"),
|
|
f"[#Sweden > *asterisk](#narrow/channel/{sweden_id}-Sweden/topic/*asterisk)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "greaterthan>"),
|
|
f"[#Sweden > greaterthan>](#narrow/channel/{sweden_id}-Sweden/topic/greaterthan.3E)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(money_id, "$$MONEY$$", "dollar"),
|
|
f"[#$$MONEY$$ > dollar](#narrow/channel/{money_id}-.24.24MONEY.24.24/topic/dollar)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "swe$$dish"),
|
|
f"[#Sweden > swe$$dish](#narrow/channel/{sweden_id}-Sweden/topic/swe.24.24dish)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "&ab"),
|
|
f"[#Sweden > &ab](#narrow/channel/{sweden_id}-Sweden/topic/.26ab)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "&ab]"),
|
|
f"[#Sweden > &ab]](#narrow/channel/{sweden_id}-Sweden/topic/.26ab.5D)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", "&a[b"),
|
|
f"[#Sweden > &a[b](#narrow/channel/{sweden_id}-Sweden/topic/.26a.5Bb)",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sweden", ""),
|
|
"#**Sweden>**",
|
|
)
|
|
self.assertEqual(
|
|
get_stream_topic_link_syntax(sweden_id, "Sw*den", ""),
|
|
f"[#Sw*den > general chat](#narrow/channel/{sweden_id}-Sw*den/topic/)",
|
|
)
|
|
|
|
def test_message_link_syntax(self) -> None:
|
|
sweden_id = self.make_stream("Sweden").id
|
|
self.assertEqual(
|
|
get_message_link_syntax(sweden_id, "Sweden", "topic", 123),
|
|
"#**Sweden>topic@123**",
|
|
)
|
|
self.assertEqual(
|
|
get_message_link_syntax(sweden_id, "Sweden", "", 123),
|
|
"#**Sweden>@123**",
|
|
)
|
|
self.assertEqual(
|
|
get_message_link_syntax(sweden_id, "Sw*den", "topic", 123),
|
|
f"[#Sw*den > topic @ 💬](#narrow/channel/{sweden_id}-Sw*den/topic/topic/near/123)",
|
|
)
|
|
self.assertEqual(
|
|
get_message_link_syntax(sweden_id, "Sw*den", "", 123),
|
|
f"[#Sw*den > general chat @ 💬](#narrow/channel/{sweden_id}-Sw*den/topic//near/123)",
|
|
)
|