diff options
Diffstat (limited to 'test/web/ostatus/feed_representer_test.exs')
-rw-r--r-- | test/web/ostatus/feed_representer_test.exs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs new file mode 100644 index 000000000..e252eca9f --- /dev/null +++ b/test/web/ostatus/feed_representer_test.exs @@ -0,0 +1,39 @@ +defmodule Pleroma.Web.OStatus.FeedRepresenterTest do + use Pleroma.DataCase + import Pleroma.Factory + alias Pleroma.User + alias Pleroma.Web.OStatus.{FeedRepresenter, UserRepresenter} + alias Pleroma.Web.OStatus + + test "returns a feed of the last 20 items of the user" do + note_activity = insert(:note_activity) + user = User.get_cached_by_ap_id(note_activity.data["actor"]) + + tuple = FeedRepresenter.to_simple_form(user, [note_activity], [user]) + + most_recent_update = note_activity.updated_at + |> NaiveDateTime.to_iso8601 + + res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> IO.iodata_to_binary + user_xml = UserRepresenter.to_simple_form(user) + |> :xmerl.export_simple_content(:xmerl_xml) + + expected = """ + <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/"> + <id>#{OStatus.feed_path(user)}</id> + <title>#{user.nickname}'s timeline</title> + <updated>#{most_recent_update}</updated> + <entries /> + <link rel="hub" href="#{OStatus.pubsub_path}" /> + <author> + #{user_xml} + </author> + </feed> + """ + assert clean(res) == clean(expected) + end + + defp clean(string) do + String.replace(string, ~r/\s/, "") + end +end |