summaryrefslogtreecommitdiff
path: root/test/web/websub/websub_controller_test.exs
blob: 584db0a1957fae45852958a0ab619980f8e1074b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
defmodule Pleroma.Web.Websub.WebsubControllerTest do
  use Pleroma.Web.ConnCase
  import Pleroma.Factory
  alias Pleroma.Repo
  alias Pleroma.Web.Websub.WebsubServerSubscription

  test "websub subscription request", %{conn: conn} do
    user = insert(:user)

    path = Pleroma.Web.OStatus.pubsub_path(user)

    data = %{
      "hub.callback": "http://example.org/sub",
      "hub.mode": "subscription",
      "hub.topic": Pleroma.Web.OStatus.feed_path(user),
      "hub.secret": "a random secret",
      "hub.lease_seconds": "100"
    }

    conn = conn
    |> post(path, data)

    assert response(conn, 202) == "Accepted"
    subscription = Repo.one!(WebsubServerSubscription)
    assert subscription.topic == Pleroma.Web.OStatus.feed_path(user)
    assert subscription.state == "requested"
    assert subscription.secret == "a random secret"
    assert subscription.callback == "http://example.org/sub"
    assert subscription.valid_until == NaiveDateTime.add(subscription.inserted_at, 100)
  end
end