diff options
| author | lain <lain@soykaf.club> | 2019-09-13 16:31:27 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-09-13 16:31:27 +0200 | 
| commit | a7f31bf06cfe3f8e2549393f34d6573854d783c0 (patch) | |
| tree | f53d6747ee73044f7b342d3fdae3d30b5b5b3c90 /test/web/mastodon_api | |
| parent | f649a2e972b70dfefb7bfc110b27a0194cda51c5 (diff) | |
| parent | 0d9609894f4f4557da2db62a33da1b8995c9e1d7 (diff) | |
| download | pleroma-a7f31bf06cfe3f8e2549393f34d6573854d783c0.tar.gz pleroma-a7f31bf06cfe3f8e2549393f34d6573854d783c0.zip | |
Merge remote-tracking branch 'origin/develop' into reactions
Diffstat (limited to 'test/web/mastodon_api')
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 109 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_test.exs | 7 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/status_view_test.exs | 29 | 
3 files changed, 116 insertions, 29 deletions
| diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 4fd0a5aeb..f4902d043 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -21,7 +21,6 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do    alias Pleroma.Web.OAuth.Token    alias Pleroma.Web.OStatus    alias Pleroma.Web.Push -  alias Pleroma.Web.TwitterAPI.TwitterAPI    import Pleroma.Factory    import ExUnit.CaptureLog    import Tesla.Mock @@ -745,6 +744,16 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert id == to_string(activity.id)    end +  test "get statuses by IDs", %{conn: conn} do +    %{id: id1} = insert(:note_activity) +    %{id: id2} = insert(:note_activity) + +    query_string = "ids[]=#{id1}&ids[]=#{id2}" +    conn = get(conn, "/api/v1/statuses/?#{query_string}") + +    assert [%{"id" => ^id1}, %{"id" => ^id2}] = json_response(conn, :ok) +  end +    describe "deleting a status" do      test "when you created it", %{conn: conn} do        activity = insert(:note_activity) @@ -1484,12 +1493,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do          filename: "an_image.jpg"        } -      media = -        TwitterAPI.upload(file, user, "json") -        |> Jason.decode!() +      {:ok, %{id: media_id}} = ActivityPub.upload(file, actor: user.ap_id) -      {:ok, image_post} = -        CommonAPI.post(user, %{"status" => "cofe", "media_ids" => [media["media_id"]]}) +      {:ok, image_post} = CommonAPI.post(user, %{"status" => "cofe", "media_ids" => [media_id]})        conn =          conn @@ -1675,32 +1681,85 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end    end -  test "account fetching", %{conn: conn} do -    user = insert(:user) +  describe "account fetching" do +    test "works by id" do +      user = insert(:user) -    conn = -      conn -      |> get("/api/v1/accounts/#{user.id}") +      conn = +        build_conn() +        |> get("/api/v1/accounts/#{user.id}") -    assert %{"id" => id} = json_response(conn, 200) -    assert id == to_string(user.id) +      assert %{"id" => id} = json_response(conn, 200) +      assert id == to_string(user.id) -    conn = -      build_conn() -      |> get("/api/v1/accounts/-1") +      conn = +        build_conn() +        |> get("/api/v1/accounts/-1") -    assert %{"error" => "Can't find user"} = json_response(conn, 404) -  end +      assert %{"error" => "Can't find user"} = json_response(conn, 404) +    end -  test "account fetching also works nickname", %{conn: conn} do -    user = insert(:user) +    test "works by nickname" do +      user = insert(:user) -    conn = -      conn -      |> get("/api/v1/accounts/#{user.nickname}") +      conn = +        build_conn() +        |> get("/api/v1/accounts/#{user.nickname}") -    assert %{"id" => id} = json_response(conn, 200) -    assert id == user.id +      assert %{"id" => id} = json_response(conn, 200) +      assert id == user.id +    end + +    test "works by nickname for remote users" do +      limit_to_local = Pleroma.Config.get([:instance, :limit_to_local_content]) +      Pleroma.Config.put([:instance, :limit_to_local_content], false) +      user = insert(:user, nickname: "user@example.com", local: false) + +      conn = +        build_conn() +        |> get("/api/v1/accounts/#{user.nickname}") + +      Pleroma.Config.put([:instance, :limit_to_local_content], limit_to_local) +      assert %{"id" => id} = json_response(conn, 200) +      assert id == user.id +    end + +    test "respects limit_to_local_content == :all for remote user nicknames" do +      limit_to_local = Pleroma.Config.get([:instance, :limit_to_local_content]) +      Pleroma.Config.put([:instance, :limit_to_local_content], :all) + +      user = insert(:user, nickname: "user@example.com", local: false) + +      conn = +        build_conn() +        |> get("/api/v1/accounts/#{user.nickname}") + +      Pleroma.Config.put([:instance, :limit_to_local_content], limit_to_local) +      assert json_response(conn, 404) +    end + +    test "respects limit_to_local_content == :unauthenticated for remote user nicknames" do +      limit_to_local = Pleroma.Config.get([:instance, :limit_to_local_content]) +      Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated) + +      user = insert(:user, nickname: "user@example.com", local: false) +      reading_user = insert(:user) + +      conn = +        build_conn() +        |> get("/api/v1/accounts/#{user.nickname}") + +      assert json_response(conn, 404) + +      conn = +        build_conn() +        |> assign(:user, reading_user) +        |> get("/api/v1/accounts/#{user.nickname}") + +      Pleroma.Config.put([:instance, :limit_to_local_content], limit_to_local) +      assert %{"id" => id} = json_response(conn, 200) +      assert id == user.id +    end    end    test "mascot upload", %{conn: conn} do diff --git a/test/web/mastodon_api/mastodon_api_test.exs b/test/web/mastodon_api/mastodon_api_test.exs index b4c0427c9..7fcb2bd55 100644 --- a/test/web/mastodon_api/mastodon_api_test.exs +++ b/test/web/mastodon_api/mastodon_api_test.exs @@ -8,8 +8,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPITest do    alias Pleroma.Notification    alias Pleroma.ScheduledActivity    alias Pleroma.User +  alias Pleroma.Web.CommonAPI    alias Pleroma.Web.MastodonAPI.MastodonAPI -  alias Pleroma.Web.TwitterAPI.TwitterAPI    import Pleroma.Factory @@ -75,8 +75,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPITest do        User.subscribe(subscriber, user) -      {:ok, status} = TwitterAPI.create_status(user, %{"status" => "Akariiiin"}) -      {:ok, status1} = TwitterAPI.create_status(user, %{"status" => "Magi"}) +      {:ok, status} = CommonAPI.post(user, %{"status" => "Akariiiin"}) + +      {:ok, status1} = CommonAPI.post(user, %{"status" => "Magi"})        {:ok, [notification]} = Notification.create_notifications(status)        {:ok, [notification1]} = Notification.create_notifications(status1)        res = MastodonAPI.get_notifications(subscriber) diff --git a/test/web/mastodon_api/views/status_view_test.exs b/test/web/mastodon_api/views/status_view_test.exs index 1b6beb6d2..fcdd7fbcb 100644 --- a/test/web/mastodon_api/views/status_view_test.exs +++ b/test/web/mastodon_api/views/status_view_test.exs @@ -150,7 +150,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do          content: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["content"])},          spoiler_text: %{"text/plain" => HtmlSanitizeEx.strip_tags(object_data["summary"])},          expires_at: nil, -        direct_conversation_id: nil +        direct_conversation_id: nil, +        thread_muted: false        }      } @@ -173,6 +174,24 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do      assert status.muted == true    end +  test "tells if the message is thread muted" 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, for: user}) + +    assert status.pleroma.thread_muted == false + +    {:ok, activity} = CommonAPI.add_mute(user, activity) + +    status = StatusView.render("status.json", %{activity: activity, for: user}) + +    assert status.pleroma.thread_muted == true +  end +    test "tells if the status is bookmarked" do      user = insert(:user) @@ -532,6 +551,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        assert Enum.at(result[:options], 1)[:votes_count] == 1        assert Enum.at(result[:options], 2)[:votes_count] == 1      end + +    test "does not crash on polls with no end date" do +      object = Object.normalize("https://skippers-bin.com/notes/7x9tmrp97i") +      result = StatusView.render("poll.json", %{object: object}) + +      assert result[:expires_at] == nil +      assert result[:expired] == false +    end    end    test "embeds a relationship in the account" do | 
