diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/pleroma/web/federator_test.exs | 2 | ||||
| -rw-r--r-- | test/pleroma/web/feed/user_controller_test.exs | 44 | ||||
| -rw-r--r-- | test/pleroma/web/mastodon_api/controllers/account_controller_test.exs | 33 | ||||
| -rw-r--r-- | test/pleroma/web/metadata/utils_test.exs | 2 | ||||
| -rw-r--r-- | test/pleroma/workers/receiver_worker_test.exs | 29 | 
5 files changed, 104 insertions, 6 deletions
| diff --git a/test/pleroma/web/federator_test.exs b/test/pleroma/web/federator_test.exs index 41d1c5d5e..1ffe6aae1 100644 --- a/test/pleroma/web/federator_test.exs +++ b/test/pleroma/web/federator_test.exs @@ -133,7 +133,7 @@ defmodule Pleroma.Web.FederatorTest do        assert {:ok, _activity} = ObanHelpers.perform(job)        assert {:ok, job} = Federator.incoming_ap_doc(params) -      assert {:error, :already_present} = ObanHelpers.perform(job) +      assert {:cancel, :already_present} = ObanHelpers.perform(job)      end      test "rejects incoming AP docs with incorrect origin" do diff --git a/test/pleroma/web/feed/user_controller_test.exs b/test/pleroma/web/feed/user_controller_test.exs index de32d3d4b..d3c4108de 100644 --- a/test/pleroma/web/feed/user_controller_test.exs +++ b/test/pleroma/web/feed/user_controller_test.exs @@ -57,9 +57,23 @@ defmodule Pleroma.Web.Feed.UserControllerTest do          )        note_activity2 = insert(:note_activity, note: note2) + +      note3 = +        insert(:note, +          user: user, +          data: %{ +            "content" => "This note tests whether HTML entities are truncated properly", +            "summary" => "Won't, didn't fail", +            "inReplyTo" => note_activity2.id +          } +        ) + +      _note_activity3 = insert(:note_activity, note: note3)        object = Object.normalize(note_activity, fetch: false) -      [user: user, object: object, max_id: note_activity2.id] +      encoded_title = FeedView.activity_title(note3.data) + +      [user: user, object: object, max_id: note_activity2.id, encoded_title: encoded_title]      end      test "gets an atom feed", %{conn: conn, user: user, object: object, max_id: max_id} do @@ -74,7 +88,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do          |> SweetXml.parse()          |> SweetXml.xpath(~x"//entry/title/text()"l) -      assert activity_titles == ['2hu', '2hu & as'] +      assert activity_titles == ['Won\'t, didn\'...', '2hu', '2hu & as']        assert resp =~ FeedView.escape(object.data["content"])        assert resp =~ FeedView.escape(object.data["summary"])        assert resp =~ FeedView.escape(object.data["context"]) @@ -105,7 +119,7 @@ defmodule Pleroma.Web.Feed.UserControllerTest do          |> SweetXml.parse()          |> SweetXml.xpath(~x"//item/title/text()"l) -      assert activity_titles == ['2hu', '2hu & as'] +      assert activity_titles == ['Won\'t, didn\'...', '2hu', '2hu & as']        assert resp =~ FeedView.escape(object.data["content"])        assert resp =~ FeedView.escape(object.data["summary"])        assert resp =~ FeedView.escape(object.data["context"]) @@ -176,6 +190,30 @@ defmodule Pleroma.Web.Feed.UserControllerTest do        |> get("/users/#{user.nickname}/feed.rss")        |> response(200)      end + +    test "does not mangle HTML entities midway", %{ +      conn: conn, +      user: user, +      object: object, +      encoded_title: encoded_title +    } do +      resp = +        conn +        |> put_req_header("accept", "application/atom+xml") +        |> get(user_feed_path(conn, :feed, user.nickname)) +        |> response(200) + +      activity_titles = +        resp +        |> SweetXml.parse() +        |> SweetXml.xpath(~x"//entry/title/text()"l) + +      assert activity_titles == ['Won\'t, didn\'...', '2hu', '2hu & as'] +      assert resp =~ FeedView.escape(object.data["content"]) +      assert resp =~ FeedView.escape(object.data["summary"]) +      assert resp =~ FeedView.escape(object.data["context"]) +      assert resp =~ encoded_title +    end    end    # Note: see ActivityPubControllerTest for JSON format tests diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs index 958b7f76f..128e60b0a 100644 --- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs @@ -2031,6 +2031,39 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      assert [%{"id" => ^id1}] = result    end +  test "list of blocks with with_relationships parameter" do +    %{user: user, conn: conn} = oauth_access(["read:blocks"]) +    %{id: id1} = other_user1 = insert(:user) +    %{id: id2} = other_user2 = insert(:user) +    %{id: id3} = other_user3 = insert(:user) + +    {:ok, _, _} = User.follow(other_user1, user) +    {:ok, _, _} = User.follow(other_user2, user) +    {:ok, _, _} = User.follow(other_user3, user) + +    {:ok, _} = User.block(user, other_user1) +    {:ok, _} = User.block(user, other_user2) +    {:ok, _} = User.block(user, other_user3) + +    assert [ +             %{ +               "id" => ^id3, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             }, +             %{ +               "id" => ^id2, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             }, +             %{ +               "id" => ^id1, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             } +           ] = +             conn +             |> get("/api/v1/blocks?with_relationships=true") +             |> json_response_and_validate_schema(200) +  end +    test "account lookup", %{conn: conn} do      %{nickname: acct} = insert(:user, %{nickname: "nickname"})      %{nickname: acct_two} = insert(:user, %{nickname: "nickname@notlocaldoma.in"}) diff --git a/test/pleroma/web/metadata/utils_test.exs b/test/pleroma/web/metadata/utils_test.exs index 85ef6033a..3daf852fb 100644 --- a/test/pleroma/web/metadata/utils_test.exs +++ b/test/pleroma/web/metadata/utils_test.exs @@ -72,7 +72,7 @@ defmodule Pleroma.Web.Metadata.UtilsTest do      end    end -  describe "scrub_html_and_truncate/2" do +  describe "scrub_html_and_truncate/3" do      test "it returns text without encode HTML" do        assert Utils.scrub_html_and_truncate("Pleroma's really cool!") == "Pleroma's really cool!"      end diff --git a/test/pleroma/workers/receiver_worker_test.exs b/test/pleroma/workers/receiver_worker_test.exs index 283beee4d..acea0ae00 100644 --- a/test/pleroma/workers/receiver_worker_test.exs +++ b/test/pleroma/workers/receiver_worker_test.exs @@ -11,7 +11,7 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do    alias Pleroma.Workers.ReceiverWorker -  test "it ignores MRF reject" do +  test "it does not retry MRF reject" do      params = insert(:note).data      with_mock Pleroma.Web.ActivityPub.Transmogrifier, @@ -22,4 +22,31 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do                 })      end    end + +  test "it does not retry ObjectValidator reject" do +    params = +      insert(:note_activity).data +      |> Map.put("id", Pleroma.Web.ActivityPub.Utils.generate_activity_id()) +      |> Map.put("object", %{ +        "type" => "Note", +        "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id() +      }) + +    with_mock Pleroma.Web.ActivityPub.ObjectValidator, [:passthrough], +      validate: fn _, _ -> {:error, %Ecto.Changeset{}} end do +      assert {:cancel, {:error, %Ecto.Changeset{}}} = +               ReceiverWorker.perform(%Oban.Job{ +                 args: %{"op" => "incoming_ap_doc", "params" => params} +               }) +    end +  end + +  test "it does not retry duplicates" do +    params = insert(:note_activity).data + +    assert {:cancel, :already_present} = +             ReceiverWorker.perform(%Oban.Job{ +               args: %{"op" => "incoming_ap_doc", "params" => params} +             }) +  end  end | 
