Fix enforcement of character limits
authorMark Felder <feld@FreeBSD.org>
Tue, 10 Mar 2020 18:08:00 +0000 (13:08 -0500)
committerrinpatch <rinpatch@sdf.org>
Sun, 15 Mar 2020 13:58:13 +0000 (16:58 +0300)
lib/pleroma/web/common_api/utils.ex
test/web/common_api/common_api_test.exs

index 8746273c465c673ec782e732b7dbfa9b8fe84867..348fdedf10be2228a59b2cba6c65cf8840890b04 100644 (file)
@@ -591,7 +591,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
     limit = Pleroma.Config.get([:instance, :limit])
     length = String.length(full_payload)
 
-    if length < limit do
+    if length <= limit do
       :ok
     else
       {:error, dgettext("errors", "The status is over the character limit")}
index 299d968db748078cb2c2f9a62239d248d22c9258..b80523160eca66bdf4f85d05c3cf44874a332396 100644 (file)
@@ -202,13 +202,15 @@ defmodule Pleroma.Web.CommonAPITest do
                CommonAPI.post(user, %{"status" => ""})
     end
 
-    test "it returns error when character limit is exceeded" do
+    test "it validates character limits are correctly enforced" do
       Pleroma.Config.put([:instance, :limit], 5)
 
       user = insert(:user)
 
       assert {:error, "The status is over the character limit"} =
                CommonAPI.post(user, %{"status" => "foobar"})
+
+      assert {:ok, activity} = CommonAPI.post(user, %{"status" => "12345"})
     end
 
     test "it can handle activities that expire" do