aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2018-12-02 16:58:38 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2018-12-04 14:03:32 +0300
commitec34de0c1fd58942c8ecefddef92696750b70420 (patch)
treedc8d86a675c16ebb0b9904827c71d775c6716cdc
parent3ce16e5a56be01686a03f40931f666ac164df6e8 (diff)
downloadpleroma-ec34de0c1fd58942c8ecefddef92696750b70420.tar.gz
WebSub fix test
-rw-r--r--config/test.exs1
-rw-r--r--lib/pleroma/http/connection.ex3
-rw-r--r--test/web/websub/websub_test.exs31
3 files changed, 22 insertions, 13 deletions
diff --git a/config/test.exs b/config/test.exs
index e259a9c65..6f6227c20 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -25,7 +25,6 @@ config :pbkdf2_elixir, rounds: 1
config :pleroma, :websub, Pleroma.Web.WebsubMock
config :pleroma, :ostatus, Pleroma.Web.OStatusMock
-config :pleroma, :httpoison, HTTPoisonMock
config :tesla, adapter: Tesla.Mock
try do
diff --git a/lib/pleroma/http/connection.ex b/lib/pleroma/http/connection.ex
index 12667b663..f64d4e18e 100644
--- a/lib/pleroma/http/connection.ex
+++ b/lib/pleroma/http/connection.ex
@@ -1,5 +1,6 @@
defmodule Pleroma.HTTP.Connection do
@hackney_options [pool: :default]
+ @adapter Application.get_env(:tesla, :adapter)
@doc """
Configure a client connection
@@ -10,7 +11,7 @@ defmodule Pleroma.HTTP.Connection do
"""
@spec new(Keyword.t()) :: Tesla.Env.client()
def new(opts \\ []) do
- Tesla.client([], {Tesla.Adapter.Hackney, hackney_options(opts)})
+ Tesla.client([], {@adapter, hackney_options(opts)})
end
# fetch Hackney options
diff --git a/test/web/websub/websub_test.exs b/test/web/websub/websub_test.exs
index da7bc9112..0b8bfda2d 100644
--- a/test/web/websub/websub_test.exs
+++ b/test/web/websub/websub_test.exs
@@ -10,6 +10,18 @@ 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
+ %{method: :get, url: "https://mastodon.social/users/lambadalambda.atom"} ->
+ %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.atom")}
+ %{method: :post, url: "http://example.org/needs_refresh"} ->
+ %Tesla.Env{status: 200, body: ""}
+ end
+
+ :ok
+ end
test "a verification of a request that is accepted" do
sub = insert(:websub_subscription)
@@ -26,8 +38,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 +53,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 +125,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 +165,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)
@@ -209,6 +216,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 +224,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"
})