tests: add legal boilerplate
[akkoma] / test / web / websub / websub_test.exs
index da7bc9112ec8131bf18c1911f2832da4faeca1a6..9751d161db225e1393de260d786e013d4d2e8d9a 100644 (file)
@@ -1,8 +1,6 @@
-defmodule Pleroma.Web.WebsubMock do
-  def verify(sub) do
-    {:ok, sub}
-  end
-end
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.WebsubTest do
   use Pleroma.DataCase
@@ -10,6 +8,12 @@ defmodule Pleroma.Web.WebsubTest do
   alias Pleroma.Web.Websub.{WebsubServerSubscription, WebsubClientSubscription}
   import Pleroma.Factory
   alias Pleroma.Web.Router.Helpers
+  import Tesla.Mock
+
+  setup do
+    mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
+    :ok
+  end
 
   test "a verification of a request that is accepted" do
     sub = insert(:websub_subscription)
@@ -26,8 +30,8 @@ defmodule Pleroma.Web.WebsubTest do
       assert String.to_integer(seconds) > 0
 
       {:ok,
-       %HTTPoison.Response{
-         status_code: 200,
+       %Tesla.Env{
+         status: 200,
          body: challenge
        }}
     end
@@ -41,8 +45,8 @@ defmodule Pleroma.Web.WebsubTest do
 
     getter = fn _path, _headers, _options ->
       {:ok,
-       %HTTPoison.Response{
-         status_code: 500,
+       %Tesla.Env{
+         status: 500,
          body: ""
        }}
     end
@@ -113,12 +117,7 @@ defmodule Pleroma.Web.WebsubTest do
   test "discovers the hub and canonical url" do
     topic = "https://mastodon.social/users/lambadalambda.atom"
 
-    getter = fn ^topic ->
-      doc = File.read!("test/fixtures/lambadalambda.atom")
-      {:ok, %{status_code: 200, body: doc}}
-    end
-
-    {:ok, discovered} = Websub.gather_feed_data(topic, getter)
+    {:ok, discovered} = Websub.gather_feed_data(topic)
 
     expected = %{
       "hub" => "https://mastodon.social/api/push",
@@ -158,7 +157,7 @@ defmodule Pleroma.Web.WebsubTest do
                  websub.id
                )
 
-      {:ok, %{status_code: 202}}
+      {:ok, %{status: 202}}
     end
 
     task = Task.async(fn -> Websub.request_subscription(websub, poster) end)
@@ -177,7 +176,7 @@ defmodule Pleroma.Web.WebsubTest do
     websub = insert(:websub_client_subscription, %{hub: hub, topic: topic})
 
     poster = fn ^hub, {:form, _data}, _headers ->
-      {:ok, %{status_code: 202}}
+      {:ok, %{status: 202}}
     end
 
     {:error, websub} = Websub.request_subscription(websub, poster, 1000)
@@ -186,7 +185,7 @@ defmodule Pleroma.Web.WebsubTest do
     websub = insert(:websub_client_subscription, %{hub: hub, topic: topic})
 
     poster = fn ^hub, {:form, _data}, _headers ->
-      {:ok, %{status_code: 400}}
+      {:ok, %{status: 400}}
     end
 
     {:error, websub} = Websub.request_subscription(websub, poster, 1000)
@@ -209,6 +208,7 @@ defmodule Pleroma.Web.WebsubTest do
         insert(:websub_client_subscription, %{
           valid_until: NaiveDateTime.add(now, 2 * day),
           topic: "http://example.org/still_good",
+          hub: "http://example.org/still_good",
           state: "accepted"
         })
 
@@ -216,6 +216,7 @@ defmodule Pleroma.Web.WebsubTest do
         insert(:websub_client_subscription, %{
           valid_until: NaiveDateTime.add(now, day - 100),
           topic: "http://example.org/needs_refresh",
+          hub: "http://example.org/needs_refresh",
           state: "accepted"
         })