diff options
Diffstat (limited to 'test/web/activity_pub')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 50 | ||||
| -rw-r--r-- | test/web/activity_pub/views/user_view_test.exs | 31 | 
2 files changed, 48 insertions, 33 deletions
| diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 24edab41a..e490a5744 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -804,17 +804,63 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do    end    describe "GET /users/:nickname/outbox" do +    test "it paginates correctly", %{conn: conn} do +      user = insert(:user) +      conn = assign(conn, :user, user) +      outbox_endpoint = user.ap_id <> "/outbox" + +      _posts = +        for i <- 0..25 do +          {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"}) +          activity +        end + +      result = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get(outbox_endpoint <> "?page=true") +        |> json_response(200) + +      result_ids = Enum.map(result["orderedItems"], fn x -> x["id"] end) +      assert length(result["orderedItems"]) == 20 +      assert length(result_ids) == 20 +      assert result["next"] +      assert String.starts_with?(result["next"], outbox_endpoint) + +      result_next = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get(result["next"]) +        |> json_response(200) + +      result_next_ids = Enum.map(result_next["orderedItems"], fn x -> x["id"] end) +      assert length(result_next["orderedItems"]) == 6 +      assert length(result_next_ids) == 6 +      refute Enum.find(result_next_ids, fn x -> x in result_ids end) +      refute Enum.find(result_ids, fn x -> x in result_next_ids end) +      assert String.starts_with?(result["id"], outbox_endpoint) + +      result_next_again = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get(result_next["id"]) +        |> json_response(200) + +      assert result_next == result_next_again +    end +      test "it returns 200 even if there're no activities", %{conn: conn} do        user = insert(:user) +      outbox_endpoint = user.ap_id <> "/outbox"        conn =          conn          |> assign(:user, user)          |> put_req_header("accept", "application/activity+json") -        |> get("/users/#{user.nickname}/outbox") +        |> get(outbox_endpoint)        result = json_response(conn, 200) -      assert user.ap_id <> "/outbox" == result["id"] +      assert outbox_endpoint == result["id"]      end      test "it returns a note activity in a collection", %{conn: conn} do diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs index 20b0f223c..bec15a996 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -158,35 +158,4 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do        assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user})      end    end - -  test "activity collection page aginates correctly" do -    user = insert(:user) - -    posts = -      for i <- 0..25 do -        {:ok, activity} = CommonAPI.post(user, %{status: "post #{i}"}) -        activity -      end - -    # outbox sorts chronologically, newest first, with ten per page -    posts = Enum.reverse(posts) - -    %{"next" => next_url} = -      UserView.render("activity_collection_page.json", %{ -        iri: "#{user.ap_id}/outbox", -        activities: Enum.take(posts, 10) -      }) - -    next_id = Enum.at(posts, 9).id -    assert next_url =~ next_id - -    %{"next" => next_url} = -      UserView.render("activity_collection_page.json", %{ -        iri: "#{user.ap_id}/outbox", -        activities: Enum.take(Enum.drop(posts, 10), 10) -      }) - -    next_id = Enum.at(posts, 19).id -    assert next_url =~ next_id -  end  end | 
