tests: add test for fetching AP objects with application/json.
authorWilliam Pitcock <nenolod@dereferenced.org>
Wed, 20 Feb 2019 20:45:09 +0000 (20:45 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Wed, 20 Feb 2019 20:45:09 +0000 (20:45 +0000)
test/web/activity_pub/activity_pub_controller_test.exs

index 398bedf7793f378b6a4e48a6e2adec5917497582..aa2ca4eb8d5ad33cd98ecf8b7c14fb312e6c9070 100644 (file)
@@ -41,7 +41,20 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
   end
 
   describe "/users/:nickname" do
-    test "it returns a json representation of the user", %{conn: conn} do
+    test "it returns a json representation of the user with accept application/json", %{conn: conn} do
+      user = insert(:user)
+
+      conn =
+        conn
+        |> put_req_header("accept", "application/json")
+        |> get("/users/#{user.nickname}")
+
+      user = Repo.get(User, user.id)
+
+      assert json_response(conn, 200) == UserView.render("user.json", %{user: user})
+    end
+
+    test "it returns a json representation of the user with accept application/activity+json", %{conn: conn} do
       user = insert(:user)
 
       conn =
@@ -53,10 +66,35 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
 
       assert json_response(conn, 200) == UserView.render("user.json", %{user: user})
     end
+
+    test "it returns a json representation of the user with accept application/ld+json", %{conn: conn} do
+      user = insert(:user)
+
+      conn =
+        conn
+        |> put_req_header("accept", "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"")
+        |> 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
+    test "it returns a json representation of the object with accept application/json", %{conn: conn} do
+      note = insert(:note)
+      uuid = String.split(note.data["id"], "/") |> List.last()
+
+      conn =
+        conn
+        |> put_req_header("accept", "application/json")
+        |> get("/objects/#{uuid}")
+
+      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: note})
+    end
+
+    test "it returns a json representation of the object with accept application/activity+json", %{conn: conn} do
       note = insert(:note)
       uuid = String.split(note.data["id"], "/") |> List.last()
 
@@ -68,6 +106,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
       assert json_response(conn, 200) == ObjectView.render("object.json", %{object: note})
     end
 
+    test "it returns a json representation of the object with accept application/ld+json", %{conn: conn} do
+      note = insert(:note)
+      uuid = String.split(note.data["id"], "/") |> List.last()
+
+      conn =
+        conn
+        |> put_req_header("accept", "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"")
+        |> get("/objects/#{uuid}")
+
+      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: note})
+    end
+
     test "it returns 404 for non-public messages", %{conn: conn} do
       note = insert(:direct_note)
       uuid = String.split(note.data["id"], "/") |> List.last()