@@ -3,6 +3,7 @@ defmodule MobilizonWeb.ActivityPubControllerTest do
|
||||
import Mobilizon.Factory
|
||||
alias MobilizonWeb.ActivityPub.{ActorView, ObjectView}
|
||||
alias Mobilizon.Actors
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.ActivityPub
|
||||
alias Mobilizon.Service.ActivityPub.Utils
|
||||
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
|
||||
@@ -47,6 +48,32 @@ defmodule MobilizonWeb.ActivityPubControllerTest do
|
||||
end
|
||||
end
|
||||
|
||||
describe "/comments/:uuid" do
|
||||
test "it returns a json representation of the comment", %{conn: conn} do
|
||||
comment = insert(:comment)
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> put_req_header("accept", "application/activity+json")
|
||||
|> get("/comments/#{comment.uuid}")
|
||||
|
||||
assert json_response(conn, 200) ==
|
||||
ObjectView.render("comment.json", %{comment: comment |> Utils.make_comment_data()})
|
||||
end
|
||||
|
||||
# TODO !
|
||||
# test "it returns 404 for non-public comments", %{conn: conn} do
|
||||
# event = insert(:event, public: false)
|
||||
|
||||
# conn =
|
||||
# conn
|
||||
# |> put_req_header("accept", "application/activity+json")
|
||||
# |> get("/events/#{event.uuid}")
|
||||
|
||||
# assert json_response(conn, 404)
|
||||
# end
|
||||
end
|
||||
|
||||
describe "/@:preferred_username/inbox" do
|
||||
test "it inserts an incoming event into the database", %{conn: conn} do
|
||||
use_cassette "activity_pub_controller/mastodon-post-activity_actor_call" do
|
||||
@@ -91,46 +118,88 @@ defmodule MobilizonWeb.ActivityPubControllerTest do
|
||||
end
|
||||
end
|
||||
|
||||
# describe "/actors/:nickname/followers" do
|
||||
# test "it returns the followers in a collection", %{conn: conn} do
|
||||
# user = insert(:user)
|
||||
# user_two = insert(:user)
|
||||
# User.follow(user, user_two)
|
||||
#
|
||||
# result =
|
||||
# conn
|
||||
# |> get("/users/#{user_two.nickname}/followers")
|
||||
# |> json_response(200)
|
||||
#
|
||||
# assert result["first"]["orderedItems"] == [user.ap_id]
|
||||
# end
|
||||
#
|
||||
# test "it works for more than 10 users", %{conn: conn} do
|
||||
# user = insert(:user)
|
||||
#
|
||||
# Enum.each(1..15, fn _ ->
|
||||
# other_user = insert(:user)
|
||||
# User.follow(other_user, user)
|
||||
# end)
|
||||
#
|
||||
# result =
|
||||
# conn
|
||||
# |> get("/users/#{user.nickname}/followers")
|
||||
# |> json_response(200)
|
||||
#
|
||||
# assert length(result["first"]["orderedItems"]) == 10
|
||||
# assert result["first"]["totalItems"] == 15
|
||||
# assert result["totalItems"] == 15
|
||||
#
|
||||
# result =
|
||||
# conn
|
||||
# |> get("/users/#{user.nickname}/followers?page=2")
|
||||
# |> json_response(200)
|
||||
#
|
||||
# assert length(result["orderedItems"]) == 5
|
||||
# assert result["totalItems"] == 15
|
||||
# end
|
||||
# end
|
||||
describe "/@actor/followers" do
|
||||
test "it returns the followers in a collection", %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
actor2 = insert(:actor)
|
||||
Actor.follow(actor, actor2)
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor.preferred_username}/followers")
|
||||
|> json_response(200)
|
||||
|
||||
assert result["first"]["orderedItems"] == [actor2.url]
|
||||
end
|
||||
|
||||
test "it works for more than 10 actors", %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
|
||||
Enum.each(1..15, fn _ ->
|
||||
other_actor = insert(:actor)
|
||||
Actor.follow(actor, other_actor)
|
||||
end)
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor.preferred_username}/followers")
|
||||
|> json_response(200)
|
||||
|
||||
assert length(result["first"]["orderedItems"]) == 10
|
||||
# assert result["first"]["totalItems"] == 15
|
||||
# assert result["totalItems"] == 15
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor.preferred_username}/followers?page=2")
|
||||
|> json_response(200)
|
||||
|
||||
assert length(result["orderedItems"]) == 5
|
||||
# assert result["totalItems"] == 15
|
||||
end
|
||||
end
|
||||
|
||||
describe "/@actor/following" do
|
||||
test "it returns the followings in a collection", %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
actor2 = insert(:actor)
|
||||
Actor.follow(actor, actor2)
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor2.preferred_username}/following")
|
||||
|> json_response(200)
|
||||
|
||||
assert result["first"]["orderedItems"] == [actor.url]
|
||||
end
|
||||
|
||||
test "it works for more than 10 actors", %{conn: conn} do
|
||||
actor = insert(:actor)
|
||||
|
||||
Enum.each(1..15, fn _ ->
|
||||
other_actor = insert(:actor)
|
||||
Actor.follow(other_actor, actor)
|
||||
end)
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor.preferred_username}/following")
|
||||
|> json_response(200)
|
||||
|
||||
assert length(result["first"]["orderedItems"]) == 10
|
||||
# assert result["first"]["totalItems"] == 15
|
||||
# assert result["totalItems"] == 15
|
||||
|
||||
result =
|
||||
conn
|
||||
|> get("/@#{actor.preferred_username}/following?page=2")
|
||||
|> json_response(200)
|
||||
|
||||
assert length(result["orderedItems"]) == 5
|
||||
# assert result["totalItems"] == 15
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# describe "/@:preferred_username/following" do
|
||||
# test "it returns the following in a collection", %{conn: conn} do
|
||||
|
||||
Reference in New Issue
Block a user