forked from AkkomaGang/akkoma
[#1560] Added tests for non-federating instance bahaviour to ActivityPubControllerTest.
This commit is contained in:
parent
99a6c660a9
commit
b4367125e9
4 changed files with 90 additions and 7 deletions
|
@ -180,7 +180,7 @@ Post here request with grant_type=refresh_token to obtain new access token. Retu
|
||||||
## Account Registration
|
## Account Registration
|
||||||
`POST /api/v1/accounts`
|
`POST /api/v1/accounts`
|
||||||
|
|
||||||
Has theses additionnal parameters (which are the same as in Pleroma-API):
|
Has theses additional parameters (which are the same as in Pleroma-API):
|
||||||
* `fullname`: optional
|
* `fullname`: optional
|
||||||
* `bio`: optional
|
* `bio`: optional
|
||||||
* `captcha_solution`: optional, contains provider-specific captcha solution,
|
* `captcha_solution`: optional, contains provider-specific captcha solution,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Pleroma Clients
|
# Pleroma Clients
|
||||||
Note: Additionnal clients may be working but theses are officially supporting Pleroma.
|
Note: Additional clients may be working but theses are officially supporting Pleroma.
|
||||||
Feel free to contact us to be added to this list!
|
Feel free to contact us to be added to this list!
|
||||||
|
|
||||||
## Desktop
|
## Desktop
|
||||||
|
|
|
@ -38,7 +38,7 @@ test "with valid token(downcase), it assigns the user", %{conn: conn} = opts do
|
||||||
assert conn.assigns[:user] == opts[:user]
|
assert conn.assigns[:user] == opts[:user]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with valid token(downcase) in url parameters, it assings the user", opts do
|
test "with valid token(downcase) in url parameters, it assigns the user", opts do
|
||||||
conn =
|
conn =
|
||||||
:get
|
:get
|
||||||
|> build_conn("/?access_token=#{opts[:token]}")
|
|> build_conn("/?access_token=#{opts[:token]}")
|
||||||
|
|
|
@ -25,9 +25,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
||||||
clear_config_all([:instance, :federating],
|
clear_config_all([:instance, :federating]) do
|
||||||
do: Pleroma.Config.put([:instance, :federating], true)
|
Pleroma.Config.put([:instance, :federating], true)
|
||||||
)
|
end
|
||||||
|
|
||||||
describe "/relay" do
|
describe "/relay" do
|
||||||
clear_config([:instance, :allow_relay])
|
clear_config([:instance, :allow_relay])
|
||||||
|
@ -1008,7 +1008,7 @@ test "it tracks a signed activity fetch when the json is cached", %{conn: conn}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "Additionnal ActivityPub C2S endpoints" do
|
describe "Additional ActivityPub C2S endpoints" do
|
||||||
test "/api/ap/whoami", %{conn: conn} do
|
test "/api/ap/whoami", %{conn: conn} do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
|
|
||||||
|
@ -1047,4 +1047,87 @@ test "uploadMedia", %{conn: conn} do
|
||||||
assert object["actor"] == user.ap_id
|
assert object["actor"] == user.ap_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "when instance is not federating," do
|
||||||
|
clear_config([:instance, :federating]) do
|
||||||
|
Pleroma.Config.put([:instance, :federating], false)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns 404 for GET routes", %{conn: conn} do
|
||||||
|
user = insert(:user)
|
||||||
|
conn = put_req_header(conn, "accept", "application/json")
|
||||||
|
|
||||||
|
get_uris = [
|
||||||
|
"/users/#{user.nickname}",
|
||||||
|
"/users/#{user.nickname}/outbox",
|
||||||
|
"/users/#{user.nickname}/inbox?page=true",
|
||||||
|
"/users/#{user.nickname}/followers",
|
||||||
|
"/users/#{user.nickname}/following",
|
||||||
|
"/internal/fetch",
|
||||||
|
"/relay",
|
||||||
|
"/relay/following",
|
||||||
|
"/relay/followers",
|
||||||
|
"/api/ap/whoami"
|
||||||
|
]
|
||||||
|
|
||||||
|
for get_uri <- get_uris do
|
||||||
|
conn
|
||||||
|
|> get(get_uri)
|
||||||
|
|> json_response(404)
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get(get_uri)
|
||||||
|
|> json_response(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns 404 for activity-related POST routes", %{conn: conn} do
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> assign(:valid_signature, true)
|
||||||
|
|> put_req_header("content-type", "application/activity+json")
|
||||||
|
|
||||||
|
post_activity_data =
|
||||||
|
"test/fixtures/mastodon-post-activity.json"
|
||||||
|
|> File.read!()
|
||||||
|
|> Poison.decode!()
|
||||||
|
|
||||||
|
post_activity_uris = [
|
||||||
|
"/inbox",
|
||||||
|
"/relay/inbox",
|
||||||
|
"/users/#{user.nickname}/inbox",
|
||||||
|
"/users/#{user.nickname}/outbox"
|
||||||
|
]
|
||||||
|
|
||||||
|
for post_activity_uri <- post_activity_uris do
|
||||||
|
conn
|
||||||
|
|> post(post_activity_uri, post_activity_data)
|
||||||
|
|> json_response(404)
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> post(post_activity_uri, post_activity_data)
|
||||||
|
|> json_response(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns 404 for media upload attempt", %{conn: conn} do
|
||||||
|
user = insert(:user)
|
||||||
|
desc = "Description of the image"
|
||||||
|
|
||||||
|
image = %Plug.Upload{
|
||||||
|
content_type: "image/jpg",
|
||||||
|
path: Path.absname("test/fixtures/image.jpg"),
|
||||||
|
filename: "an_image.jpg"
|
||||||
|
}
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> post("/api/ap/upload_media", %{"file" => image, "description" => desc})
|
||||||
|
|> json_response(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue