Resolve merge conflict
[akkoma] / test / web / ostatus / ostatus_controller_test.exs
index 560305c15ff713bf305c9746d3430bec6adcb4e5..8e9d2b69ae7055f6a650efdd6d4a8d51f64b21f3 100644 (file)
@@ -1,7 +1,11 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Web.OStatus.OStatusControllerTest do
   use Pleroma.Web.ConnCase
   import Pleroma.Factory
-  alias Pleroma.{User, Repo}
+  alias Pleroma.{User, Repo, Object}
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.OStatus.ActivityRepresenter
 
@@ -84,6 +88,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
 
     conn =
       conn
+      |> put_req_header("accept", "application/xml")
       |> get(url)
 
     expected =
@@ -110,15 +115,32 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
     |> response(404)
   end
 
-  test "gets an activity", %{conn: conn} do
+  test "gets an activity in xml format", %{conn: conn} do
     note_activity = insert(:note_activity)
     [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"]))
 
     conn
+    |> put_req_header("accept", "application/xml")
     |> get("/activities/#{uuid}")
     |> response(200)
   end
 
+  test "404s on deleted objects", %{conn: conn} do
+    note_activity = insert(:note_activity)
+    [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"]))
+    object = Object.get_by_ap_id(note_activity.data["object"]["id"])
+
+    conn
+    |> get("/objects/#{uuid}")
+    |> response(200)
+
+    Object.delete(object)
+
+    conn
+    |> get("/objects/#{uuid}")
+    |> response(404)
+  end
+
   test "404s on private activities", %{conn: conn} do
     note_activity = insert(:direct_note_activity)
     [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"]))
@@ -134,7 +156,20 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
     |> response(404)
   end
 
-  test "gets a notice", %{conn: conn} do
+  test "renders notice metatags in html format", %{conn: conn} do
+    note_activity = insert(:note_activity)
+    conn = get(conn, "/notice/#{note_activity.id}")
+    body = html_response(conn, 200)
+    twitter_card_summary = "<meta content=\"summary\" property=\"twitter:card\">"
+
+    description_content =
+      "<meta content=\"#{note_activity.data["object"]["content"]}\" property=\"og:description\">"
+
+    assert body =~ twitter_card_summary
+    assert body =~ description_content
+  end
+
+  test "gets a notice in xml format", %{conn: conn} do
     note_activity = insert(:note_activity)
 
     conn