diff options
| author | kaniini <nenolod@gmail.com> | 2018-12-28 18:30:36 +0000 | 
|---|---|---|
| committer | kaniini <nenolod@gmail.com> | 2018-12-28 18:30:36 +0000 | 
| commit | 1cd825519c34762490fa44e7aa0cccf2a72826b6 (patch) | |
| tree | 30890879ca31f1d3ce077120bc0936bf7c6d5fcb /test | |
| parent | e1de866f95c7740d64070ff023b4bdcc013decc4 (diff) | |
| parent | d8cc96cb1f9e2a4e736f6830529e8aa9a5d289d8 (diff) | |
| download | pleroma-1cd825519c34762490fa44e7aa0cccf2a72826b6.tar.gz pleroma-1cd825519c34762490fa44e7aa0cccf2a72826b6.zip | |
Merge branch 'fix/public-timeline-auth' into 'develop'
Fix Twitter timelines for private instances
See merge request pleroma/pleroma!602
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 474d72df6..a4526eeda 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -112,6 +112,8 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    end    describe "GET /statuses/public_timeline.json" do +    setup [:valid_user] +      test "returns statuses", %{conn: conn} do        user = insert(:user)        activities = ActivityBuilder.insert_list(30, %{}, %{user: user}) @@ -145,14 +147,44 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        Application.put_env(:pleroma, :instance, instance)      end +    test "returns 200 to authenticated request when the instance is not public", +         %{conn: conn, user: user} do +      instance = +        Application.get_env(:pleroma, :instance) +        |> Keyword.put(:public, false) + +      Application.put_env(:pleroma, :instance, instance) + +      conn +      |> with_credentials(user.nickname, "test") +      |> get("/api/statuses/public_timeline.json") +      |> json_response(200) + +      instance = +        Application.get_env(:pleroma, :instance) +        |> Keyword.put(:public, true) + +      Application.put_env(:pleroma, :instance, instance) +    end +      test "returns 200 to unauthenticated request when the instance is public", %{conn: conn} do        conn        |> get("/api/statuses/public_timeline.json")        |> json_response(200)      end + +    test "returns 200 to authenticated request when the instance is public", +         %{conn: conn, user: user} do +      conn +      |> with_credentials(user.nickname, "test") +      |> get("/api/statuses/public_timeline.json") +      |> json_response(200) +    end    end    describe "GET /statuses/public_and_external_timeline.json" do +    setup [:valid_user] +      test "returns 403 to unauthenticated request when the instance is not public", %{conn: conn} do        instance =          Application.get_env(:pleroma, :instance) @@ -171,11 +203,39 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        Application.put_env(:pleroma, :instance, instance)      end +    test "returns 200 to authenticated request when the instance is not public", +         %{conn: conn, user: user} do +      instance = +        Application.get_env(:pleroma, :instance) +        |> Keyword.put(:public, false) + +      Application.put_env(:pleroma, :instance, instance) + +      conn +      |> with_credentials(user.nickname, "test") +      |> get("/api/statuses/public_and_external_timeline.json") +      |> json_response(200) + +      instance = +        Application.get_env(:pleroma, :instance) +        |> Keyword.put(:public, true) + +      Application.put_env(:pleroma, :instance, instance) +    end +      test "returns 200 to unauthenticated request when the instance is public", %{conn: conn} do        conn        |> get("/api/statuses/public_and_external_timeline.json")        |> json_response(200)      end + +    test "returns 200 to authenticated request when the instance is public", +         %{conn: conn, user: user} do +      conn +      |> with_credentials(user.nickname, "test") +      |> get("/api/statuses/public_and_external_timeline.json") +      |> json_response(200) +    end    end    describe "GET /statuses/show/:id.json" do | 
