aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-01-14 18:52:23 +0000
committerrinpatch <rinpatch@sdf.org>2019-01-14 18:52:23 +0000
commitf20bfc9ea5059735c02f8a7260733bc7efbc90bd (patch)
treed48b768640e5d49dca1328a7adc57bcf223f06e1
parentfd2f1258fb0249694d1ed7f5ba5a2f4baa858f20 (diff)
parentdcbe5bd58ccb1068d17ba15703169593d4bbb393 (diff)
downloadpleroma-f20bfc9ea5059735c02f8a7260733bc7efbc90bd.tar.gz
Merge branch 'media-url-escape' into 'develop'
URI escape file upload URLs See merge request pleroma/pleroma!665
-rw-r--r--lib/pleroma/upload.ex2
-rw-r--r--test/upload_test.exs15
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex
index 0b1bdeec4..185ba25fa 100644
--- 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
index d4ea3a573..bda503361 100644
--- 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