# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.AdminAPI.MediaProxyCacheControllerTest do
setup do: clear_config([:media_proxy])
- setup do
- on_exit(fn -> Cachex.clear(:banned_urls_cache) end)
- end
-
setup do
admin = insert(:user, is_admin: true)
token = insert(:oauth_admin_token, user: admin)
|> assign(:user, admin)
|> assign(:token, token)
- Config.put([:media_proxy, :enabled], true)
- Config.put([:media_proxy, :invalidation, :enabled], true)
- Config.put([:media_proxy, :invalidation, :provider], MediaProxy.Invalidation.Script)
+ clear_config([:media_proxy, :enabled], true)
+ clear_config([:media_proxy, :invalidation, :enabled], true)
+ clear_config([:media_proxy, :invalidation, :provider], MediaProxy.Invalidation.Script)
{:ok, %{admin: admin, token: token, conn: conn}}
end
- describe "GET /api/pleroma/admin/media_proxy_caches" do
+ describe "GET /api/v1/pleroma/admin/media_proxy_caches" do
test "shows banned MediaProxy URLs", %{conn: conn} do
MediaProxy.put_in_banned_urls([
"http://localhost:4001/media/a688346.jpg",
response =
conn
- |> get("/api/pleroma/admin/media_proxy_caches?page_size=2")
+ |> get("/api/v1/pleroma/admin/media_proxy_caches?page_size=2")
|> json_response_and_validate_schema(200)
assert response["page_size"] == 2
assert response["count"] == 5
- assert response["urls"] == [
- "http://localhost:4001/media/fb1f4d.jpg",
- "http://localhost:4001/media/a688346.jpg"
- ]
+ results = response["urls"]
response =
conn
- |> get("/api/pleroma/admin/media_proxy_caches?page_size=2&page=2")
+ |> get("/api/v1/pleroma/admin/media_proxy_caches?page_size=2&page=2")
|> json_response_and_validate_schema(200)
- assert response["urls"] == [
- "http://localhost:4001/media/gb1f44.jpg",
- "http://localhost:4001/media/tb13f47.jpg"
- ]
-
assert response["page_size"] == 2
assert response["count"] == 5
+ results = results ++ response["urls"]
+
response =
conn
- |> get("/api/pleroma/admin/media_proxy_caches?page_size=2&page=3")
+ |> get("/api/v1/pleroma/admin/media_proxy_caches?page_size=2&page=3")
|> json_response_and_validate_schema(200)
- assert response["urls"] == ["http://localhost:4001/media/wb1f46.jpg"]
+ results = results ++ response["urls"]
+
+ assert results |> Enum.sort() ==
+ [
+ "http://localhost:4001/media/wb1f46.jpg",
+ "http://localhost:4001/media/gb1f44.jpg",
+ "http://localhost:4001/media/tb13f47.jpg",
+ "http://localhost:4001/media/fb1f4d.jpg",
+ "http://localhost:4001/media/a688346.jpg"
+ ]
+ |> Enum.sort()
end
test "search banned MediaProxy URLs", %{conn: conn} do
response =
conn
- |> get("/api/pleroma/admin/media_proxy_caches?page_size=2&query=F44")
+ |> get("/api/v1/pleroma/admin/media_proxy_caches?page_size=2&query=F44")
|> json_response_and_validate_schema(200)
- assert response["urls"] == [
- "http://localhost:4001/media/gb1f44.jpg",
- "http://localhost:4001/media/ff44b1f4d.jpg"
+ assert response["urls"] |> Enum.sort() == [
+ "http://localhost:4001/media/ff44b1f4d.jpg",
+ "http://localhost:4001/media/gb1f44.jpg"
]
assert response["page_size"] == 2
end
end
- describe "POST /api/pleroma/admin/media_proxy_caches/delete" do
+ describe "POST /api/v1/pleroma/admin/media_proxy_caches/delete" do
test "deleted MediaProxy URLs from banned", %{conn: conn} do
MediaProxy.put_in_banned_urls([
"http://localhost:4001/media/a688346.jpg",
conn
|> put_req_header("content-type", "application/json")
- |> post("/api/pleroma/admin/media_proxy_caches/delete", %{
+ |> post("/api/v1/pleroma/admin/media_proxy_caches/delete", %{
urls: ["http://localhost:4001/media/a688346.jpg"]
})
|> json_response_and_validate_schema(200)
end
end
- describe "POST /api/pleroma/admin/media_proxy_caches/purge" do
+ describe "POST /api/v1/pleroma/admin/media_proxy_caches/purge" do
test "perform invalidates cache of MediaProxy", %{conn: conn} do
urls = [
"http://example.com/media/a688346.jpg",
] do
conn
|> put_req_header("content-type", "application/json")
- |> post("/api/pleroma/admin/media_proxy_caches/purge", %{urls: urls, ban: false})
+ |> post("/api/v1/pleroma/admin/media_proxy_caches/purge", %{urls: urls, ban: false})
|> json_response_and_validate_schema(200)
refute MediaProxy.in_banned_urls("http://example.com/media/a688346.jpg")
conn
|> put_req_header("content-type", "application/json")
|> post(
- "/api/pleroma/admin/media_proxy_caches/purge",
+ "/api/v1/pleroma/admin/media_proxy_caches/purge",
%{urls: urls, ban: true}
)
|> json_response_and_validate_schema(200)