diff options
Diffstat (limited to 'test/web/activity_pub')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 61 | 
1 files changed, 60 insertions, 1 deletions
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index c432c90e3..dd2a48a61 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -6,7 +6,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do    use Pleroma.Web.ConnCase    use Oban.Testing, repo: Pleroma.Repo -  import Pleroma.Factory    alias Pleroma.Activity    alias Pleroma.Config    alias Pleroma.Delivery @@ -14,13 +13,19 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do    alias Pleroma.Object    alias Pleroma.Tests.ObanHelpers    alias Pleroma.User +  alias Pleroma.Web.ActivityPub.ActivityPub    alias Pleroma.Web.ActivityPub.ObjectView    alias Pleroma.Web.ActivityPub.Relay    alias Pleroma.Web.ActivityPub.UserView    alias Pleroma.Web.ActivityPub.Utils    alias Pleroma.Web.CommonAPI +  alias Pleroma.Web.Endpoint    alias Pleroma.Workers.ReceiverWorker +  import Pleroma.Factory + +  require Pleroma.Constants +    setup_all do      Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)      :ok @@ -168,6 +173,60 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      end    end +  describe "mastodon compatibility routes" do +    test "it returns a json representation of the object with accept application/json", %{ +      conn: conn +    } do +      {:ok, object} = +        %{ +          "type" => "Note", +          "content" => "hey", +          "id" => Endpoint.url() <> "/users/raymoo/statuses/999999999", +          "actor" => Endpoint.url() <> "/users/raymoo", +          "to" => [Pleroma.Constants.as_public()] +        } +        |> Object.create() + +      conn = +        conn +        |> put_req_header("accept", "application/json") +        |> get("/users/raymoo/statuses/999999999") + +      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: object}) +    end + +    test "it returns a json representation of the activity with accept application/json", %{ +      conn: conn +    } do +      {:ok, object} = +        %{ +          "type" => "Note", +          "content" => "hey", +          "id" => Endpoint.url() <> "/users/raymoo/statuses/999999999", +          "actor" => Endpoint.url() <> "/users/raymoo", +          "to" => [Pleroma.Constants.as_public()] +        } +        |> Object.create() + +      {:ok, activity, _} = +        %{ +          "id" => object.data["id"] <> "/activity", +          "type" => "Create", +          "object" => object.data["id"], +          "actor" => object.data["actor"], +          "to" => object.data["to"] +        } +        |> ActivityPub.persist(local: true) + +      conn = +        conn +        |> put_req_header("accept", "application/json") +        |> get("/users/raymoo/statuses/999999999/activity") + +      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: activity}) +    end +  end +    describe "/objects/:uuid" do      test "it returns a json representation of the object with accept application/json", %{        conn: conn  | 
