diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/upload/filter/dedupe_test.exs | 31 | ||||
| -rw-r--r-- | test/upload/filter/mogrifun_test.exs | 44 | ||||
| -rw-r--r-- | test/upload/filter/mogrify_test.exs | 51 | ||||
| -rw-r--r-- | test/upload/filter_test.exs | 39 | 
4 files changed, 165 insertions, 0 deletions
diff --git a/test/upload/filter/dedupe_test.exs b/test/upload/filter/dedupe_test.exs new file mode 100644 index 000000000..fddd594dc --- /dev/null +++ b/test/upload/filter/dedupe_test.exs @@ -0,0 +1,31 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.DedupeTest do +  use Pleroma.DataCase + +  alias Pleroma.Upload +  alias Pleroma.Upload.Filter.Dedupe + +  @shasum "e30397b58d226d6583ab5b8b3c5defb0c682bda5c31ef07a9f57c1c4986e3781" + +  test "adds shasum" do +    File.cp!( +      "test/fixtures/image.jpg", +      "test/fixtures/image_tmp.jpg" +    ) + +    upload = %Upload{ +      name: "an… image.jpg", +      content_type: "image/jpg", +      path: Path.absname("test/fixtures/image_tmp.jpg"), +      tempfile: Path.absname("test/fixtures/image_tmp.jpg") +    } + +    assert { +             :ok, +             %Pleroma.Upload{id: @shasum, path: "#{@shasum}.jpg"} +           } = Dedupe.filter(upload) +  end +end diff --git a/test/upload/filter/mogrifun_test.exs b/test/upload/filter/mogrifun_test.exs new file mode 100644 index 000000000..d5a8751cc --- /dev/null +++ b/test/upload/filter/mogrifun_test.exs @@ -0,0 +1,44 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.MogrifunTest do +  use Pleroma.DataCase +  import Mock + +  alias Pleroma.Upload +  alias Pleroma.Upload.Filter + +  test "apply mogrify filter" do +    File.cp!( +      "test/fixtures/image.jpg", +      "test/fixtures/image_tmp.jpg" +    ) + +    upload = %Upload{ +      name: "an… image.jpg", +      content_type: "image/jpg", +      path: Path.absname("test/fixtures/image_tmp.jpg"), +      tempfile: Path.absname("test/fixtures/image_tmp.jpg") +    } + +    task = +      Task.async(fn -> +        assert_receive {:apply_filter, {}}, 4_000 +      end) + +    with_mocks([ +      {Mogrify, [], +       [ +         open: fn _f -> %Mogrify.Image{} end, +         custom: fn _m, _a -> send(task.pid, {:apply_filter, {}}) end, +         custom: fn _m, _a, _o -> send(task.pid, {:apply_filter, {}}) end, +         save: fn _f, _o -> :ok end +       ]} +    ]) do +      assert Filter.Mogrifun.filter(upload) == :ok +    end + +    Task.await(task) +  end +end diff --git a/test/upload/filter/mogrify_test.exs b/test/upload/filter/mogrify_test.exs new file mode 100644 index 000000000..c301440fd --- /dev/null +++ b/test/upload/filter/mogrify_test.exs @@ -0,0 +1,51 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.MogrifyTest do +  use Pleroma.DataCase +  import Mock + +  alias Pleroma.Config +  alias Pleroma.Upload +  alias Pleroma.Upload.Filter + +  setup do +    filter = Config.get([Filter.Mogrify, :args]) + +    on_exit(fn -> +      Config.put([Filter.Mogrify, :args], filter) +    end) +  end + +  test "apply mogrify filter" do +    Config.put([Filter.Mogrify, :args], [{"tint", "40"}]) + +    File.cp!( +      "test/fixtures/image.jpg", +      "test/fixtures/image_tmp.jpg" +    ) + +    upload = %Upload{ +      name: "an… image.jpg", +      content_type: "image/jpg", +      path: Path.absname("test/fixtures/image_tmp.jpg"), +      tempfile: Path.absname("test/fixtures/image_tmp.jpg") +    } + +    task = +      Task.async(fn -> +        assert_receive {:apply_filter, {_, "tint", "40"}}, 4_000 +      end) + +    with_mock Mogrify, +      open: fn _f -> %Mogrify.Image{} end, +      custom: fn _m, _a -> :ok end, +      custom: fn m, a, o -> send(task.pid, {:apply_filter, {m, a, o}}) end, +      save: fn _f, _o -> :ok end do +      assert Filter.Mogrify.filter(upload) == :ok +    end + +    Task.await(task) +  end +end diff --git a/test/upload/filter_test.exs b/test/upload/filter_test.exs new file mode 100644 index 000000000..640cd7107 --- /dev/null +++ b/test/upload/filter_test.exs @@ -0,0 +1,39 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.FilterTest do +  use Pleroma.DataCase + +  alias Pleroma.Config +  alias Pleroma.Upload.Filter + +  setup do +    custom_filename = Config.get([Pleroma.Upload.Filter.AnonymizeFilename, :text]) + +    on_exit(fn -> +      Config.put([Pleroma.Upload.Filter.AnonymizeFilename, :text], custom_filename) +    end) +  end + +  test "applies filters" do +    Config.put([Pleroma.Upload.Filter.AnonymizeFilename, :text], "custom-file.png") + +    File.cp!( +      "test/fixtures/image.jpg", +      "test/fixtures/image_tmp.jpg" +    ) + +    upload = %Pleroma.Upload{ +      name: "an… image.jpg", +      content_type: "image/jpg", +      path: Path.absname("test/fixtures/image_tmp.jpg"), +      tempfile: Path.absname("test/fixtures/image_tmp.jpg") +    } + +    assert Filter.filter([], upload) == {:ok, upload} + +    assert {:ok, upload} = Filter.filter([Pleroma.Upload.Filter.AnonymizeFilename], upload) +    assert upload.name == "custom-file.png" +  end +end  | 
