logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: f20bfc9ea5059735c02f8a7260733bc7efbc90bd
parent: fd2f1258fb0249694d1ed7f5ba5a2f4baa858f20
Author: rinpatch <rinpatch@sdf.org>
Date:   Mon, 14 Jan 2019 18:52:23 +0000

Merge branch 'media-url-escape' into 'develop'

URI escape file upload URLs

See merge request pleroma/pleroma!665

Diffstat:

Mlib/pleroma/upload.ex2+-
Mtest/upload_test.exs15+++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex @@ -215,7 +215,7 @@ defmodule Pleroma.Upload do end defp url_from_spec(base_url, {:file, path}) do - [base_url, "media", path] + [base_url, "media", URI.encode(path)] |> Path.join() end diff --git a/test/upload_test.exs b/test/upload_test.exs @@ -137,5 +137,20 @@ defmodule Pleroma.UploadTest do refute data["name"] == "an [image.jpg" end + + test "escapes invalid characters in url" do + File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg") + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image_tmp.jpg"), + filename: "an… image.jpg" + } + + {:ok, data} = Upload.store(file) + [attachment_url | _] = data["url"] + + assert Path.basename(attachment_url["href"]) == "an%E2%80%A6%20image.jpg" + end end end