logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

no_placeholder_text_policy_test.exs (2277B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicyTest do
  5. use Pleroma.DataCase, async: true
  6. alias Pleroma.Web.ActivityPub.MRF
  7. alias Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicy
  8. test "it clears content object" do
  9. message = %{
  10. "type" => "Create",
  11. "object" => %{"content" => ".", "attachment" => "image"}
  12. }
  13. assert {:ok, res} = NoPlaceholderTextPolicy.filter(message)
  14. assert res["object"]["content"] == ""
  15. message = put_in(message, ["object", "content"], "<p>.</p>")
  16. assert {:ok, res} = NoPlaceholderTextPolicy.filter(message)
  17. assert res["object"]["content"] == ""
  18. end
  19. test "history-aware" do
  20. message = %{
  21. "type" => "Create",
  22. "object" => %{
  23. "content" => ".",
  24. "attachment" => "image",
  25. "formerRepresentations" => %{
  26. "orderedItems" => [%{"content" => ".", "attachment" => "image"}]
  27. }
  28. }
  29. }
  30. assert {:ok, res} = MRF.filter_one(NoPlaceholderTextPolicy, message)
  31. assert %{
  32. "content" => "",
  33. "formerRepresentations" => %{"orderedItems" => [%{"content" => ""}]}
  34. } = res["object"]
  35. end
  36. test "works with Updates" do
  37. message = %{
  38. "type" => "Update",
  39. "object" => %{
  40. "content" => ".",
  41. "attachment" => "image",
  42. "formerRepresentations" => %{
  43. "orderedItems" => [%{"content" => ".", "attachment" => "image"}]
  44. }
  45. }
  46. }
  47. assert {:ok, res} = MRF.filter_one(NoPlaceholderTextPolicy, message)
  48. assert %{
  49. "content" => "",
  50. "formerRepresentations" => %{"orderedItems" => [%{"content" => ""}]}
  51. } = res["object"]
  52. end
  53. @messages [
  54. %{
  55. "type" => "Create",
  56. "object" => %{"content" => "test", "attachment" => "image"}
  57. },
  58. %{"type" => "Create", "object" => %{"content" => "."}},
  59. %{"type" => "Create", "object" => %{"content" => "<p>.</p>"}}
  60. ]
  61. test "it skips filter" do
  62. Enum.each(@messages, fn message ->
  63. assert {:ok, res} = NoPlaceholderTextPolicy.filter(message)
  64. assert res == message
  65. end)
  66. end
  67. end