Cowboy and Elixir don't seem to agree on uri encoding...
authorRoger Braun <roger@rogerbraun.net>
Wed, 9 Aug 2017 14:45:05 +0000 (16:45 +0200)
committerRoger Braun <roger@rogerbraun.net>
Wed, 9 Aug 2017 14:45:05 +0000 (16:45 +0200)
lib/pleroma/upload.ex
test/upload_test.exs

index 5691c6845255a0668a19cc7f38dcb4634ce4a57f..2717377a37f4f6d1c1379fb80f6e225563742601 100644 (file)
@@ -13,7 +13,7 @@ defmodule Pleroma.Upload do
       "url" => [%{
         "type" => "Link",
         "mediaType" => file.content_type,
-        "href" => url_for(Path.join(uuid, URI.encode(file.filename)))
+        "href" => url_for(Path.join(uuid, :cow_uri.urlencode(file.filename)))
       }],
       "name" => file.filename,
       "uuid" => uuid
@@ -38,7 +38,7 @@ defmodule Pleroma.Upload do
       "url" => [%{
         "type" => "Link",
         "mediaType" => content_type,
-        "href" => url_for(Path.join(uuid, URI.encode(filename)))
+        "href" => url_for(Path.join(uuid, :cow_uri.urlencode(filename)))
       }],
       "name" => filename,
       "uuid" => uuid
index d29a1f2ba574535f6397453b2913346ca5bdc07f..71041e83c4ab0d55913f17ce66c13ef8622858ea 100644 (file)
@@ -4,10 +4,10 @@ defmodule Pleroma.UploadTest do
 
   describe "Storing a file" do
     test "copies the file to the configured folder" do
-      file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an image.jpg"}
+      file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an [image.jpg"}
       data = Upload.store(file)
-      assert data["name"] == "an image.jpg"
-      assert List.first(data["url"])["href"] == "http://localhost:4001/media/#{data["uuid"]}/an%20image.jpg"
+      assert data["name"] == "an [image.jpg"
+      assert List.first(data["url"])["href"] == "http://localhost:4001/media/#{data["uuid"]}/an%20%5Bimage.jpg"
     end
   end
 end