aboutsummaryrefslogtreecommitdiff
path: root/test/pleroma/web/media_proxy/invalidation/script_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/pleroma/web/media_proxy/invalidation/script_test.exs')
-rw-r--r--test/pleroma/web/media_proxy/invalidation/script_test.exs55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/pleroma/web/media_proxy/invalidation/script_test.exs b/test/pleroma/web/media_proxy/invalidation/script_test.exs
new file mode 100644
index 0000000..3e8fd75
--- /dev/null
+++ b/test/pleroma/web/media_proxy/invalidation/script_test.exs
@@ -0,0 +1,55 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do
+ use ExUnit.Case, async: true
+ alias Pleroma.Web.MediaProxy.Invalidation
+
+ import ExUnit.CaptureLog
+
+ test "it logs error when script is not found" do
+ assert capture_log(fn ->
+ assert {:error, msg} =
+ Invalidation.Script.purge(
+ ["http://example.com/media/example.jpg"],
+ script_path: "./example"
+ )
+
+ assert msg =~ ~r/%ErlangError{original: :enoent(, reason: nil)?}/
+ end) =~ ~r/Error while cache purge: %ErlangError{original: :enoent(, reason: nil)?}/
+
+ capture_log(fn ->
+ assert Invalidation.Script.purge(
+ ["http://example.com/media/example.jpg"],
+ []
+ ) == {:error, "\"not found script path\""}
+ end)
+ end
+
+ describe "url formatting" do
+ setup do
+ urls = [
+ "https://bikeshed.party/media/foo.png",
+ "http://safe.millennial.space/proxy/wheeeee.gif",
+ "https://lain.com/proxy/mediafile.mp4?foo&bar=true",
+ "http://localhost:4000/media/upload.jpeg"
+ ]
+
+ [urls: urls]
+ end
+
+ test "with invalid formatter", %{urls: urls} do
+ assert urls == Invalidation.Script.maybe_format_urls(urls, nil)
+ end
+
+ test "with :htcacheclean formatter", %{urls: urls} do
+ assert [
+ "https://bikeshed.party:443/media/foo.png?",
+ "http://safe.millennial.space:80/proxy/wheeeee.gif?",
+ "https://lain.com:443/proxy/mediafile.mp4?foo&bar=true",
+ "http://localhost:4000/media/upload.jpeg?"
+ ] == Invalidation.Script.maybe_format_urls(urls, :htcacheclean)
+ end
+ end
+end