2017-05-17 16:00:09 +00:00
defmodule Pleroma.FormatterTest do
alias Pleroma.Formatter
use Pleroma.DataCase
2017-06-14 11:58:56 +00:00
import Pleroma.Factory
2017-05-17 16:00:09 +00:00
describe " .linkify " do
test " turning urls into links " do
2017-06-18 11:29:30 +00:00
text = " Hey, check out https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2 # blabla. "
2017-05-17 16:00:09 +00:00
2017-06-18 11:29:30 +00:00
expected = " Hey, check out <a href='https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2 # blabla'>https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2 # blabla</a>. "
2017-05-17 16:00:09 +00:00
assert Formatter . linkify ( text ) == expected
end
end
describe " .parse_tags " do
test " parses tags in the text " do
2017-06-18 17:04:46 +00:00
text = " Here's a # Test. Maybe these are # working or not. What about # 漢字? And # は。 "
2017-05-17 16:00:09 +00:00
expected = [
2017-06-18 17:04:46 +00:00
{ " # Test " , " test " } ,
2017-05-17 16:00:09 +00:00
{ " # working " , " working " } ,
{ " # 漢字 " , " 漢字 " } ,
{ " # は " , " は " }
]
assert Formatter . parse_tags ( text ) == expected
end
end
2017-06-14 11:58:56 +00:00
test " it can parse mentions and return the relevant users " do
text = " @gsimg According to @archaeme, that is @daggsy. Also hello @archaeme@archae.me "
gsimg = insert ( :user , %{ nickname : " gsimg " } )
archaeme = insert ( :user , %{ nickname : " archaeme " } )
archaeme_remote = insert ( :user , %{ nickname : " archaeme@archae.me " } )
expected_result = [
{ " @gsimg " , gsimg } ,
{ " @archaeme " , archaeme } ,
{ " @archaeme@archae.me " , archaeme_remote } ,
]
assert Formatter . parse_mentions ( text ) == expected_result
end
2017-06-19 15:51:43 +00:00
test " it adds cool emoji " do
text = " I love :moominmamma: "
expected_result = " I love <img height='32px' width='32px' alt='moominmamma' title='moominmamma' src=' #{ Pleroma.Web.Endpoint . static_url } /finmoji/128px/moominmamma-128.png' /> "
assert Formatter . finmojifiy ( text ) == expected_result
end
2017-05-17 16:00:09 +00:00
end