Treat internal emoji like external.
[akkoma] / test / web / ostatus / ostatus_test.exs
index 34bfaa005261d4f41ac28a10dfc983df67611aa2..de01612b3a803b9ae2caff7976520ec24c1a212d 100644 (file)
@@ -15,6 +15,8 @@ defmodule Pleroma.Web.OStatusTest do
     incoming = File.read!("test/fixtures/incoming_note_activity.xml")
     {:ok, [activity]} = OStatus.handle_incoming(incoming)
 
+    user = User.get_by_ap_id(activity.data["actor"])
+    assert user.info["note_count"] == 1
     assert activity.data["type"] == "Create"
     assert activity.data["object"]["type"] == "Note"
     assert activity.data["object"]["id"] == "tag:gs.example.org:4040,2017-04-23:noticeId=29:objectType=note"
@@ -22,6 +24,7 @@ defmodule Pleroma.Web.OStatusTest do
     assert activity.data["object"]["published"] == "2017-04-23T14:51:03+00:00"
     assert activity.data["context"] == "tag:gs.example.org:4040,2017-04-23:objectType=thread:nonce=f09e22f58abd5c7b"
     assert "http://pleroma.example.org:4000/users/lain3" in activity.data["to"]
+    assert activity.data["object"]["emoji"] == %{ "marko" => "marko.png", "reimu" => "reimu.png" }
     assert activity.local == false
   end
 
@@ -82,7 +85,7 @@ defmodule Pleroma.Web.OStatusTest do
     assert activity.data["type"] == "Create"
     assert activity.data["object"]["type"] == "Note"
     assert activity.data["object"]["actor"] == "https://mastodon.social/users/lambadalambda"
-    assert String.contains?(activity.data["object"]["content"], "technologic")
+    assert activity.data["object"]["summary"] == "technologic"
     assert "https://www.w3.org/ns/activitystreams#Public" in activity.data["to"]
   end
 
@@ -90,7 +93,7 @@ defmodule Pleroma.Web.OStatusTest do
     incoming = File.read!("test/fixtures/cw_retweet.xml")
     {:ok, [[activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
 
-    assert String.contains?(retweeted_activity.data["object"]["content"], "Hey.")
+    assert retweeted_activity.data["object"]["summary"] == "Hey."
   end
 
   test "handle incoming notes - GS, subscription, reply" do
@@ -180,6 +183,13 @@ defmodule Pleroma.Web.OStatusTest do
     refute favorited_activity.local
   end
 
+  test "handle conversation references" do
+    incoming = File.read!("test/fixtures/mastodon_conversation.xml")
+    {:ok, [activity]} = OStatus.handle_incoming(incoming)
+
+    assert activity.data["context"] == "tag:mastodon.social,2017-08-28:objectId=7876885:objectType=Conversation"
+  end
+
   test "handle incoming favorites with locally available object - GS, websub" do
     note_activity = insert(:note_activity)
 
@@ -324,11 +334,18 @@ defmodule Pleroma.Web.OStatusTest do
   describe "fetching a status by it's HTML url" do
     test "it builds a missing status from an html url" do
       url = "https://shitposter.club/notice/2827873"
-      {:ok, [activity] } = OStatus.fetch_activity_from_html_url(url)
+      {:ok, [activity] } = OStatus.fetch_activity_from_url(url)
 
       assert activity.data["actor"] == "https://shitposter.club/user/1"
       assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
     end
+
+    test "it works for atom notes, too" do
+      url = "https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056"
+      {:ok, [activity] } = OStatus.fetch_activity_from_url(url)
+      assert activity.data["actor"] == "https://social.sakamoto.gq/users/eal"
+      assert activity.data["object"]["id"] == url
+    end
   end
 
   test "insert or update a user from given data" do
@@ -337,4 +354,11 @@ defmodule Pleroma.Web.OStatusTest do
 
     assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
   end
+
+  test "it doesn't add nil in the do field" do
+    incoming = File.read!("test/fixtures/nil_mention_entry.xml")
+    {:ok, [activity]} = OStatus.handle_incoming(incoming)
+
+    assert activity.data["to"] == ["http://localhost:4001/users/atarifrosch@social.stopwatchingus-heidelberg.de/followers", "https://www.w3.org/ns/activitystreams#Public"]
+  end
 end