Merge branch 'develop' into feature/reports-groups-and-multiple-state-update
[akkoma] / test / web / ostatus / user_representer_test.exs
index 02a4b5b141e6beb3e51559835c72efed7533dfc0..e3863d2e9ca1d087bd39be70111d173c2617a4a5 100644 (file)
@@ -1,17 +1,38 @@
+# 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.UserRepresenterTest do
   use Pleroma.DataCase
   alias Pleroma.Web.OStatus.UserRepresenter
 
   import Pleroma.Factory
+  alias Pleroma.User
 
   test "returns a user with id, uri, name and link" do
-    user = build(:user)
-    tuple = UserRepresenter.to_tuple(user)
-    {:author, author} = tuple
+    user = insert(:user, %{nickname: "レイン"})
+    tuple = UserRepresenter.to_simple_form(user)
+
+    res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> to_string
+
+    expected = """
+    <id>#{user.ap_id}</id>
+    <activity:object>http://activitystrea.ms/schema/1.0/person</activity:object>
+    <uri>#{user.ap_id}</uri>
+    <poco:preferredUsername>#{user.nickname}</poco:preferredUsername>
+    <poco:displayName>#{user.name}</poco:displayName>
+    <poco:note>#{user.bio}</poco:note>
+    <summary>#{user.bio}</summary>
+    <name>#{user.nickname}</name>
+    <link rel="avatar" href="#{User.avatar_url(user)}" />
+    <link rel="header" href="#{User.banner_url(user)}" />
+    <ap_enabled>true</ap_enabled>
+    """
+
+    assert clean(res) == clean(expected)
+  end
 
-    [:id, :uri, :name, :link]
-    |> Enum.each(fn (tag) ->
-      assert Enum.find(author, fn(e) -> tag == elem(e, 0) end)
-    end)
+  defp clean(string) do
+    String.replace(string, ~r/\s/, "")
   end
 end