From 36e883cd4bed9c07df2a1dc1038265e075bea5c6 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Mon, 17 Apr 2017 14:12:36 +0200 Subject: Add basic Ostatus user representer. --- test/web/ostatus/user_representer_test.exs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 test/web/ostatus/user_representer_test.exs (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/user_representer_test.exs b/test/web/ostatus/user_representer_test.exs new file mode 100644 index 000000000..02a4b5b14 --- /dev/null +++ b/test/web/ostatus/user_representer_test.exs @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.OStatus.UserRepresenterTest do + use Pleroma.DataCase + alias Pleroma.Web.OStatus.UserRepresenter + + import Pleroma.Factory + + test "returns a user with id, uri, name and link" do + user = build(:user) + tuple = UserRepresenter.to_tuple(user) + {:author, author} = tuple + + [:id, :uri, :name, :link] + |> Enum.each(fn (tag) -> + assert Enum.find(author, fn(e) -> tag == elem(e, 0) end) + end) + end +end -- cgit v1.2.3 From d23f3e3cf3c9a0051532493c60dbd9a7557bae81 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Tue, 18 Apr 2017 18:41:51 +0200 Subject: Add webfinger and basic feed support. --- test/web/ostatus/feed_representer_test.exs | 39 ++++++++++++++++++++++++++++ test/web/ostatus/ostatus_controller_test.exs | 15 +++++++++++ test/web/ostatus/user_representer_test.exs | 23 +++++++++++----- 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 test/web/ostatus/feed_representer_test.exs create mode 100644 test/web/ostatus/ostatus_controller_test.exs (limited to 'test/web/ostatus') 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 = """ + + #{OStatus.feed_path(user)} + #{user.nickname}'s timeline + #{most_recent_update} + + + + #{user_xml} + + + """ + 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 = """ + #{user.ap_id} + http://activitystrea.ms/schema/1.0/person + #{user.ap_id} + #{user.nickname} + + """ + + assert clean(res) == clean(expected) + end + + defp clean(string) do + String.replace(string, ~r/\s/, "") end end -- cgit v1.2.3 From cc330421fd789f002d14e19692c4fbe75c0df4f2 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Thu, 20 Apr 2017 10:16:06 +0200 Subject: Better activities in ostatus. --- test/web/ostatus/activity_representer_test.exs | 38 ++++++++++++++++++++++++++ test/web/ostatus/feed_representer_test.exs | 9 ++++-- 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 test/web/ostatus/activity_representer_test.exs (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/activity_representer_test.exs b/test/web/ostatus/activity_representer_test.exs new file mode 100644 index 000000000..16a9d3b00 --- /dev/null +++ b/test/web/ostatus/activity_representer_test.exs @@ -0,0 +1,38 @@ +defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do + use Pleroma.DataCase + + alias Pleroma.Web.OStatus.ActivityRepresenter + alias Pleroma.User + + import Pleroma.Factory + + test "a note activity" do + note_activity = insert(:note_activity) + updated_at = note_activity.updated_at + |> NaiveDateTime.to_iso8601 + inserted_at = note_activity.inserted_at + |> NaiveDateTime.to_iso8601 + + user = User.get_cached_by_ap_id(note_activity.data["actor"]) + + expected = """ + http://activitystrea.ms/schema/1.0/note + http://activitystrea.ms/schema/1.0/post + #{note_activity.data["id"]} + New note by #{user.nickname} + #{note_activity.data["object"]["content"]} + #{inserted_at} + #{updated_at} + """ + + tuple = ActivityRepresenter.to_simple_form(note_activity, user) + + res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> IO.iodata_to_binary + + assert clean(res) == clean(expected) + end + + defp clean(string) do + String.replace(string, ~r/\s/, "") + end +end diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs index e252eca9f..dddc63ebf 100644 --- a/test/web/ostatus/feed_representer_test.exs +++ b/test/web/ostatus/feed_representer_test.exs @@ -2,7 +2,7 @@ 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.{FeedRepresenter, UserRepresenter, ActivityRepresenter} alias Pleroma.Web.OStatus test "returns a feed of the last 20 items of the user" do @@ -18,16 +18,21 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do user_xml = UserRepresenter.to_simple_form(user) |> :xmerl.export_simple_content(:xmerl_xml) + entry_xml = ActivityRepresenter.to_simple_form(note_activity, user) + |> :xmerl.export_simple_content(:xmerl_xml) + expected = """ #{OStatus.feed_path(user)} #{user.nickname}'s timeline #{most_recent_update} - #{user_xml} + + #{entry_xml} + """ assert clean(res) == clean(expected) -- cgit v1.2.3 From 1b9cc721a0d49d786b4864c2b8aceaf49b9ff088 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Thu, 20 Apr 2017 17:47:33 +0200 Subject: Websub controller beginnings. --- test/web/ostatus/feed_representer_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs index dddc63ebf..3d8eaac6e 100644 --- a/test/web/ostatus/feed_representer_test.exs +++ b/test/web/ostatus/feed_representer_test.exs @@ -26,7 +26,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do #{OStatus.feed_path(user)} #{user.nickname}'s timeline #{most_recent_update} - + #{user_xml} -- cgit v1.2.3 From f51a672ac43696424034107c4f397e2b6b01d623 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 21 Apr 2017 04:22:02 +0200 Subject: Return object id in Ostatus create activties. --- test/web/ostatus/activity_representer_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/activity_representer_test.exs b/test/web/ostatus/activity_representer_test.exs index 16a9d3b00..de79717b1 100644 --- a/test/web/ostatus/activity_representer_test.exs +++ b/test/web/ostatus/activity_representer_test.exs @@ -18,7 +18,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do expected = """ http://activitystrea.ms/schema/1.0/note http://activitystrea.ms/schema/1.0/post - #{note_activity.data["id"]} + #{note_activity.data["object"]["id"]} New note by #{user.nickname} #{note_activity.data["object"]["content"]} #{inserted_at} -- cgit v1.2.3 From 1feb193731881f87efda0dd3c08d554d2ef22971 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 22 Apr 2017 12:11:36 +0200 Subject: Add rel=self link too feed. --- test/web/ostatus/feed_representer_test.exs | 1 + 1 file changed, 1 insertion(+) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs index 3d8eaac6e..1b0a10030 100644 --- a/test/web/ostatus/feed_representer_test.exs +++ b/test/web/ostatus/feed_representer_test.exs @@ -27,6 +27,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do #{user.nickname}'s timeline #{most_recent_update} + #{user_xml} -- cgit v1.2.3 From 923584d0467b2213bef0d3d78c8713f34b7b21d7 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 22 Apr 2017 14:37:54 +0200 Subject: Remove unknown activities from feed. --- test/web/ostatus/activity_representer_test.exs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/activity_representer_test.exs b/test/web/ostatus/activity_representer_test.exs index de79717b1..61df41a1d 100644 --- a/test/web/ostatus/activity_representer_test.exs +++ b/test/web/ostatus/activity_representer_test.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do use Pleroma.DataCase alias Pleroma.Web.OStatus.ActivityRepresenter - alias Pleroma.User + alias Pleroma.{User, Activity} import Pleroma.Factory @@ -32,6 +32,11 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do assert clean(res) == clean(expected) end + test "an unknown activity" do + tuple = ActivityRepresenter.to_simple_form(%Activity{}, nil) + assert is_nil(tuple) + end + defp clean(string) do String.replace(string, ~r/\s/, "") end -- cgit v1.2.3 From 04fb4f9c47b273256d628eefa5bd8af77cca31fb Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 22 Apr 2017 15:11:13 +0200 Subject: Add poco data to user. --- test/web/ostatus/feed_representer_test.exs | 2 +- test/web/ostatus/user_representer_test.exs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs index 1b0a10030..a5f28f6d5 100644 --- a/test/web/ostatus/feed_representer_test.exs +++ b/test/web/ostatus/feed_representer_test.exs @@ -22,7 +22,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do |> :xmerl.export_simple_content(:xmerl_xml) expected = """ - + #{OStatus.feed_path(user)} #{user.nickname}'s timeline #{most_recent_update} diff --git a/test/web/ostatus/user_representer_test.exs b/test/web/ostatus/user_representer_test.exs index a401a56da..80ac8181a 100644 --- a/test/web/ostatus/user_representer_test.exs +++ b/test/web/ostatus/user_representer_test.exs @@ -15,6 +15,9 @@ defmodule Pleroma.Web.OStatus.UserRepresenterTest do #{user.ap_id} http://activitystrea.ms/schema/1.0/person #{user.ap_id} + #{user.nickname} + #{user.name} + #{user.bio} #{user.nickname} """ -- cgit v1.2.3 From cef4a4d7095eae474c0bebaa4b0fb0001f140672 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 22 Apr 2017 15:34:29 +0200 Subject: Fix utf8 problems with iolists. --- test/web/ostatus/feed_representer_test.exs | 2 +- test/web/ostatus/user_representer_test.exs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'test/web/ostatus') diff --git a/test/web/ostatus/feed_representer_test.exs b/test/web/ostatus/feed_representer_test.exs index a5f28f6d5..9a02d8c16 100644 --- a/test/web/ostatus/feed_representer_test.exs +++ b/test/web/ostatus/feed_representer_test.exs @@ -14,7 +14,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do most_recent_update = note_activity.updated_at |> NaiveDateTime.to_iso8601 - res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> IO.iodata_to_binary + res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> to_string user_xml = UserRepresenter.to_simple_form(user) |> :xmerl.export_simple_content(:xmerl_xml) diff --git a/test/web/ostatus/user_representer_test.exs b/test/web/ostatus/user_representer_test.exs index 80ac8181a..a4afc2cf7 100644 --- a/test/web/ostatus/user_representer_test.exs +++ b/test/web/ostatus/user_representer_test.exs @@ -6,10 +6,10 @@ defmodule Pleroma.Web.OStatus.UserRepresenterTest do alias Pleroma.User test "returns a user with id, uri, name and link" do - user = build(:user) + user = build(:user, nickname: "レイン") tuple = UserRepresenter.to_simple_form(user) - res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> IO.iodata_to_binary + res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> to_string expected = """ #{user.ap_id} -- cgit v1.2.3