summaryrefslogtreecommitdiffstats
path: root/tests/activities/models
diff options
context:
space:
mode:
Diffstat (limited to 'tests/activities/models')
-rw-r--r--tests/activities/models/test_hashtag.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/activities/models/test_hashtag.py b/tests/activities/models/test_hashtag.py
new file mode 100644
index 0000000..32742d6
--- /dev/null
+++ b/tests/activities/models/test_hashtag.py
@@ -0,0 +1,41 @@
+from activities.models import Hashtag
+
+
+def test_hashtag_from_content():
+ assert Hashtag.hashtags_from_content("#hashtag") == ["hashtag"]
+ assert Hashtag.hashtags_from_content("a#hashtag") == []
+ assert Hashtag.hashtags_from_content("Text #with #hashtag in it") == [
+ "hashtag",
+ "with",
+ ]
+ assert Hashtag.hashtags_from_content("#hashtag.") == ["hashtag"]
+ assert Hashtag.hashtags_from_content("More text\n#one # two ##three #hashtag;") == [
+ "hashtag",
+ "one",
+ "three",
+ ]
+
+
+def test_linkify_hashtag():
+ linkify = Hashtag.linkify_hashtags
+
+ assert linkify("# hashtag") == "# hashtag"
+ assert (
+ linkify('<a href="/url/with#anchor">Text</a>')
+ == '<a href="/url/with#anchor">Text</a>'
+ )
+ assert (
+ linkify("#HashTag") == '<a class="hashtag" href="/tags/hashtag/">#HashTag</a>'
+ )
+ assert (
+ linkify(
+ """A longer text #bigContent
+with #tags, linebreaks, and
+maybe a few <a href="https://awesome.sauce/about#spicy">links</a>
+#allTheTags #AllTheTags #ALLTHETAGS"""
+ )
+ == """A longer text <a class="hashtag" href="/tags/bigcontent/">#bigContent</a>
+with <a class="hashtag" href="/tags/tags/">#tags</a>, linebreaks, and
+maybe a few <a href="https://awesome.sauce/about#spicy">links</a>
+<a class="hashtag" href="/tags/allthetags/">#allTheTags</a> <a class="hashtag" href="/tags/allthetags/">#AllTheTags</a> <a class="hashtag" href="/tags/allthetags/">#ALLTHETAGS</a>"""
+ )