aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-18 18:41:51 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-18 18:41:51 +0200
commitd23f3e3cf3c9a0051532493c60dbd9a7557bae81 (patch)
tree71e06f421c69e8daecc1e0d23231e9ec0457d7d8 /test
parent36e883cd4bed9c07df2a1dc1038265e075bea5c6 (diff)
downloadpleroma-d23f3e3cf3c9a0051532493c60dbd9a7557bae81.tar.gz
Add webfinger and basic feed support.
Diffstat (limited to 'test')
-rw-r--r--test/web/ostatus/feed_representer_test.exs39
-rw-r--r--test/web/ostatus/ostatus_controller_test.exs15
-rw-r--r--test/web/ostatus/user_representer_test.exs23
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