diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 26 | ||||
| -rw-r--r-- | test/web/common_api/common_api_test.exs | 23 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 33 | 
3 files changed, 80 insertions, 2 deletions
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 7d1fe184e..7aed8c71d 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -89,6 +89,32 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      end    end +  describe "/activities/:uuid" do +    test "it returns a json representation of the activity", %{conn: conn} do +      activity = insert(:note_activity) +      uuid = String.split(activity.data["id"], "/") |> List.last() + +      conn = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get("/activities/#{uuid}") + +      assert json_response(conn, 200) == ObjectView.render("object.json", %{object: activity}) +    end + +    test "it returns 404 for non-public activities", %{conn: conn} do +      activity = insert(:direct_note_activity) +      uuid = String.split(activity.data["id"], "/") |> List.last() + +      conn = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get("/activities/#{uuid}") + +      assert json_response(conn, 404) +    end +  end +    describe "/inbox" do      test "it inserts an incoming activity into the database", %{conn: conn} do        data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!() diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index eb69ea4b2..9ac805f24 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -109,6 +109,11 @@ defmodule Pleroma.Web.CommonAPI.Test do      test "pin status", %{user: user, activity: activity} do        assert {:ok, ^activity} = CommonAPI.pin(activity.id, user) + +      id = activity.id +      user = refresh_record(user) + +      assert %User{info: %{pinned_activities: [^id]}} = user      end      test "only self-authored can be pinned", %{activity: activity} do @@ -131,7 +136,25 @@ defmodule Pleroma.Web.CommonAPI.Test do      test "unpin status", %{user: user, activity: activity} do        {:ok, activity} = CommonAPI.pin(activity.id, user) +      user = refresh_record(user) +        assert {:ok, ^activity} = CommonAPI.unpin(activity.id, user) + +      user = refresh_record(user) + +      assert %User{info: %{pinned_activities: []}} = user +    end + +    test "should unpin when deleting a status", %{user: user, activity: activity} do +      {:ok, activity} = CommonAPI.pin(activity.id, user) + +      user = refresh_record(user) + +      assert {:ok, _} = CommonAPI.delete(activity.id, user) + +      user = refresh_record(user) + +      assert %User{info: %{pinned_activities: []}} = user      end    end  end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index b448d13f5..fe8f845c7 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -1349,13 +1349,42 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      {:ok, _, _} = CommonAPI.favorite(activity.id, user) -    conn = +    first_conn =        conn        |> assign(:user, user)        |> get("/api/v1/favourites") -    assert [status] = json_response(conn, 200) +    assert [status] = json_response(first_conn, 200)      assert status["id"] == to_string(activity.id) + +    assert [{"link", link_header}] = +             Enum.filter(first_conn.resp_headers, fn element -> match?({"link", _}, element) end) + +    # Honours query params +    {:ok, second_activity} = +      CommonAPI.post(other_user, %{ +        "status" => +          "Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful." +      }) + +    {:ok, _, _} = CommonAPI.favorite(second_activity.id, user) + +    last_like = status["id"] + +    second_conn = +      conn +      |> assign(:user, user) +      |> get("/api/v1/favourites?since_id=#{last_like}") + +    assert [second_status] = json_response(second_conn, 200) +    assert second_status["id"] == to_string(second_activity.id) + +    third_conn = +      conn +      |> assign(:user, user) +      |> get("/api/v1/favourites?limit=0") + +    assert [] = json_response(third_conn, 200)    end    describe "updating credentials" do  | 
