2018-12-23 13:11:29 -07:00
|
|
|
# Pleroma: A lightweight social networking server
|
2019-01-09 05:54:37 -07:00
|
|
|
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
2018-12-23 13:11:29 -07:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2017-09-09 05:15:01 -06:00
|
|
|
defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
|
|
|
use Pleroma.Web.ConnCase
|
|
|
|
|
2019-02-10 14:57:38 -07:00
|
|
|
alias Pleroma.Notification
|
2019-03-04 19:52:23 -07:00
|
|
|
alias Pleroma.Repo
|
|
|
|
alias Pleroma.Web.CommonAPI
|
2019-09-25 21:53:42 -06:00
|
|
|
|
|
|
|
import Pleroma.Factory
|
|
|
|
import Tesla.Mock
|
2018-12-03 11:37:55 -07:00
|
|
|
|
|
|
|
setup do
|
|
|
|
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
|
|
|
:ok
|
|
|
|
end
|
2017-09-09 05:15:01 -06:00
|
|
|
|
2019-08-19 09:34:29 -06:00
|
|
|
clear_config([:rich_media, :enabled])
|
|
|
|
|
2018-09-01 15:34:15 -06:00
|
|
|
test "unimplemented follow_requests, blocks, domain blocks" do
|
2017-09-14 10:30:05 -06:00
|
|
|
user = insert(:user)
|
|
|
|
|
2018-09-01 15:34:15 -06:00
|
|
|
["blocks", "domain_blocks", "follow_requests"]
|
2018-03-30 07:01:53 -06:00
|
|
|
|> Enum.each(fn endpoint ->
|
|
|
|
conn =
|
|
|
|
build_conn()
|
|
|
|
|> assign(:user, user)
|
|
|
|
|> get("/api/v1/#{endpoint}")
|
2017-09-14 10:30:05 -06:00
|
|
|
|
|
|
|
assert [] = json_response(conn, 200)
|
|
|
|
end)
|
|
|
|
end
|
2017-09-16 02:42:24 -06:00
|
|
|
|
2019-03-06 19:29:42 -07:00
|
|
|
describe "link headers" do
|
|
|
|
test "preserves parameters in link headers", %{conn: conn} do
|
|
|
|
user = insert(:user)
|
|
|
|
other_user = insert(:user)
|
|
|
|
|
|
|
|
{:ok, activity1} =
|
|
|
|
CommonAPI.post(other_user, %{
|
|
|
|
"status" => "hi @#{user.nickname}",
|
|
|
|
"visibility" => "public"
|
|
|
|
})
|
2019-03-28 03:39:10 -06:00
|
|
|
|
2019-03-06 19:29:42 -07:00
|
|
|
{:ok, activity2} =
|
|
|
|
CommonAPI.post(other_user, %{
|
|
|
|
"status" => "hi @#{user.nickname}",
|
|
|
|
"visibility" => "public"
|
|
|
|
})
|
2019-03-28 03:39:10 -06:00
|
|
|
|
2019-03-06 19:29:42 -07:00
|
|
|
notification1 = Repo.get_by(Notification, activity_id: activity1.id)
|
|
|
|
notification2 = Repo.get_by(Notification, activity_id: activity2.id)
|
2019-03-28 03:39:10 -06:00
|
|
|
|
2019-03-06 19:29:42 -07:00
|
|
|
conn =
|
2019-03-28 03:39:10 -06:00
|
|
|
conn
|
|
|
|
|> assign(:user, user)
|
2019-03-06 19:29:42 -07:00
|
|
|
|> get("/api/v1/notifications", %{media_only: true})
|
2019-03-28 03:39:10 -06:00
|
|
|
|
2019-03-06 19:29:42 -07:00
|
|
|
assert [link_header] = get_resp_header(conn, "link")
|
|
|
|
assert link_header =~ ~r/media_only=true/
|
2019-03-25 15:19:57 -06:00
|
|
|
assert link_header =~ ~r/min_id=#{notification2.id}/
|
2019-03-06 19:29:42 -07:00
|
|
|
assert link_header =~ ~r/max_id=#{notification1.id}/
|
2019-03-28 03:39:10 -06:00
|
|
|
end
|
2019-03-06 19:29:42 -07:00
|
|
|
end
|
2019-03-28 03:39:10 -06:00
|
|
|
|
2019-09-06 12:50:00 -06:00
|
|
|
describe "empty_array, stubs for mastodon api" do
|
|
|
|
test "GET /api/v1/accounts/:id/identity_proofs", %{conn: conn} do
|
|
|
|
user = insert(:user)
|
|
|
|
|
|
|
|
res =
|
|
|
|
conn
|
|
|
|
|> assign(:user, user)
|
|
|
|
|> get("/api/v1/accounts/#{user.id}/identity_proofs")
|
|
|
|
|> json_response(200)
|
|
|
|
|
|
|
|
assert res == []
|
|
|
|
end
|
|
|
|
|
|
|
|
test "GET /api/v1/endorsements", %{conn: conn} do
|
|
|
|
user = insert(:user)
|
|
|
|
|
|
|
|
res =
|
|
|
|
conn
|
|
|
|
|> assign(:user, user)
|
|
|
|
|> get("/api/v1/endorsements")
|
|
|
|
|> json_response(200)
|
|
|
|
|
|
|
|
assert res == []
|
|
|
|
end
|
|
|
|
|
|
|
|
test "GET /api/v1/trends", %{conn: conn} do
|
|
|
|
user = insert(:user)
|
|
|
|
|
|
|
|
res =
|
|
|
|
conn
|
|
|
|
|> assign(:user, user)
|
|
|
|
|> get("/api/v1/trends")
|
|
|
|
|> json_response(200)
|
|
|
|
|
|
|
|
assert res == []
|
|
|
|
end
|
|
|
|
end
|
2017-09-09 05:15:01 -06:00
|
|
|
end
|