Adds tests for breaking tag and mention links after text is converted from markdown to html
This commit is contained in:
parent
88530c02d6
commit
590a10af33
|
@ -284,6 +284,34 @@ test "it correctly parses angry face D:< with mention" do
|
||||||
|
|
||||||
assert {^expected_text, ^expected_mentions, []} = Formatter.linkify(text)
|
assert {^expected_text, ^expected_mentions, []} = Formatter.linkify(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "correctly parses mentions in html" do
|
||||||
|
text = "<p>@lain hello</p>"
|
||||||
|
lain = insert(:user, %{nickname: "lain"})
|
||||||
|
|
||||||
|
{text, mentions, []} = Formatter.linkify(text)
|
||||||
|
|
||||||
|
assert length(mentions) == 1
|
||||||
|
|
||||||
|
expected_text =
|
||||||
|
~s(<p><span class="h-card"><a class="u-url mention" data-user="#{lain.id}" href="#{lain.ap_id}" rel="ugc">@<span>lain</span></a></span> hello</p>)
|
||||||
|
|
||||||
|
assert expected_text == text
|
||||||
|
end
|
||||||
|
|
||||||
|
test "correctly parses mentions on the last line of html" do
|
||||||
|
text = "<p>Hello</p><p>@lain</p>"
|
||||||
|
lain = insert(:user, %{nickname: "lain"})
|
||||||
|
|
||||||
|
{text, mentions, []} = Formatter.linkify(text)
|
||||||
|
|
||||||
|
assert length(mentions) == 1
|
||||||
|
|
||||||
|
expected_text =
|
||||||
|
~s(<p>Hello</p><p><span class="h-card"><a class="u-url mention" data-user="#{lain.id}" href="#{lain.ap_id}" rel="ugc">@<span>lain</span></a></p></span>)
|
||||||
|
|
||||||
|
assert expected_text == text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".parse_tags" do
|
describe ".parse_tags" do
|
||||||
|
@ -299,6 +327,56 @@ test "parses tags in the text" do
|
||||||
|
|
||||||
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "parses tags in html" do
|
||||||
|
text = "<p>This is a #test</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#test", "test"},
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mulitple tags in html" do
|
||||||
|
text = "<p>#tag1 #tag2 #tag3 #tag4</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#tag1", "tag1"},
|
||||||
|
{"#tag2", "tag2"},
|
||||||
|
{"#tag3", "tag3"},
|
||||||
|
{"#tag4", "tag4"},
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses tags on the last line of html" do
|
||||||
|
text = "<p>This is a</p><p>#test</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#test", "test"},
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "parses mulitple tags on mulitple lines in html" do
|
||||||
|
text = "<p>testing...</p><p>#tag1 #tag2 #tag3 #tag4</p><p>paragraph</p><p>#tag5 #tag6 #tag7 #tag8</p>"
|
||||||
|
|
||||||
|
expected_tags = [
|
||||||
|
{"#tag1", "tag1"},
|
||||||
|
{"#tag2", "tag2"},
|
||||||
|
{"#tag3", "tag3"},
|
||||||
|
{"#tag4", "tag4"},
|
||||||
|
{"#tag5", "tag5"},
|
||||||
|
{"#tag6", "tag6"},
|
||||||
|
{"#tag7", "tag7"},
|
||||||
|
{"#tag8", "tag8"},
|
||||||
|
]
|
||||||
|
|
||||||
|
assert {_text, [], ^expected_tags} = Formatter.linkify(text)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
test "it escapes HTML in plain text" do
|
test "it escapes HTML in plain text" do
|
||||||
|
|
Loading…
Reference in New Issue