formatting
[akkoma] / test / web / common_api / common_api_test.exs
1 defmodule Pleroma.Web.CommonAPI.Test do
2 use Pleroma.DataCase
3 alias Pleroma.Web.CommonAPI
4 alias Pleroma.{User, Object}
5
6 import Pleroma.Factory
7
8 test "it de-duplicates tags" do
9 user = insert(:user)
10 {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu #2HU"})
11
12 object = Object.normalize(activity.data["object"])
13
14 assert object.data["tag"] == ["2hu"]
15 end
16
17 test "it adds emoji when updating profiles" do
18 user = insert(:user, %{name: ":karjalanpiirakka:"})
19
20 CommonAPI.update(user)
21 user = User.get_cached_by_ap_id(user.ap_id)
22 [karjalanpiirakka] = user.info.source_data["tag"]
23
24 assert karjalanpiirakka["name"] == ":karjalanpiirakka:"
25 end
26
27 describe "posting" do
28 test "it filters out obviously bad tags when accepting a post as HTML" do
29 user = insert(:user)
30
31 post = "<p><b>2hu</b></p><script>alert('xss')</script>"
32
33 {:ok, activity} =
34 CommonAPI.post(user, %{
35 "status" => post,
36 "content_type" => "text/html"
37 })
38
39 object = Object.normalize(activity.data["object"])
40
41 assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
42 end
43
44 test "it filters out obviously bad tags when accepting a post as Markdown" do
45 user = insert(:user)
46
47 post = "<p><b>2hu</b></p><script>alert('xss')</script>"
48
49 {:ok, activity} =
50 CommonAPI.post(user, %{
51 "status" => post,
52 "content_type" => "text/markdown"
53 })
54
55 object = Object.normalize(activity.data["object"])
56
57 assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
58 end
59 end
60 end