diff options
author | Sachin Joshi <satchin.joshi@gmail.com> | 2019-06-23 03:25:50 +0000 |
---|---|---|
committer | Sachin Joshi <satchin.joshi@gmail.com> | 2019-06-23 03:25:50 +0000 |
commit | a0c65bbd6c708b555f457bf24ec07d2d41c3fe4a (patch) | |
tree | deb176014e3c1dcb87fba2fe1108e276c2100148 /test/html_test.exs | |
parent | 1452a96ad6cfd7d250e3f7c10805994cc92016a7 (diff) | |
parent | 72f365df07e2eba75d3339629b01e5a8913513e6 (diff) | |
download | pleroma-a0c65bbd6c708b555f457bf24ec07d2d41c3fe4a.tar.gz pleroma-a0c65bbd6c708b555f457bf24ec07d2d41c3fe4a.zip |
Merge branch 'develop' into 'remove-avatar-header'
# Conflicts:
# CHANGELOG.md
Diffstat (limited to 'test/html_test.exs')
-rw-r--r-- | test/html_test.exs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/html_test.exs b/test/html_test.exs index 08738276e..b8906c46a 100644 --- a/test/html_test.exs +++ b/test/html_test.exs @@ -4,8 +4,12 @@ defmodule Pleroma.HTMLTest do alias Pleroma.HTML + alias Pleroma.Object + alias Pleroma.Web.CommonAPI use Pleroma.DataCase + import Pleroma.Factory + @html_sample """ <b>this is in bold</b> <p>this is a paragraph</p> @@ -160,4 +164,69 @@ defmodule Pleroma.HTMLTest do ) end end + + describe "extract_first_external_url" do + test "extracts the url" do + user = insert(:user) + + {:ok, activity} = + CommonAPI.post(user, %{ + "status" => + "I think I just found the best github repo https://github.com/komeiji-satori/Dress" + }) + + object = Object.normalize(activity) + {:ok, url} = HTML.extract_first_external_url(object, object.data["content"]) + assert url == "https://github.com/komeiji-satori/Dress" + end + + test "skips mentions" do + user = insert(:user) + other_user = insert(:user) + + {:ok, activity} = + CommonAPI.post(user, %{ + "status" => + "@#{other_user.nickname} install misskey! https://github.com/syuilo/misskey/blob/develop/docs/setup.en.md" + }) + + object = Object.normalize(activity) + {:ok, url} = HTML.extract_first_external_url(object, object.data["content"]) + + assert url == "https://github.com/syuilo/misskey/blob/develop/docs/setup.en.md" + + refute url == other_user.ap_id + end + + test "skips hashtags" do + user = insert(:user) + + {:ok, activity} = + CommonAPI.post(user, %{ + "status" => + "#cofe https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140" + }) + + object = Object.normalize(activity) + {:ok, url} = HTML.extract_first_external_url(object, object.data["content"]) + + assert url == "https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140" + end + + test "skips microformats hashtags" do + user = insert(:user) + + {:ok, activity} = + CommonAPI.post(user, %{ + "status" => + "<a href=\"https://pleroma.gov/tags/cofe\" rel=\"tag\">#cofe</a> https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140", + "content_type" => "text/html" + }) + + object = Object.normalize(activity) + {:ok, url} = HTML.extract_first_external_url(object, object.data["content"]) + + assert url == "https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72255140" + end + end end |