diff options
Diffstat (limited to 'test/web/common_api/common_api_test.exs')
| -rw-r--r-- | test/web/common_api/common_api_test.exs | 66 | 
1 files changed, 56 insertions, 10 deletions
diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 181813c76..a5b07c446 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -5,33 +5,54 @@  defmodule Pleroma.Web.CommonAPITest do    use Pleroma.DataCase    alias Pleroma.Activity +  alias Pleroma.Object    alias Pleroma.User    alias Pleroma.Web.CommonAPI    import Pleroma.Factory +  test "with the safe_dm_mention option set, it does not mention people beyond the initial tags" do +    har = insert(:user) +    jafnhar = insert(:user) +    tridi = insert(:user) +    option = Pleroma.Config.get([:instance, :safe_dm_mentions]) +    Pleroma.Config.put([:instance, :safe_dm_mentions], true) + +    {:ok, activity} = +      CommonAPI.post(har, %{ +        "status" => "@#{jafnhar.nickname} hey, i never want to see @#{tridi.nickname} again", +        "visibility" => "direct" +      }) + +    refute tridi.ap_id in activity.recipients +    assert jafnhar.ap_id in activity.recipients +    Pleroma.Config.put([:instance, :safe_dm_mentions], option) +  end +    test "it de-duplicates tags" do      user = insert(:user)      {:ok, activity} = CommonAPI.post(user, %{"status" => "#2hu #2HU"}) -    assert activity.data["object"]["tag"] == ["2hu"] +    object = Object.normalize(activity.data["object"]) + +    assert object.data["tag"] == ["2hu"]    end    test "it adds emoji in the object" do      user = insert(:user) -    {:ok, activity} = CommonAPI.post(user, %{"status" => ":moominmamma:"}) +    {:ok, activity} = CommonAPI.post(user, %{"status" => ":firefox:"}) -    assert activity.data["object"]["emoji"]["moominmamma"] +    assert Object.normalize(activity).data["emoji"]["firefox"]    end    test "it adds emoji when updating profiles" do -    user = insert(:user, %{name: ":karjalanpiirakka:"}) +    user = insert(:user, %{name: ":firefox:"})      CommonAPI.update(user)      user = User.get_cached_by_ap_id(user.ap_id) -    [karjalanpiirakka] = user.info.source_data["tag"] +    [firefox] = user.info.source_data["tag"] -    assert karjalanpiirakka["name"] == ":karjalanpiirakka:" +    assert firefox["name"] == ":firefox:"    end    describe "posting" do @@ -46,8 +67,9 @@ defmodule Pleroma.Web.CommonAPITest do            "content_type" => "text/html"          }) -      content = activity.data["object"]["content"] -      assert content == "<p><b>2hu</b></p>alert('xss')" +      object = Object.normalize(activity.data["object"]) + +      assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"      end      test "it filters out obviously bad tags when accepting a post as Markdown" do @@ -61,8 +83,9 @@ defmodule Pleroma.Web.CommonAPITest do            "content_type" => "text/markdown"          }) -      content = activity.data["object"]["content"] -      assert content == "<p><b>2hu</b></p>alert('xss')" +      object = Object.normalize(activity.data["object"]) + +      assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"      end    end @@ -221,4 +244,27 @@ defmodule Pleroma.Web.CommonAPITest do               } = flag_activity      end    end + +  describe "reblog muting" do +    setup do +      muter = insert(:user) + +      muted = insert(:user) + +      [muter: muter, muted: muted] +    end + +    test "add a reblog mute", %{muter: muter, muted: muted} do +      {:ok, muter} = CommonAPI.hide_reblogs(muter, muted) + +      assert Pleroma.User.showing_reblogs?(muter, muted) == false +    end + +    test "remove a reblog mute", %{muter: muter, muted: muted} do +      {:ok, muter} = CommonAPI.hide_reblogs(muter, muted) +      {:ok, muter} = CommonAPI.show_reblogs(muter, muted) + +      assert Pleroma.User.showing_reblogs?(muter, muted) == true +    end +  end  end  | 
