URI.encode_query needs an enum, add test for this case

This commit is contained in:
Phantasm 2025-08-29 20:53:16 +02:00
commit 99a1c0890a
No known key found for this signature in database
GPG key ID: 2669E588BCC634C8
2 changed files with 21 additions and 1 deletions

View file

@ -241,7 +241,8 @@ defmodule Pleroma.Upload do
path =
HTTP.encode_url(path, encode_opts) <>
if Pleroma.Config.get([__MODULE__, :link_name], false) do
"?name=#{URI.encode_query(name)}"
enum = %{name: name}
"?#{URI.encode_query(enum)}"
else
""
end

View file

@ -282,4 +282,23 @@ defmodule Pleroma.UploadTest do
refute String.starts_with?(url, base_url <> "/media/")
end
end
describe "Setting a link_name for uploaded media" do
setup do: clear_config([Pleroma.Upload, :link_name], true)
test "encodes name parameter in query" do
File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg")
file = %Plug.Upload{
content_type: "image/jpeg",
path: Path.absname("test/fixtures/image_tmp.jpg"),
filename: "test file.jpg"
}
{:ok, data} = Upload.store(file)
[attachment_url | _] = data["url"]
assert Path.basename(attachment_url["href"]) == "test%20file.jpg?name=test+file.jpg"
end
end
end