logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 182a106746cf0c622edd6063dc5f7acbffb5dacd
parent: d056f7f722b5e734ac53d8b55a0228174d64cc9f
Author: feld <feld@feld.me>
Date:   Thu, 13 Feb 2020 14:03:59 +0000

Merge branch 'fix/status_expires_in_validation' into 'develop'

Fix `status.expires_in` validation

See merge request pleroma/pleroma!2203

Diffstat:

Mlib/pleroma/activity_expiration.ex2+-
Mtest/web/mastodon_api/controllers/status_controller_test.exs26++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/activity_expiration.ex b/lib/pleroma/activity_expiration.ex @@ -62,6 +62,6 @@ defmodule Pleroma.ActivityExpiration do def expires_late_enough?(scheduled_at) do now = NaiveDateTime.utc_now() diff = NaiveDateTime.diff(scheduled_at, now, :millisecond) - diff >= @min_activity_lifetime + diff > @min_activity_lifetime end end diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -121,6 +121,32 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do NaiveDateTime.to_iso8601(expiration.scheduled_at) end + test "it fails to create a status if `expires_in` is less or equal than an hour", %{ + conn: conn + } do + # 1 hour + expires_in = 60 * 60 + + assert %{"error" => "Expiry date is too soon"} = + conn + |> post("api/v1/statuses", %{ + "status" => "oolong", + "expires_in" => expires_in + }) + |> json_response(422) + + # 30 minutes + expires_in = 30 * 60 + + assert %{"error" => "Expiry date is too soon"} = + conn + |> post("api/v1/statuses", %{ + "status" => "oolong", + "expires_in" => expires_in + }) + |> json_response(422) + end + test "posting an undefined status with an attachment", %{user: user, conn: conn} do file = %Plug.Upload{ content_type: "image/jpg",