pleroma/test/pleroma/web/media_proxy/invalidation/script_test.exs

56 lines
1.8 KiB
Elixir
Raw Normal View History

2020-10-12 19:00:50 +02:00
# Pleroma: A lightweight social networking server
2022-02-26 07:11:42 +01:00
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
2020-10-12 19:00:50 +02:00
# SPDX-License-Identifier: AGPL-3.0-only
2020-05-18 08:22:26 +02:00
defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do
use ExUnit.Case, async: true
2020-05-18 08:22:26 +02:00
alias Pleroma.Web.MediaProxy.Invalidation
import ExUnit.CaptureLog
2021-01-21 21:42:08 +01:00
test "it logs error when script is not found" do
2020-05-18 08:22:26 +02:00
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)?}/
2020-05-18 08:22:26 +02:00
2020-06-14 20:02:57 +02:00
capture_log(fn ->
assert Invalidation.Script.purge(
["http://example.com/media/example.jpg"],
[]
) == {:error, "\"not found script path\""}
end)
2020-05-18 08:22:26 +02:00
end
2021-01-21 21:42:16 +01:00
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
2020-05-18 08:22:26 +02:00
end