common_api_utils_test.exs 3.24 KB
Newer Older
kaniini's avatar
kaniini committed
1
2
3
4
# Pleroma: A lightweight social networking server
# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

5
6
defmodule Pleroma.Web.CommonAPI.UtilsTest do
  alias Pleroma.Web.CommonAPI.Utils
7
  alias Pleroma.Web.Endpoint
8
  alias Pleroma.Builders.{UserBuilder}
lain's avatar
lain committed
9
10
11
  use Pleroma.DataCase

  test "it adds attachment links to a given text and attachment set" do
lain's avatar
lain committed
12
13
    name =
      "Sakura%20Mana%20%E2%80%93%20Turned%20on%20by%20a%20Senior%20OL%20with%20a%20Temptating%20Tight%20Skirt-s%20Full%20Hipline%20and%20Panty%20Shot-%20Beautiful%20Thick%20Thighs-%20and%20Erotic%20Ass-%20-2015-%20--%20Oppaitime%208-28-2017%206-50-33%20PM.png"
lain's avatar
lain committed
14

lain's avatar
lain committed
15
    attachment = %{
lain's avatar
lain committed
16
      "url" => [%{"href" => name}]
lain's avatar
lain committed
17
18
19
20
    }

    res = Utils.add_attachments("", [attachment])

lain's avatar
lain committed
21
22
    assert res ==
             "<br><a href=\"#{name}\" class='attachment'>Sakura Mana – Turned on by a Se…</a>"
lain's avatar
lain committed
23
  end
24
25

  describe "it confirms the password given is the current users password" do
Syldexia's avatar
Syldexia committed
26
    test "incorrect password given" do
27
28
      {:ok, user} = UserBuilder.insert()

Syldexia's avatar
Syldexia committed
29
      assert Utils.confirm_current_password(user, "") == {:error, "Invalid password."}
30
31
    end

Syldexia's avatar
Syldexia committed
32
    test "correct password given" do
33
      {:ok, user} = UserBuilder.insert()
Syldexia's avatar
Syldexia committed
34
      assert Utils.confirm_current_password(user, "test") == {:ok, user}
35
36
    end
  end
37
38
39
40
41
42
43

  test "parses emoji from name and bio" do
    {:ok, user} = UserBuilder.insert(%{name: ":karjalanpiirakka:", bio: ":perkele:"})

    expected = [
      %{
        "type" => "Emoji",
eal's avatar
eal committed
44
        "icon" => %{"type" => "Image", "url" => "#{Endpoint.url()}/finmoji/128px/perkele-128.png"},
45
46
47
48
        "name" => ":perkele:"
      },
      %{
        "type" => "Emoji",
kaniini's avatar
kaniini committed
49
50
51
52
        "icon" => %{
          "type" => "Image",
          "url" => "#{Endpoint.url()}/finmoji/128px/karjalanpiirakka-128.png"
        },
53
54
55
56
57
58
        "name" => ":karjalanpiirakka:"
      }
    ]

    assert expected == Utils.emoji_from_profile(user)
  end
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

  describe "format_input/4" do
    test "works for bare text/plain" do
      text = "hello world!"
      expected = "hello world!"

      output = Utils.format_input(text, [], [], "text/plain")

      assert output == expected

      text = "hello world!\n\nsecond paragraph!"
      expected = "hello world!<br><br>second paragraph!"

      output = Utils.format_input(text, [], [], "text/plain")

      assert output == expected
    end

    test "works for bare text/html" do
      text = "<p>hello world!</p>"
      expected = "<p>hello world!</p>"

      output = Utils.format_input(text, [], [], "text/html")

      assert output == expected

      text = "<p>hello world!</p>\n\n<p>second paragraph</p>"
      expected = "<p>hello world!</p>\n\n<p>second paragraph</p>"

      output = Utils.format_input(text, [], [], "text/html")

      assert output == expected
    end

    test "works for bare text/markdown" do
      text = "**hello world**"
      expected = "<p><strong>hello world</strong></p>\n"

      output = Utils.format_input(text, [], [], "text/markdown")

      assert output == expected

      text = "**hello world**\n\n*another paragraph*"
      expected = "<p><strong>hello world</strong></p>\n<p><em>another paragraph</em></p>\n"

      output = Utils.format_input(text, [], [], "text/markdown")

      assert output == expected
    end
  end
lain's avatar
lain committed
109
end