5987111e5f115e6aae3622a22b23eba2af2d366d
[akkoma] / test / web / mongooseim / mongoose_im_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.MongooseIMController do
6 use Pleroma.Web.ConnCase
7 import Pleroma.Factory
8
9 test "/user_exists", %{conn: conn} do
10 _user = insert(:user, nickname: "lain")
11 _remote_user = insert(:user, nickname: "alice", local: false)
12
13 res =
14 conn
15 |> get(mongoose_im_path(conn, :user_exists), user: "lain")
16 |> json_response(200)
17
18 assert res == true
19
20 res =
21 conn
22 |> get(mongoose_im_path(conn, :user_exists), user: "alice")
23 |> json_response(404)
24
25 assert res == false
26
27 res =
28 conn
29 |> get(mongoose_im_path(conn, :user_exists), user: "bob")
30 |> json_response(404)
31
32 assert res == false
33 end
34
35 test "/check_password", %{conn: conn} do
36 user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("cool"))
37 _deactivated_user = insert(:user, nickname: "konata", local: false, deactivated: true)
38
39 res =
40 conn
41 |> get(mongoose_im_path(conn, :check_password), user: user.nickname, pass: "cool")
42 |> json_response(200)
43
44 assert res == true
45
46 res =
47 conn
48 |> get(mongoose_im_path(conn, :check_password), user: user.nickname, pass: "uncool")
49 |> json_response(403)
50
51 assert res == false
52
53 res =
54 conn
55 |> get(mongoose_im_path(conn, :check_password), user: "konata", pass: "1337")
56 |> json_response(404)
57
58 assert res == false
59
60
61 res =
62 conn
63 |> get(mongoose_im_path(conn, :check_password), user: "nobody", pass: "cool")
64 |> json_response(404)
65
66 assert res == false
67 end
68 end