diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/support/builders/activity_builder.ex | 2 | ||||
-rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 31 |
2 files changed, 30 insertions, 3 deletions
diff --git a/test/support/builders/activity_builder.ex b/test/support/builders/activity_builder.ex index b44afa896..a82dc29d4 100644 --- a/test/support/builders/activity_builder.ex +++ b/test/support/builders/activity_builder.ex @@ -23,7 +23,7 @@ defmodule Pleroma.Builders.ActivityBuilder do def insert_list(times, data \\ %{}, opts \\ %{}) do Enum.map(1..times, fn (n) -> - {:ok, activity} = insert(%{"id" => n}) + {:ok, activity} = insert(Map.merge(data, %{"id" => n})) activity end) end diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index e243942c6..86c03c652 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do use Pleroma.Web.ConnCase alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter} alias Pleroma.Builders.{ActivityBuilder, UserBuilder} - alias Pleroma.{Repo, Activity} + alias Pleroma.{Repo, Activity, User} describe "POST /api/account/verify_credentials" do setup [:valid_user] @@ -52,8 +52,35 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do end end + describe "GET /statuses/friends_timeline.json" do + setup [:valid_user] + test "without valid credentials", %{conn: conn} do + conn = get conn, "/api/statuses/friends_timeline.json" + assert json_response(conn, 403) == %{"error" => "Invalid credentials."} + end + + test "with credentials", %{conn: conn, user: current_user} do + {:ok, user} = UserBuilder.insert + activities = ActivityBuilder.insert_list(30, %{"to" => [User.ap_followers(user)]}, %{user: user}) + ActivityBuilder.insert_list(10, %{"to" => [User.ap_followers(user)]}, %{user: user}) + {:ok, other_user} = UserBuilder.insert(%{ap_id: "glimmung", nickname: "nockame"}) + ActivityBuilder.insert_list(10, %{}, %{user: other_user}) + since_id = List.last(activities).id + + current_user = Ecto.Changeset.change(current_user, following: [User.ap_followers(user)]) |> Repo.update! + + conn = conn + |> with_credentials(current_user.nickname, "test") + |> get("/api/statuses/friends_timeline.json", %{since_id: since_id}) + + response = json_response(conn, 200) + + assert length(response) == 10 + end + end + defp valid_user(_context) do - { :ok, user } = UserBuilder.insert + { :ok, user } = UserBuilder.insert(%{nickname: "lambda", ap_id: "lambda"}) [user: user] end |