aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2020-03-02 21:43:18 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2020-03-02 21:43:18 +0300
commitb4367125e9afc92ac27ff12552775f8e765140f1 (patch)
treee0c35f2e1d869ca63ddec06dd7a5ff9b0d574df3 /test
parent99a6c660a909d8c74289015b3f69357196256112 (diff)
downloadpleroma-b4367125e9afc92ac27ff12552775f8e765140f1.tar.gz
[#1560] Added tests for non-federating instance bahaviour to ActivityPubControllerTest.
Diffstat (limited to 'test')
-rw-r--r--test/plugs/oauth_plug_test.exs2
-rw-r--r--test/web/activity_pub/activity_pub_controller_test.exs91
2 files changed, 88 insertions, 5 deletions
diff --git a/test/plugs/oauth_plug_test.exs b/test/plugs/oauth_plug_test.exs
index dea11cdb0..0eef27c1f 100644
--- a/test/plugs/oauth_plug_test.exs
+++ b/test/plugs/oauth_plug_test.exs
@@ -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]}")
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs
index ba2ce1dd9..af0417406 100644
--- a/test/web/activity_pub/activity_pub_controller_test.exs
+++ b/test/web/activity_pub/activity_pub_controller_test.exs
@@ -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