Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
ec34de0c
Commit
ec34de0c
authored
Dec 02, 2018
by
Maksim
Browse files
WebSub fix test
parent
3ce16e5a
Changes
3
Hide whitespace changes
Inline
Side-by-side
config/test.exs
View file @
ec34de0c
...
...
@@ -25,7 +25,6 @@
config
:pleroma
,
:websub
,
Pleroma
.
Web
.
WebsubMock
config
:pleroma
,
:ostatus
,
Pleroma
.
Web
.
OStatusMock
config
:pleroma
,
:httpoison
,
HTTPoisonMock
config
:tesla
,
adapter:
Tesla
.
Mock
try
do
...
...
lib/pleroma/http/connection.ex
View file @
ec34de0c
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
...
...
test/web/websub/websub_test.exs
View file @
ec34de0c
...
...
@@ -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 @@ test "a verification of a request that is accepted" do
assert
String
.
to_integer
(
seconds
)
>
0
{
:ok
,
%
HTTPoison
.
Response
{
status
_code
:
200
,
%
Tesla
.
Env
{
status:
200
,
body:
challenge
}}
end
...
...
@@ -41,8 +53,8 @@ test "a verification of a request that doesn't return 200" do
getter
=
fn
_path
,
_headers
,
_options
->
{
:ok
,
%
HTTPoison
.
Response
{
status
_code
:
500
,
%
Tesla
.
Env
{
status:
500
,
body:
""
}}
end
...
...
@@ -113,12 +125,7 @@ test "initiate a subscription for a given user and topic" 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 @@ test "calls the hub, requests topic" 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 @@ test "it renews subscriptions that have less than a day of time left" 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 @@ test "it renews subscriptions that have less than a day of time left" 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"
})
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment