diff options
author | lain <lain@soykaf.club> | 2020-05-21 15:35:13 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-05-21 15:35:13 +0200 |
commit | 578ed3a37f28ecbd9fd976c54ee53e8ed2a6adff (patch) | |
tree | 9eb3e3d2a5731378567a940321100efcb3f1bd7c /test/web/activity_pub | |
parent | c4a5cead51770f0d54cb77805b7e2bd705f251d9 (diff) | |
parent | a42a0716ec769dfbd97505b6c872c5ea1a8f800a (diff) | |
download | pleroma-578ed3a37f28ecbd9fd976c54ee53e8ed2a6adff.tar.gz pleroma-578ed3a37f28ecbd9fd976c54ee53e8ed2a6adff.zip |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
Diffstat (limited to 'test/web/activity_pub')
-rw-r--r-- | test/web/activity_pub/mrf/steal_emoji_policy_test.exs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/web/activity_pub/mrf/steal_emoji_policy_test.exs b/test/web/activity_pub/mrf/steal_emoji_policy_test.exs new file mode 100644 index 000000000..8882c8c13 --- /dev/null +++ b/test/web/activity_pub/mrf/steal_emoji_policy_test.exs @@ -0,0 +1,64 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.StealEmojiPolicyTest do + use Pleroma.DataCase + + alias Pleroma.Config + alias Pleroma.Web.ActivityPub.MRF.StealEmojiPolicy + + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + + setup do + clear_config(:mrf_steal_emoji) + + emoji_path = Path.join(Config.get([:instance, :static_dir]), "emoji/stolen") + File.rm_rf!(emoji_path) + File.mkdir!(emoji_path) + + Pleroma.Emoji.reload() + end + + test "does nothing by default" do + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + + message = %{ + "type" => "Create", + "object" => %{ + "emoji" => [{"firedfox", "https://example.org/emoji/firedfox.png"}], + "actor" => "https://example.org/users/admin" + } + } + + assert {:ok, message} == StealEmojiPolicy.filter(message) + + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + end + + test "Steals emoji on unknown shortcode from allowed remote host" do + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + refute "firedfox" in installed_emoji + + message = %{ + "type" => "Create", + "object" => %{ + "emoji" => [{"firedfox", "https://example.org/emoji/firedfox.png"}], + "actor" => "https://example.org/users/admin" + } + } + + Config.put([:mrf_steal_emoji, :hosts], ["example.org"]) + Config.put([:mrf_steal_emoji, :size_limit], 284_468) + + assert {:ok, message} == StealEmojiPolicy.filter(message) + + installed_emoji = Pleroma.Emoji.get_all() |> Enum.map(fn {k, _} -> k end) + assert "firedfox" in installed_emoji + end +end |