diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/formatter_test.exs | 114 | ||||
| -rw-r--r-- | test/user_test.exs | 14 | ||||
| -rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 7 | ||||
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 35 | ||||
| -rw-r--r-- | test/web/common_api/common_api_utils_test.exs | 44 | ||||
| -rw-r--r-- | test/web/mastodon_api/account_view_test.exs | 66 | ||||
| -rw-r--r-- | test/web/mastodon_api/status_view_test.exs | 16 | ||||
| -rw-r--r-- | test/web/twitter_api/representers/activity_representer_test.exs | 43 | ||||
| -rw-r--r-- | test/web/twitter_api/views/activity_view_test.exs | 19 | ||||
| -rw-r--r-- | test/web/twitter_api/views/user_view_test.exs | 7 | 
10 files changed, 239 insertions, 126 deletions
| diff --git a/test/formatter_test.exs b/test/formatter_test.exs index f14077d25..7d8864bf4 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -21,22 +21,16 @@ defmodule Pleroma.FormatterTest do        expected_text =          "I love <a class='hashtag' data-tag='cofe' href='http://localhost:4001/tag/cofe' rel='tag'>#cofe</a> and <a class='hashtag' data-tag='2hu' href='http://localhost:4001/tag/2hu' rel='tag'>#2hu</a>" -      tags = Formatter.parse_tags(text) - -      assert expected_text == -               Formatter.add_hashtag_links({[], text}, tags) |> Formatter.finalize() +      assert {^expected_text, [], _tags} = Formatter.linkify(text)      end      test "does not turn html characters to tags" do -      text = "Fact #3: pleroma does what mastodon't" +      text = "#fact_3: pleroma does what mastodon't"        expected_text = -        "Fact <a class='hashtag' data-tag='3' href='http://localhost:4001/tag/3' rel='tag'>#3</a>: pleroma does what mastodon't" - -      tags = Formatter.parse_tags(text) +        "<a class='hashtag' data-tag='fact_3' href='http://localhost:4001/tag/fact_3' rel='tag'>#fact_3</a>: pleroma does what mastodon't" -      assert expected_text == -               Formatter.add_hashtag_links({[], text}, tags) |> Formatter.finalize() +      assert {^expected_text, [], _tags} = Formatter.linkify(text)      end    end @@ -47,79 +41,79 @@ defmodule Pleroma.FormatterTest do        expected =          "Hey, check out <a href=\"https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla\">https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla</a> ." -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://mastodon.social/@lambadalambda"        expected =          "<a href=\"https://mastodon.social/@lambadalambda\">https://mastodon.social/@lambadalambda</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://mastodon.social:4000/@lambadalambda"        expected =          "<a href=\"https://mastodon.social:4000/@lambadalambda\">https://mastodon.social:4000/@lambadalambda</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "@lambadalambda"        expected = "@lambadalambda" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "http://www.cs.vu.nl/~ast/intel/"        expected = "<a href=\"http://www.cs.vu.nl/~ast/intel/\">http://www.cs.vu.nl/~ast/intel/</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://forum.zdoom.org/viewtopic.php?f=44&t=57087"        expected =          "<a href=\"https://forum.zdoom.org/viewtopic.php?f=44&t=57087\">https://forum.zdoom.org/viewtopic.php?f=44&t=57087</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul"        expected =          "<a href=\"https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul\">https://en.wikipedia.org/wiki/Sophia_(Gnosticism)#Mythos_of_the_soul</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://www.google.co.jp/search?q=Nasim+Aghdam"        expected =          "<a href=\"https://www.google.co.jp/search?q=Nasim+Aghdam\">https://www.google.co.jp/search?q=Nasim+Aghdam</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://en.wikipedia.org/wiki/Duff's_device"        expected =          "<a href=\"https://en.wikipedia.org/wiki/Duff's_device\">https://en.wikipedia.org/wiki/Duff's_device</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "https://pleroma.com https://pleroma.com/sucks"        expected =          "<a href=\"https://pleroma.com\">https://pleroma.com</a> <a href=\"https://pleroma.com/sucks\">https://pleroma.com/sucks</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text = "xmpp:contact@hacktivis.me"        expected = "<a href=\"xmpp:contact@hacktivis.me\">xmpp:contact@hacktivis.me</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)        text =          "magnet:?xt=urn:btih:7ec9d298e91d6e4394d1379caf073c77ff3e3136&tr=udp%3A%2F%2Fopentor.org%3A2710&tr=udp%3A%2F%2Ftracker.blackunicorn.xyz%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com"        expected = "<a href=\"#{text}\">#{text}</a>" -      assert Formatter.add_links({[], text}) |> Formatter.finalize() == expected +      assert {^expected, [], []} = Formatter.linkify(text)      end    end @@ -136,12 +130,9 @@ defmodule Pleroma.FormatterTest do        archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"}) -      mentions = Pleroma.Formatter.parse_mentions(text) - -      {subs, text} = Formatter.add_user_links({[], text}, mentions) +      {text, mentions, []} = Formatter.linkify(text) -      assert length(subs) == 3 -      Enum.each(subs, fn {uuid, _} -> assert String.contains?(text, uuid) end) +      assert length(mentions) == 3        expected_text =          "<span class='h-card'><a data-user='#{gsimg.id}' class='u-url mention' href='#{ @@ -152,7 +143,7 @@ defmodule Pleroma.FormatterTest do            archaeme_remote.id          }' class='u-url mention' href='#{archaeme_remote.ap_id}'>@<span>archaeme</span></a></span>" -      assert expected_text == Formatter.finalize({subs, text}) +      assert expected_text == text      end      test "gives a replacement for user links when the user is using Osada" do @@ -160,48 +151,35 @@ defmodule Pleroma.FormatterTest do        text = "@mike@osada.macgirvin.com test" -      mentions = Formatter.parse_mentions(text) +      {text, mentions, []} = Formatter.linkify(text) -      {subs, text} = Formatter.add_user_links({[], text}, mentions) - -      assert length(subs) == 1 -      Enum.each(subs, fn {uuid, _} -> assert String.contains?(text, uuid) end) +      assert length(mentions) == 1        expected_text =          "<span class='h-card'><a data-user='#{mike.id}' class='u-url mention' href='#{mike.ap_id}'>@<span>mike</span></a></span> test" -      assert expected_text == Formatter.finalize({subs, text}) +      assert expected_text == text      end      test "gives a replacement for single-character local nicknames" do        text = "@o hi"        o = insert(:user, %{nickname: "o"}) -      mentions = Formatter.parse_mentions(text) - -      {subs, text} = Formatter.add_user_links({[], text}, mentions) +      {text, mentions, []} = Formatter.linkify(text) -      assert length(subs) == 1 -      Enum.each(subs, fn {uuid, _} -> assert String.contains?(text, uuid) end) +      assert length(mentions) == 1        expected_text =          "<span class='h-card'><a data-user='#{o.id}' class='u-url mention' href='#{o.ap_id}'>@<span>o</span></a></span> hi" -      assert expected_text == Formatter.finalize({subs, text}) +      assert expected_text == text      end      test "does not give a replacement for single-character local nicknames who don't exist" do        text = "@a hi" -      mentions = Formatter.parse_mentions(text) - -      {subs, text} = Formatter.add_user_links({[], text}, mentions) - -      assert Enum.empty?(subs) -      Enum.each(subs, fn {uuid, _} -> assert String.contains?(text, uuid) end) -        expected_text = "@a hi" -      assert expected_text == Formatter.finalize({subs, text}) +      assert {^expected_text, [] = _mentions, [] = _tags} = Formatter.linkify(text)      end    end @@ -209,14 +187,14 @@ defmodule Pleroma.FormatterTest do      test "parses tags in the text" do        text = "Here's a #Test. Maybe these are #working or not. What about #漢字? And #は。" -      expected = [ +      expected_tags = [          {"#Test", "test"},          {"#working", "working"}, -        {"#漢字", "漢字"}, -        {"#は", "は"} +        {"#は", "は"}, +        {"#漢字", "漢字"}        ] -      assert Formatter.parse_tags(text) == expected +      assert {_text, [], ^expected_tags} = Formatter.linkify(text)      end    end @@ -230,15 +208,15 @@ defmodule Pleroma.FormatterTest do      archaeme = insert(:user, %{nickname: "archaeme"})      archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"}) -    expected_result = [ -      {"@gsimg", gsimg}, +    expected_mentions = [        {"@archaeme", archaeme},        {"@archaeme@archae.me", archaeme_remote}, -      {"@o", o}, -      {"@jimm", jimm} +      {"@gsimg", gsimg}, +      {"@jimm", jimm}, +      {"@o", o}      ] -    assert Formatter.parse_mentions(text) == expected_result +    assert {_text, ^expected_mentions, []} = Formatter.linkify(text)    end    test "it adds cool emoji" do @@ -281,22 +259,10 @@ defmodule Pleroma.FormatterTest do      assert Formatter.get_emoji(text) == []    end -  describe "/mentions_escape" do -    test "it returns text with escaped mention names" do -      text = """ -      @a_breakin_glass@cybre.space -      (also, little voice inside my head thinking "maybe this will encourage people -      pronouncing it properly instead of saying _raKEWdo_ ") -      """ - -      escape_text = """ -      @a\\_breakin\\_glass@cybre\\.space -      (also, little voice inside my head thinking \"maybe this will encourage people -      pronouncing it properly instead of saying _raKEWdo_ \") -      """ - -      mentions = [{"@a_breakin_glass@cybre.space", %{}}] -      assert Formatter.mentions_escape(text, mentions) == escape_text -    end +  test "it escapes HTML in plain text" do +    text = "hello & world google.com/?a=b&c=d \n http://test.com/?a=b&c=d 1" +    expected = "hello & world google.com/?a=b&c=d \n http://test.com/?a=b&c=d 1" + +    assert Formatter.html_escape(text, "text/plain") == expected    end  end diff --git a/test/user_test.exs b/test/user_test.exs index 0b1c39ecf..cbe4693fc 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -50,6 +50,20 @@ defmodule Pleroma.UserTest do      assert expected_followers_collection == User.ap_followers(user)    end +  test "returns all pending follow requests" do +    unlocked = insert(:user) +    locked = insert(:user, %{info: %{locked: true}}) +    follower = insert(:user) + +    Pleroma.Web.TwitterAPI.TwitterAPI.follow(follower, %{"user_id" => unlocked.id}) +    Pleroma.Web.TwitterAPI.TwitterAPI.follow(follower, %{"user_id" => locked.id}) + +    assert {:ok, []} = User.get_follow_requests(unlocked) +    assert {:ok, [activity]} = User.get_follow_requests(locked) + +    assert activity +  end +    test "follow_all follows mutliple users" do      user = insert(:user)      followed_zero = insert(:user) diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 11262c523..ac3a565de 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -291,6 +291,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      assert Enum.member?(activities, activity_three)      refute Enum.member?(activities, activity_one) +    # Calling with 'with_muted' will deliver muted activities, too. +    activities = ActivityPub.fetch_activities([], %{"muting_user" => user, "with_muted" => true}) + +    assert Enum.member?(activities, activity_two) +    assert Enum.member?(activities, activity_three) +    assert Enum.member?(activities, activity_one) +      {:ok, user} = User.unmute(user, %User{ap_id: activity_one.data["actor"]})      activities = ActivityPub.fetch_activities([], %{"muting_user" => user}) diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 9fbaaba39..f6ae16844 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -330,4 +330,39 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      assert conn.status == 200    end + +  test "GET /api/pleroma/admin/users" do +    admin = insert(:user, info: %{is_admin: true}) +    user = insert(:user) + +    conn = +      build_conn() +      |> assign(:user, admin) +      |> get("/api/pleroma/admin/users") + +    assert json_response(conn, 200) == [ +             %{ +               "deactivated" => user.info.deactivated, +               "id" => user.id, +               "nickname" => user.nickname +             } +           ] +  end + +  test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do +    admin = insert(:user, info: %{is_admin: true}) +    user = insert(:user) + +    conn = +      build_conn() +      |> assign(:user, admin) +      |> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation") + +    assert json_response(conn, 200) == +             %{ +               "deactivated" => !user.info.deactivated, +               "id" => user.id, +               "nickname" => user.nickname +             } +  end  end diff --git a/test/web/common_api/common_api_utils_test.exs b/test/web/common_api/common_api_utils_test.exs index faed6b685..684f2a23f 100644 --- a/test/web/common_api/common_api_utils_test.exs +++ b/test/web/common_api/common_api_utils_test.exs @@ -57,19 +57,19 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do      assert expected == Utils.emoji_from_profile(user)    end -  describe "format_input/4" do +  describe "format_input/3" do      test "works for bare text/plain" do        text = "hello world!"        expected = "hello world!" -      output = Utils.format_input(text, [], [], "text/plain") +      {output, [], []} = Utils.format_input(text, "text/plain")        assert output == expected        text = "hello world!\n\nsecond paragraph!"        expected = "hello world!<br><br>second paragraph!" -      output = Utils.format_input(text, [], [], "text/plain") +      {output, [], []} = Utils.format_input(text, "text/plain")        assert output == expected      end @@ -78,14 +78,14 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do        text = "<p>hello world!</p>"        expected = "<p>hello world!</p>" -      output = Utils.format_input(text, [], [], "text/html") +      {output, [], []} = Utils.format_input(text, "text/html")        assert output == expected        text = "<p>hello world!</p>\n\n<p>second paragraph</p>"        expected = "<p>hello world!</p>\n\n<p>second paragraph</p>" -      output = Utils.format_input(text, [], [], "text/html") +      {output, [], []} = Utils.format_input(text, "text/html")        assert output == expected      end @@ -94,14 +94,44 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do        text = "**hello world**"        expected = "<p><strong>hello world</strong></p>\n" -      output = Utils.format_input(text, [], [], "text/markdown") +      {output, [], []} = Utils.format_input(text, "text/markdown")        assert output == expected        text = "**hello world**\n\n*another paragraph*"        expected = "<p><strong>hello world</strong></p>\n<p><em>another paragraph</em></p>\n" -      output = Utils.format_input(text, [], [], "text/markdown") +      {output, [], []} = Utils.format_input(text, "text/markdown") + +      assert output == expected + +      text = """ +      > cool quote + +      by someone +      """ + +      expected = "<blockquote><p>cool quote</p>\n</blockquote>\n<p>by someone</p>\n" + +      {output, [], []} = Utils.format_input(text, "text/markdown") + +      assert output == expected +    end + +    test "works for text/markdown with mentions" do +      {:ok, user} = +        UserBuilder.insert(%{nickname: "user__test", ap_id: "http://foo.com/user__test"}) + +      text = "**hello world**\n\n*another @user__test and @user__test google.com paragraph*" + +      expected = +        "<p><strong>hello world</strong></p>\n<p><em>another <span class=\"h-card\"><a data-user=\"#{ +          user.id +        }\" class=\"u-url mention\" href=\"http://foo.com/user__test\">@<span>user__test</span></a></span> and <span class=\"h-card\"><a data-user=\"#{ +          user.id +        }\" class=\"u-url mention\" href=\"http://foo.com/user__test\">@<span>user__test</span></a></span> <a href=\"http://google.com\">google.com</a> paragraph</em></p>\n" + +      {output, _, _} = Utils.format_input(text, "text/markdown")        assert output == expected      end diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs index f8cd68173..6be66ef63 100644 --- a/test/web/mastodon_api/account_view_test.exs +++ b/test/web/mastodon_api/account_view_test.exs @@ -63,7 +63,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do          confirmation_pending: false,          tags: [],          is_admin: false, -        is_moderator: false +        is_moderator: false, +        relationship: %{}        }      } @@ -106,7 +107,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do          confirmation_pending: false,          tags: [],          is_admin: false, -        is_moderator: false +        is_moderator: false, +        relationship: %{}        }      } @@ -148,4 +150,64 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      assert expected == AccountView.render("relationship.json", %{user: user, target: other_user})    end + +  test "represent an embedded relationship" do +    user = +      insert(:user, %{ +        info: %{note_count: 5, follower_count: 3, source_data: %{"type" => "Service"}}, +        nickname: "shp@shitposter.club", +        inserted_at: ~N[2017-08-15 15:47:06.597036] +      }) + +    other_user = insert(:user) + +    {:ok, other_user} = User.follow(other_user, user) +    {:ok, other_user} = User.block(other_user, user) + +    expected = %{ +      id: to_string(user.id), +      username: "shp", +      acct: user.nickname, +      display_name: user.name, +      locked: false, +      created_at: "2017-08-15T15:47:06.000Z", +      followers_count: 3, +      following_count: 0, +      statuses_count: 5, +      note: user.bio, +      url: user.ap_id, +      avatar: "http://localhost:4001/images/avi.png", +      avatar_static: "http://localhost:4001/images/avi.png", +      header: "http://localhost:4001/images/banner.png", +      header_static: "http://localhost:4001/images/banner.png", +      emojis: [], +      fields: [], +      bot: true, +      source: %{ +        note: "", +        privacy: "public", +        sensitive: false +      }, +      pleroma: %{ +        confirmation_pending: false, +        tags: [], +        is_admin: false, +        is_moderator: false, +        relationship: %{ +          id: to_string(user.id), +          following: false, +          followed_by: false, +          blocking: true, +          muting: false, +          muting_notifications: false, +          requested: false, +          domain_blocking: false, +          showing_reblogs: false, +          endorsed: false +        } +      } +    } + +    assert expected == AccountView.render("account.json", %{user: user, for: other_user}) +  end  end diff --git a/test/web/mastodon_api/status_view_test.exs b/test/web/mastodon_api/status_view_test.exs index 3412a6be2..351dbf673 100644 --- a/test/web/mastodon_api/status_view_test.exs +++ b/test/web/mastodon_api/status_view_test.exs @@ -126,6 +126,22 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do      assert status == expected    end +  test "tells if the message is muted for some reason" do +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, user} = User.mute(user, other_user) + +    {:ok, activity} = CommonAPI.post(other_user, %{"status" => "test"}) +    status = StatusView.render("status.json", %{activity: activity}) + +    assert status.muted == false + +    status = StatusView.render("status.json", %{activity: activity, for: user}) + +    assert status.muted == true +  end +    test "a reply" do      note = insert(:note_activity)      user = insert(:user) diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 365c7f659..0e554623c 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -13,36 +13,6 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do    alias Pleroma.Web.TwitterAPI.UserView    import Pleroma.Factory -  test "an announce activity" do -    user = insert(:user) -    note_activity = insert(:note_activity) -    activity_actor = Repo.get_by(User, ap_id: note_activity.data["actor"]) -    object = Object.get_by_ap_id(note_activity.data["object"]["id"]) - -    {:ok, announce_activity, _object} = ActivityPub.announce(user, object) -    note_activity = Activity.get_by_ap_id(note_activity.data["id"]) - -    status = -      ActivityRepresenter.to_map(announce_activity, %{ -        users: [user, activity_actor], -        announced_activity: note_activity, -        for: user -      }) - -    assert status["id"] == announce_activity.id -    assert status["user"] == UserView.render("show.json", %{user: user, for: user}) - -    retweeted_status = -      ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user}) - -    assert retweeted_status["repeated"] == true -    assert retweeted_status["id"] == note_activity.id -    assert status["statusnet_conversation_id"] == retweeted_status["statusnet_conversation_id"] - -    assert status["retweeted_status"] == retweeted_status -    assert status["activity_type"] == "repeat" -  end -    test "a like activity" do      user = insert(:user)      note_activity = insert(:note_activity) @@ -168,6 +138,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do        "uri" => activity.data["object"]["id"],        "visibility" => "direct",        "card" => nil, +      "muted" => false,        "summary" => "2hu :2hu:",        "summary_html" =>          "2hu <img height=\"32px\" width=\"32px\" alt=\"2hu\" title=\"2hu\" src=\"corndog.png\" />" @@ -180,18 +151,6 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do             }) == expected_status    end -  test "an undo for a follow" do -    follower = insert(:user) -    followed = insert(:user) - -    {:ok, _follow} = ActivityPub.follow(follower, followed) -    {:ok, unfollow} = ActivityPub.unfollow(follower, followed) - -    map = ActivityRepresenter.to_map(unfollow, %{user: follower}) -    assert map["is_post_verb"] == false -    assert map["activity_type"] == "undo" -  end -    test "a delete activity" do      object = insert(:note)      user = User.get_by_ap_id(object.data["actor"]) diff --git a/test/web/twitter_api/views/activity_view_test.exs b/test/web/twitter_api/views/activity_view_test.exs index 4f854ecaa..0a5384f34 100644 --- a/test/web/twitter_api/views/activity_view_test.exs +++ b/test/web/twitter_api/views/activity_view_test.exs @@ -56,6 +56,22 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do      assert result["user"]["id"] == user.id    end +  test "tells if the message is muted for some reason" do +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, user} = User.mute(user, other_user) + +    {:ok, activity} = CommonAPI.post(other_user, %{"status" => "test"}) +    status = ActivityView.render("activity.json", %{activity: activity}) + +    assert status["muted"] == false + +    status = ActivityView.render("activity.json", %{activity: activity, for: user}) + +    assert status["muted"] == true +  end +    test "a create activity with a html status" do      text = """      #Bike log - Commute Tuesday\nhttps://pla.bike/posts/20181211/\n#cycling #CHScycling #commute\nMVIMG_20181211_054020.jpg @@ -149,7 +165,8 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do        "uri" => activity.data["object"]["id"],        "user" => UserView.render("show.json", %{user: user}),        "visibility" => "direct", -      "card" => nil +      "card" => nil, +      "muted" => false      }      assert result == expected diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 95e52ca46..114f24a1c 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -239,6 +239,13 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do      assert represented["role"] == nil    end +  test "A regular user for the admin", %{user: user} do +    admin = insert(:user, %{info: %{is_admin: true}}) +    represented = UserView.render("show.json", %{user: user, for: admin}) + +    assert represented["pleroma"]["deactivated"] == false +  end +    test "A blocked user for the blocker" do      user = insert(:user)      blocker = insert(:user) | 
