aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2020-05-25 20:55:42 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2020-05-25 20:55:42 +0300
commit6e9e21d6fce543405d64c2bd368de943d1f6cb43 (patch)
tree8719fbf789d95c45623fb4b647d463f198989e15 /test
parent755bf36437632d51c720517c9a0c09a0459b7084 (diff)
downloadpleroma-6e9e21d6fce543405d64c2bd368de943d1f6cb43.tar.gz
added `deleted_urls_cache`
Diffstat (limited to 'test')
-rw-r--r--test/web/media_proxy/invalidation_test.exs21
-rw-r--r--test/web/media_proxy/invalidations/http_test.exs4
-rw-r--r--test/web/media_proxy/media_proxy_controller_test.exs12
3 files changed, 29 insertions, 8 deletions
diff --git a/test/web/media_proxy/invalidation_test.exs b/test/web/media_proxy/invalidation_test.exs
index e97cf9fc1..8348663f3 100644
--- a/test/web/media_proxy/invalidation_test.exs
+++ b/test/web/media_proxy/invalidation_test.exs
@@ -13,10 +13,13 @@ defmodule Pleroma.Web.MediaProxy.InvalidationTest do
describe "Invalidation.Http" do
test "perform request to clear cache" do
+ Config.put([:media_proxy, :enabled], false)
Config.put([:media_proxy, :invalidation, :enabled], true)
Config.put([:media_proxy, :invalidation, :provider], Invalidation.Http)
Config.put([Invalidation.Http], method: :purge, headers: [{"x-refresh", 1}])
+ image_url = "http://example.com/media/example.jpg"
+ Pleroma.Web.MediaProxy.put_in_deleted_urls(image_url)
mock(fn
%{
@@ -28,23 +31,29 @@ defmodule Pleroma.Web.MediaProxy.InvalidationTest do
end)
assert capture_log(fn ->
- assert Invalidation.purge(["http://example.com/media/example.jpg"]) ==
- {:ok, "success"}
- end) =~ "Running cache purge: [\"http://example.com/media/example.jpg\"]"
+ assert Pleroma.Web.MediaProxy.in_deleted_urls(image_url)
+ assert Invalidation.purge([image_url]) == {:ok, [image_url]}
+ refute Pleroma.Web.MediaProxy.in_deleted_urls(image_url)
+ end) =~ "Running cache purge: [\"#{image_url}\"]"
end
end
describe "Invalidation.Script" do
test "run script to clear cache" do
+ Config.put([:media_proxy, :enabled], false)
Config.put([:media_proxy, :invalidation, :enabled], true)
Config.put([:media_proxy, :invalidation, :provider], Invalidation.Script)
Config.put([Invalidation.Script], script_path: "purge-nginx")
+ image_url = "http://example.com/media/example.jpg"
+ Pleroma.Web.MediaProxy.put_in_deleted_urls(image_url)
+
with_mocks [{System, [], [cmd: fn _, _ -> {"ok", 0} end]}] do
assert capture_log(fn ->
- assert Invalidation.purge(["http://example.com/media/example.jpg"]) ==
- {:ok, "success"}
- end) =~ "Running cache purge: [\"http://example.com/media/example.jpg\"]"
+ assert Pleroma.Web.MediaProxy.in_deleted_urls(image_url)
+ assert Invalidation.purge([image_url]) == {:ok, [image_url]}
+ refute Pleroma.Web.MediaProxy.in_deleted_urls(image_url)
+ end) =~ "Running cache purge: [\"#{image_url}\"]"
end
end
end
diff --git a/test/web/media_proxy/invalidations/http_test.exs b/test/web/media_proxy/invalidations/http_test.exs
index 553b86b76..062dd0b87 100644
--- a/test/web/media_proxy/invalidations/http_test.exs
+++ b/test/web/media_proxy/invalidations/http_test.exs
@@ -15,7 +15,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do
assert Invalidation.Http.purge(
["http://example.com/media/example.jpg"],
[]
- ) == {:ok, "success"}
+ ) == {:ok, ["http://example.com/media/example.jpg"]}
end) =~ "Error while cache purge"
end
@@ -29,7 +29,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.HttpTest do
assert Invalidation.Http.purge(
["http://example.com/media/example1.jpg"],
[]
- ) == {:ok, "success"}
+ ) == {:ok, ["http://example.com/media/example1.jpg"]}
end) =~ "Error while cache purge: url - http://example.com/media/example1.jpg"
end
end
diff --git a/test/web/media_proxy/media_proxy_controller_test.exs b/test/web/media_proxy/media_proxy_controller_test.exs
index da79d38a5..306d53bf8 100644
--- a/test/web/media_proxy/media_proxy_controller_test.exs
+++ b/test/web/media_proxy/media_proxy_controller_test.exs
@@ -66,4 +66,16 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyControllerTest do
assert %Plug.Conn{status: :success} = get(conn, url)
end
end
+
+ test "it returns 404 when url contains in deleted_urls cache", %{conn: conn} do
+ Config.put([:media_proxy, :enabled], true)
+ Config.put([Pleroma.Web.Endpoint, :secret_key_base], "00000000000")
+ url = Pleroma.Web.MediaProxy.encode_url("https://google.fn/test.png")
+ Pleroma.Web.MediaProxy.put_in_deleted_urls("https://google.fn/test.png")
+
+ with_mock Pleroma.ReverseProxy,
+ call: fn _conn, _url, _opts -> %Plug.Conn{status: :success} end do
+ assert %Plug.Conn{status: 404, resp_body: "Not Found"} = get(conn, url)
+ end
+ end
end