diff options
Diffstat (limited to 'test/web/activity_pub')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 39 | ||||
| -rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 1 | ||||
| -rw-r--r-- | test/web/activity_pub/views/object_view_test.exs | 17 | ||||
| -rw-r--r-- | test/web/activity_pub/views/user_view_test.exs | 18 | 
4 files changed, 75 insertions, 0 deletions
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs new file mode 100644 index 000000000..21ed28cf2 --- /dev/null +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -0,0 +1,39 @@ +defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do +  use Pleroma.Web.ConnCase +  import Pleroma.Factory +  alias Pleroma.Web.ActivityPub.{UserView, ObjectView} +  alias Pleroma.{Repo, User} + +  describe "/users/:nickname" do +    test "it returns a json representation of the user", %{conn: conn} do +      user = insert(:user) + +      conn = conn +      |> put_req_header("accept", "application/activity+json") +      |> get("/users/#{user.nickname}") + +      user = Repo.get(User, user.id) + +      assert json_response(conn, 200) == UserView.render("user.json", %{user: user}) +    end +  end + +  describe "/object/:uuid" do +    test "it returns a json representation of the object", %{conn: conn} do +      note = insert(:note) +      uuid = String.split(note.data["id"], "/") |> List.last + +      conn = conn +      |> put_req_header("accept", "application/activity+json") +      |> get("/objects/#{uuid}") + +      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: note}) +    end +  end + +  describe "/users/:nickname/inbox" do +    test "it inserts an incoming activity into the database" do +      assert false +    end +  end +end diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index f50509b63..a38ca84ad 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -53,6 +53,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, activity} = ActivityPub.create(["user1", "user1", "user2"], %User{ap_id: "1"}, "", %{})        assert activity.data["to"] == ["user1", "user2"]        assert activity.actor == "1" +      assert activity.recipients == ["user1", "user2"]      end    end diff --git a/test/web/activity_pub/views/object_view_test.exs b/test/web/activity_pub/views/object_view_test.exs new file mode 100644 index 000000000..6a1311be7 --- /dev/null +++ b/test/web/activity_pub/views/object_view_test.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.ActivityPub.ObjectViewTest do +  use Pleroma.DataCase +  import Pleroma.Factory + +  alias Pleroma.Web.ActivityPub.ObjectView + +  test "renders a note object" do +    note = insert(:note) + +    result = ObjectView.render("object.json", %{object: note}) + +    assert result["id"] == note.data["id"] +    assert result["to"] == note.data["to"] +    assert result["content"] == note.data["content"] +    assert result["type"] == "Note" +  end +end diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs new file mode 100644 index 000000000..0c64e62c3 --- /dev/null +++ b/test/web/activity_pub/views/user_view_test.exs @@ -0,0 +1,18 @@ +defmodule Pleroma.Web.ActivityPub.UserViewTest do +  use Pleroma.DataCase +  import Pleroma.Factory + +  alias Pleroma.Web.ActivityPub.UserView + +  test "Renders a user, including the public key" do +    user = insert(:user) +    {:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user) + +    result = UserView.render("user.json", %{user: user}) + +    assert result["id"] == user.ap_id +    assert result["preferredUsername"] == user.nickname + +    assert String.contains?(result["publicKey"]["publicKeyPem"], "BEGIN RSA PUBLIC KEY") +  end +end  | 
