diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-25 20:55:42 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-05-25 20:55:42 +0300 |
commit | 6e9e21d6fce543405d64c2bd368de943d1f6cb43 (patch) | |
tree | 8719fbf789d95c45623fb4b647d463f198989e15 /test | |
parent | 755bf36437632d51c720517c9a0c09a0459b7084 (diff) | |
download | pleroma-6e9e21d6fce543405d64c2bd368de943d1f6cb43.tar.gz |
added `deleted_urls_cache`
Diffstat (limited to 'test')
-rw-r--r-- | test/web/media_proxy/invalidation_test.exs | 21 | ||||
-rw-r--r-- | test/web/media_proxy/invalidations/http_test.exs | 4 | ||||
-rw-r--r-- | test/web/media_proxy/media_proxy_controller_test.exs | 12 |
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 |