@@ -344,11 +344,12 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
Actors.create_group(%{
|
||||
creator_actor_id: actor.id,
|
||||
preferred_username: "my_group",
|
||||
visibility: :public
|
||||
local: true
|
||||
})
|
||||
|
||||
result =
|
||||
conn
|
||||
|> assign(:actor, actor)
|
||||
|> get(Actor.build_url(group.preferred_username, :members))
|
||||
|> json_response(200)
|
||||
|
||||
@@ -358,15 +359,21 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
assert hd(result["first"]["orderedItems"])["type"] == "Member"
|
||||
end
|
||||
|
||||
test "it returns no members for a private group", %{conn: conn} do
|
||||
test "it returns no members when not a member of the group", %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
actor2 = insert(:actor)
|
||||
|
||||
assert {:ok, %Actor{} = group} =
|
||||
Actors.create_group(%{creator_actor_id: actor.id, preferred_username: "my_group"})
|
||||
Actors.create_group(%{
|
||||
creator_actor_id: actor.id,
|
||||
preferred_username: "my_group",
|
||||
local: true
|
||||
})
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get(Actor.build_url(actor.preferred_username, :members))
|
||||
|> assign(:actor, actor2)
|
||||
|> get(Actor.build_url(group.preferred_username, :members))
|
||||
|> json_response(200)
|
||||
|
||||
assert result["first"]["orderedItems"] == []
|
||||
@@ -379,7 +386,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
Actors.create_group(%{
|
||||
creator_actor_id: actor.id,
|
||||
preferred_username: "my_group",
|
||||
visibility: :public
|
||||
local: true
|
||||
})
|
||||
|
||||
Enum.each(1..15, fn _ ->
|
||||
@@ -389,6 +396,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
|
||||
result =
|
||||
conn
|
||||
|> assign(:actor, actor)
|
||||
|> get(Actor.build_url(group.preferred_username, :members))
|
||||
|> json_response(200)
|
||||
|
||||
@@ -398,6 +406,7 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
|
||||
result =
|
||||
conn
|
||||
|> assign(:actor, actor)
|
||||
|> get(Actor.build_url(group.preferred_username, :members, page: 2))
|
||||
|> json_response(200)
|
||||
|
||||
@@ -411,7 +420,8 @@ defmodule Mobilizon.Web.ActivityPubControllerTest do
|
||||
assert {:ok, %Actor{} = group} =
|
||||
Actors.create_group(%{
|
||||
creator_actor_id: actor_group_admin.id,
|
||||
preferred_username: "my_group"
|
||||
preferred_username: "my_group",
|
||||
local: true
|
||||
})
|
||||
|
||||
insert(:member, actor: actor_applicant, parent: group, role: :member)
|
||||
|
||||
@@ -91,24 +91,26 @@ defmodule Mobilizon.Web.FeedControllerTest do
|
||||
describe "/@:preferred_username/feed/ics" do
|
||||
test "it returns an iCalendar representation of the actor's public events with an actor publicly visible",
|
||||
%{conn: conn} do
|
||||
actor = insert(:actor, visibility: :public)
|
||||
actor = insert(:actor)
|
||||
group = insert(:group, visibility: :public)
|
||||
tag1 = insert(:tag, title: "iCalendar", slug: "icalendar")
|
||||
tag2 = insert(:tag, title: "Apple", slug: "apple")
|
||||
event1 = insert(:event, organizer_actor: actor, tags: [tag1])
|
||||
event2 = insert(:event, organizer_actor: actor, tags: [tag1, tag2])
|
||||
event1 = insert(:event, organizer_actor: actor, attributed_to: group, tags: [tag1])
|
||||
event2 = insert(:event, organizer_actor: actor, attributed_to: group, tags: [tag1, tag2])
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> get(
|
||||
Endpoint
|
||||
|> Routes.feed_url(:actor, actor.preferred_username, "ics")
|
||||
|> Routes.feed_url(:actor, group.preferred_username, "ics")
|
||||
|> URI.decode()
|
||||
)
|
||||
|
||||
assert response(conn, 200) =~ "BEGIN:VCALENDAR"
|
||||
assert res = response(conn, 200)
|
||||
assert res =~ "BEGIN:VCALENDAR"
|
||||
assert response_content_type(conn, :calendar) =~ "charset=utf-8"
|
||||
|
||||
[entry1, entry2] = entries = ExIcal.parse(conn.resp_body)
|
||||
[entry1, entry2] = entries = ExIcal.parse(res)
|
||||
|
||||
Enum.each(entries, fn entry ->
|
||||
assert entry.summary in [event1.title, event2.title]
|
||||
@@ -120,7 +122,7 @@ defmodule Mobilizon.Web.FeedControllerTest do
|
||||
|
||||
test "it returns a 404 page for the actor's public events iCal feed with an actor not publicly visible",
|
||||
%{conn: conn} do
|
||||
actor = insert(:actor, visibility: :private)
|
||||
actor = insert(:group, visibility: :private)
|
||||
tag1 = insert(:tag, title: "iCalendar", slug: "icalendar")
|
||||
tag2 = insert(:tag, title: "Apple", slug: "apple")
|
||||
insert(:event, organizer_actor: actor, tags: [tag1])
|
||||
|
||||
Reference in New Issue
Block a user