Merge remote-tracking branch 'upstream/develop' into admin-create-users
[akkoma] / test / web / websub / websub_controller_test.exs
index 0aa0fdff742ce4c7c5015049621d89ceda215854..f79745d58ce340dd0691beafe84bf5f033e05d34 100644 (file)
@@ -1,9 +1,13 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Web.Websub.WebsubControllerTest do
   use Pleroma.Web.ConnCase
   import Pleroma.Factory
-  alias Pleroma.Web.Websub.WebsubClientSubscription
-  alias Pleroma.{Repo, Activity}
+  alias Pleroma.Repo
   alias Pleroma.Web.Websub
+  alias Pleroma.Web.Websub.WebsubClientSubscription
 
   test "websub subscription request", %{conn: conn} do
     user = insert(:user)
@@ -18,8 +22,9 @@ defmodule Pleroma.Web.Websub.WebsubControllerTest do
       "hub.lease_seconds": "100"
     }
 
-    conn = conn
-    |> post(path, data)
+    conn =
+      conn
+      |> post(path, data)
 
     assert response(conn, 202) == "Accepted"
   end
@@ -34,50 +39,44 @@ defmodule Pleroma.Web.Websub.WebsubControllerTest do
       "hub.lease_seconds" => "100"
     }
 
-    conn = conn
-    |> get("/push/subscriptions/#{websub.id}", params)
+    conn =
+      conn
+      |> get("/push/subscriptions/#{websub.id}", params)
 
     websub = Repo.get(WebsubClientSubscription, websub.id)
 
     assert response(conn, 200) == "some challenge"
     assert websub.state == "accepted"
-    assert_in_delta NaiveDateTime.diff(websub.valid_until, NaiveDateTime.utc_now), 100, 5
-  end
-
-  test "handles incoming feed updates", %{conn: conn} do
-    websub = insert(:websub_client_subscription)
-    doc = "some stuff"
-    signature = Websub.sign(websub.secret, doc)
-
-    conn = conn
-    |> put_req_header("x-hub-signature", "sha1=" <> signature)
-    |> put_req_header("content-type", "application/atom+xml")
-    |> post("/push/subscriptions/#{websub.id}", doc)
-
-    assert response(conn, 200) == "OK"
-
-    assert length(Repo.all(Activity)) == 1
+    assert_in_delta NaiveDateTime.diff(websub.valid_until, NaiveDateTime.utc_now()), 100, 5
   end
 
-  test "rejects incoming feed updates with the wrong signature", %{conn: conn} do
-    websub = insert(:websub_client_subscription)
-    doc = "some stuff"
-    signature = Websub.sign("wrong secret", doc)
-
-    conn = conn
-    |> put_req_header("x-hub-signature", "sha1=" <> signature)
-    |> put_req_header("content-type", "application/atom+xml")
-    |> post("/push/subscriptions/#{websub.id}", doc)
-
-    assert response(conn, 500) == "Error"
-
-    assert length(Repo.all(Activity)) == 0
-  end
-end
-
-defmodule Pleroma.Web.OStatusMock do
-  import Pleroma.Factory
-  def handle_incoming(_doc) do
-    insert(:note_activity)
+  describe "websub_incoming" do
+    test "accepts incoming feed updates", %{conn: conn} do
+      websub = insert(:websub_client_subscription)
+      doc = "some stuff"
+      signature = Websub.sign(websub.secret, doc)
+
+      conn =
+        conn
+        |> put_req_header("x-hub-signature", "sha1=" <> signature)
+        |> put_req_header("content-type", "application/atom+xml")
+        |> post("/push/subscriptions/#{websub.id}", doc)
+
+      assert response(conn, 200) == "OK"
+    end
+
+    test "rejects incoming feed updates with the wrong signature", %{conn: conn} do
+      websub = insert(:websub_client_subscription)
+      doc = "some stuff"
+      signature = Websub.sign("wrong secret", doc)
+
+      conn =
+        conn
+        |> put_req_header("x-hub-signature", "sha1=" <> signature)
+        |> put_req_header("content-type", "application/atom+xml")
+        |> post("/push/subscriptions/#{websub.id}", doc)
+
+      assert response(conn, 500) == "Error"
+    end
   end
 end