[#1560] Added tests for non-federating instance bahaviour to ActivityPubControllerTest.

This commit is contained in:
Ivan Tashkinov 2020-03-02 21:43:18 +03:00
parent 99a6c660a9
commit b4367125e9
4 changed files with 90 additions and 7 deletions

View File

@ -180,7 +180,7 @@ Post here request with grant_type=refresh_token to obtain new access token. Retu
## Account Registration
`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
* `bio`: optional
* `captcha_solution`: optional, contains provider-specific captcha solution,

View File

@ -1,5 +1,5 @@
# 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!
## Desktop

View File

@ -38,7 +38,7 @@ defmodule Pleroma.Plugs.OAuthPlugTest do
assert conn.assigns[:user] == opts[:user]
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 =
:get
|> build_conn("/?access_token=#{opts[:token]}")

View File

@ -25,9 +25,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
:ok
end
clear_config_all([:instance, :federating],
do: Pleroma.Config.put([:instance, :federating], true)
)
clear_config_all([:instance, :federating]) do
Pleroma.Config.put([:instance, :federating], true)
end
describe "/relay" do
clear_config([:instance, :allow_relay])
@ -1008,7 +1008,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
end
end
describe "Additionnal ActivityPub C2S endpoints" do
describe "Additional ActivityPub C2S endpoints" do
test "/api/ap/whoami", %{conn: conn} do
user = insert(:user)
@ -1047,4 +1047,87 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
assert object["actor"] == user.ap_id
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