X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fupload_test.exs;h=b06b54487e152dc397e3127930e481cefbaedace;hb=49c4e2495357797caa82b4eb0a4d03e8c8dd2730;hp=f7b1893ad965ef6b77f6502beb98a56a848a8c0b;hpb=f9a0014681a2054ca9fec9df4729bce8bc0b4060;p=akkoma diff --git a/test/upload_test.exs b/test/upload_test.exs index f7b1893ad..b06b54487 100644 --- a/test/upload_test.exs +++ b/test/upload_test.exs @@ -1,10 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2018 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.UploadTest do use Pleroma.DataCase + import ExUnit.CaptureLog + alias Pleroma.Upload alias Pleroma.Uploaders.Uploader @@ -52,6 +54,7 @@ defmodule Pleroma.UploadTest do %{ "name" => "image.jpg", "type" => "Document", + "mediaType" => "image/jpeg", "url" => [ %{ "href" => "http://localhost:4001/media/post-process-file.jpg", @@ -77,8 +80,12 @@ defmodule Pleroma.UploadTest do test "it returns error" do File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg") - assert Upload.store(@upload_file) == {:error, "Errors"} - Task.await(Agent.get(TestUploaderError, fn task_pid -> task_pid end)) + + assert capture_log(fn -> + assert Upload.store(@upload_file) == {:error, "Errors"} + Task.await(Agent.get(TestUploaderError, fn task_pid -> task_pid end)) + end) =~ + "[error] Elixir.Pleroma.Upload store (using Pleroma.UploadTest.TestUploaderError) failed: \"Errors\"" end end @@ -89,14 +96,19 @@ defmodule Pleroma.UploadTest do test "it returns error" do File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg") - assert Upload.store(@upload_file) == {:error, "Uploader callback timeout"} + + assert capture_log(fn -> + assert Upload.store(@upload_file) == {:error, "Uploader callback timeout"} + end) =~ + "[error] Elixir.Pleroma.Upload store (using Pleroma.UploadTest.TestUploader) failed: \"Uploader callback timeout\"" end end describe "Storing a file with the Local uploader" do setup [:ensure_local_uploader] - test "returns a media url" do + test "does not allow descriptions longer than the post limit" do + clear_config([:instance, :description_limit], 2) File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg") file = %Plug.Upload{ @@ -105,16 +117,10 @@ defmodule Pleroma.UploadTest do filename: "image.jpg" } - {:ok, data} = Upload.store(file) - - assert %{"url" => [%{"href" => url}]} = data - - assert String.starts_with?(url, Pleroma.Web.base_url() <> "/media/") + {:error, :description_too_long} = Upload.store(file, description: "123") end - test "returns a media url with configured base_url" do - base_url = "https://cache.pleroma.social" - + test "returns a media url" do File.cp!("test/fixtures/image.jpg", "test/fixtures/image_tmp.jpg") file = %Plug.Upload{ @@ -123,11 +129,11 @@ defmodule Pleroma.UploadTest do filename: "image.jpg" } - {:ok, data} = Upload.store(file, base_url: base_url) + {:ok, data} = Upload.store(file) assert %{"url" => [%{"href" => url}]} = data - assert String.starts_with?(url, base_url <> "/media/") + assert String.starts_with?(url, Pleroma.Web.base_url() <> "/media/") end test "copies the file to the configured folder with deduping" do @@ -256,4 +262,26 @@ defmodule Pleroma.UploadTest do "%3A%3F%23%5B%5D%40%21%24%26%5C%27%28%29%2A%2B%2C%3B%3D.jpg" end end + + describe "Setting a custom base_url for uploaded media" do + setup do: clear_config([Pleroma.Upload, :base_url], "https://cache.pleroma.social") + + test "returns a media url with configured base_url" do + base_url = Pleroma.Config.get([Pleroma.Upload, :base_url]) + + 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: "image.jpg" + } + + {:ok, data} = Upload.store(file, base_url: base_url) + + assert %{"url" => [%{"href" => url}]} = data + + refute String.starts_with?(url, base_url <> "/media/") + end + end end