aboutsummaryrefslogtreecommitdiff
path: root/test/web
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-09-30 11:17:30 +0000
committerkaniini <ariadne@dereferenced.org>2019-09-30 11:17:30 +0000
commit0e356cc8003665ec05a42e39b3a5c47e31ec384c (patch)
treec2f83eaa0d80c88097762ad883c763e28b443b30 /test/web
parent74d8fadf3745a4b4203c2cead35b741554ccc439 (diff)
parentb7f27a4f584e54b13d0b7c1b288ad3e7bffcf95a (diff)
downloadpleroma-0e356cc8003665ec05a42e39b3a5c47e31ec384c.tar.gz
Merge branch 'split-masto-api/reports' into 'develop'
Extract report actions from `MastodonAPIController` to `ReportController` See merge request pleroma/pleroma!1744
Diffstat (limited to 'test/web')
-rw-r--r--test/web/mastodon_api/controllers/report_controller_test.exs88
-rw-r--r--test/web/mastodon_api/mastodon_api_controller_test.exs79
2 files changed, 88 insertions, 79 deletions
diff --git a/test/web/mastodon_api/controllers/report_controller_test.exs b/test/web/mastodon_api/controllers/report_controller_test.exs
new file mode 100644
index 000000000..fcece40fb
--- /dev/null
+++ b/test/web/mastodon_api/controllers/report_controller_test.exs
@@ -0,0 +1,88 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do
+ use Pleroma.Web.ConnCase
+
+ alias Pleroma.Web.CommonAPI
+
+ import Pleroma.Factory
+
+ setup do
+ reporter = insert(:user)
+ target_user = insert(:user)
+
+ {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"})
+
+ [reporter: reporter, target_user: target_user, activity: activity]
+ end
+
+ test "submit a basic report", %{conn: conn, reporter: reporter, target_user: target_user} do
+ assert %{"action_taken" => false, "id" => _} =
+ conn
+ |> assign(:user, reporter)
+ |> post("/api/v1/reports", %{"account_id" => target_user.id})
+ |> json_response(200)
+ end
+
+ test "submit a report with statuses and comment", %{
+ conn: conn,
+ reporter: reporter,
+ target_user: target_user,
+ activity: activity
+ } do
+ assert %{"action_taken" => false, "id" => _} =
+ conn
+ |> assign(:user, reporter)
+ |> post("/api/v1/reports", %{
+ "account_id" => target_user.id,
+ "status_ids" => [activity.id],
+ "comment" => "bad status!",
+ "forward" => "false"
+ })
+ |> json_response(200)
+ end
+
+ test "account_id is required", %{
+ conn: conn,
+ reporter: reporter,
+ activity: activity
+ } do
+ assert %{"error" => "Valid `account_id` required"} =
+ conn
+ |> assign(:user, reporter)
+ |> post("/api/v1/reports", %{"status_ids" => [activity.id]})
+ |> json_response(400)
+ end
+
+ test "comment must be up to the size specified in the config", %{
+ conn: conn,
+ reporter: reporter,
+ target_user: target_user
+ } do
+ max_size = Pleroma.Config.get([:instance, :max_report_comment_size], 1000)
+ comment = String.pad_trailing("a", max_size + 1, "a")
+
+ error = %{"error" => "Comment must be up to #{max_size} characters"}
+
+ assert ^error =
+ conn
+ |> assign(:user, reporter)
+ |> post("/api/v1/reports", %{"account_id" => target_user.id, "comment" => comment})
+ |> json_response(400)
+ end
+
+ test "returns error when account is not exist", %{
+ conn: conn,
+ reporter: reporter,
+ activity: activity
+ } do
+ conn =
+ conn
+ |> assign(:user, reporter)
+ |> post("/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"})
+
+ assert json_response(conn, 400) == %{"error" => "Account not found"}
+ end
+end
diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs
index 8080d3941..46b035770 100644
--- a/test/web/mastodon_api/mastodon_api_controller_test.exs
+++ b/test/web/mastodon_api/mastodon_api_controller_test.exs
@@ -1317,85 +1317,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
end
end
- describe "reports" do
- setup do
- reporter = insert(:user)
- target_user = insert(:user)
-
- {:ok, activity} = CommonAPI.post(target_user, %{"status" => "foobar"})
-
- [reporter: reporter, target_user: target_user, activity: activity]
- end
-
- test "submit a basic report", %{conn: conn, reporter: reporter, target_user: target_user} do
- assert %{"action_taken" => false, "id" => _} =
- conn
- |> assign(:user, reporter)
- |> post("/api/v1/reports", %{"account_id" => target_user.id})
- |> json_response(200)
- end
-
- test "submit a report with statuses and comment", %{
- conn: conn,
- reporter: reporter,
- target_user: target_user,
- activity: activity
- } do
- assert %{"action_taken" => false, "id" => _} =
- conn
- |> assign(:user, reporter)
- |> post("/api/v1/reports", %{
- "account_id" => target_user.id,
- "status_ids" => [activity.id],
- "comment" => "bad status!",
- "forward" => "false"
- })
- |> json_response(200)
- end
-
- test "account_id is required", %{
- conn: conn,
- reporter: reporter,
- activity: activity
- } do
- assert %{"error" => "Valid `account_id` required"} =
- conn
- |> assign(:user, reporter)
- |> post("/api/v1/reports", %{"status_ids" => [activity.id]})
- |> json_response(400)
- end
-
- test "comment must be up to the size specified in the config", %{
- conn: conn,
- reporter: reporter,
- target_user: target_user
- } do
- max_size = Config.get([:instance, :max_report_comment_size], 1000)
- comment = String.pad_trailing("a", max_size + 1, "a")
-
- error = %{"error" => "Comment must be up to #{max_size} characters"}
-
- assert ^error =
- conn
- |> assign(:user, reporter)
- |> post("/api/v1/reports", %{"account_id" => target_user.id, "comment" => comment})
- |> json_response(400)
- end
-
- test "returns error when account is not exist", %{
- conn: conn,
- reporter: reporter,
- activity: activity
- } do
- conn =
- conn
- |> assign(:user, reporter)
- |> post("/api/v1/reports", %{"status_ids" => [activity.id], "account_id" => "foo"})
-
- assert json_response(conn, 400) == %{"error" => "Account not found"}
- end
- end
-
describe "link headers" do
test "preserves parameters in link headers", %{conn: conn} do
user = insert(:user)