diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-04-18 18:41:51 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-04-18 18:41:51 +0200 |
commit | d23f3e3cf3c9a0051532493c60dbd9a7557bae81 (patch) | |
tree | 71e06f421c69e8daecc1e0d23231e9ec0457d7d8 /test | |
parent | 36e883cd4bed9c07df2a1dc1038265e075bea5c6 (diff) | |
download | pleroma-d23f3e3cf3c9a0051532493c60dbd9a7557bae81.tar.gz |
Add webfinger and basic feed support.
Diffstat (limited to 'test')
-rw-r--r-- | test/web/ostatus/feed_representer_test.exs | 39 | ||||
-rw-r--r-- | test/web/ostatus/ostatus_controller_test.exs | 15 | ||||
-rw-r--r-- | test/web/ostatus/user_representer_test.exs | 23 |
3 files changed, 71 insertions, 6 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 diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs new file mode 100644 index 000000000..229cd9b1e --- /dev/null +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -0,0 +1,15 @@ +defmodule Pleroma.Web.OStatus.OStatusControllerTest do + use Pleroma.Web.ConnCase + import Pleroma.Factory + alias Pleroma.User + + test "gets a feed", %{conn: conn} do + note_activity = insert(:note_activity) + user = User.get_cached_by_ap_id(note_activity.data["actor"]) + + conn = conn + |> get("/users/#{user.nickname}/feed.atom") + + assert response(conn, 200) + end +end diff --git a/test/web/ostatus/user_representer_test.exs b/test/web/ostatus/user_representer_test.exs index 02a4b5b14..a401a56da 100644 --- a/test/web/ostatus/user_representer_test.exs +++ b/test/web/ostatus/user_representer_test.exs @@ -3,15 +3,26 @@ defmodule Pleroma.Web.OStatus.UserRepresenterTest do 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 + tuple = UserRepresenter.to_simple_form(user) - [:id, :uri, :name, :link] - |> Enum.each(fn (tag) -> - assert Enum.find(author, fn(e) -> tag == elem(e, 0) end) - end) + res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> IO.iodata_to_binary + + expected = """ + <id>#{user.ap_id}</id> + <activity:object>http://activitystrea.ms/schema/1.0/person</activity:object> + <uri>#{user.ap_id}</uri> + <name>#{user.nickname}</name> + <link rel="avatar" href="#{User.avatar_url(user)}" /> + """ + + assert clean(res) == clean(expected) + end + + defp clean(string) do + String.replace(string, ~r/\s/, "") end end |