diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2019-11-28 21:26:56 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-11-28 21:27:01 +0300 | 
| commit | b7c449118bc09ab36610e85292d153ace67c2b89 (patch) | |
| tree | 1b00c2dec9d233ec3aaefd699aee3f4080f68119 /test/web | |
| parent | 1403a1441de36e8a58da5e996c208a9c10f65440 (diff) | |
| parent | ca1acfa314a57f78c2f5f8e60a4bd1380350e483 (diff) | |
| download | pleroma-b7c449118bc09ab36610e85292d153ace67c2b89.tar.gz pleroma-b7c449118bc09ab36610e85292d153ace67c2b89.zip | |
Merge branch 'develop' into issue/1383
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 13 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 5 | ||||
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 38 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/account_view_test.exs | 11 | ||||
| -rw-r--r-- | test/web/ostatus/ostatus_controller_test.exs | 79 | ||||
| -rw-r--r-- | test/web/streamer/streamer_test.exs | 2 | 
6 files changed, 81 insertions, 67 deletions
| diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index a5414c521..1aa73d75c 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -110,6 +110,19 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do        assert json_response(conn, 200) == UserView.render("user.json", %{user: user})      end + +    test "it returns 404 for remote users", %{ +      conn: conn +    } do +      user = insert(:user, local: false, nickname: "remoteuser@example.com") + +      conn = +        conn +        |> put_req_header("accept", "application/json") +        |> get("/users/#{user.nickname}.json") + +      assert json_response(conn, 404) +    end    end    describe "/object/:uuid" do diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 0bdd514e9..b31c411dc 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -39,6 +39,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert activity == returned_activity      end +    @tag capture_log: true      test "it fetches replied-to activities if we don't have them" do        data =          File.read!("test/fixtures/mastodon-post-activity.json") @@ -533,6 +534,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert object.data["content"] == "this is a private toot"      end +    @tag capture_log: true      test "it rejects incoming announces with an inlined activity from another origin" do        data =          File.read!("test/fixtures/bogus-mastodon-announce.json") @@ -814,6 +816,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert Activity.get_by_id(activity.id)      end +    @tag capture_log: true      test "it works for incoming user deletes" do        %{ap_id: ap_id} = insert(:user, ap_id: "http://mastodon.example.org/users/admin") @@ -1749,6 +1752,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert modified_object["inReplyToAtomUri"] == ""      end +    @tag capture_log: true      test "returns modified object when allowed incoming reply", %{data: data} do        object_with_reply =          Map.put( @@ -1868,6 +1872,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do               end) =~ "Unsupported URI scheme"      end +    @tag capture_log: true      test "returns {:ok, %Object{}} for success case" do        assert {:ok, %Object{}} =                 Transmogrifier.get_obj_helper("https://shitposter.club/notice/2827873") diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 9b4f359dc..32577afee 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1923,6 +1923,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        Pleroma.Config.put([:instance, :dynamic_configuration], true)      end +    @tag capture_log: true      test "create new config setting in db", %{conn: conn} do        conn =          post(conn, "/api/pleroma/admin/config", %{ @@ -2862,6 +2863,43 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end    end +  describe "instances" do +    test "GET /instances/:instance/statuses" do +      admin = insert(:user, is_admin: true) +      user = insert(:user, local: false, nickname: "archaeme@archae.me") +      user2 = insert(:user, local: false, nickname: "test@test.com") +      insert_pair(:note_activity, user: user) +      insert(:note_activity, user: user2) + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/instances/archae.me/statuses") + +      response = json_response(conn, 200) + +      assert length(response) == 2 + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/instances/test.com/statuses") + +      response = json_response(conn, 200) + +      assert length(response) == 1 + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/instances/nonexistent.com/statuses") + +      response = json_response(conn, 200) + +      assert length(response) == 0 +    end +  end +    describe "PATCH /confirm_email" do      setup %{conn: conn} do        admin = insert(:user, is_admin: true) diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index af88841ed..d147079ab 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -350,7 +350,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do        }      } -    assert expected == AccountView.render("show.json", %{user: user, for: other_user}) +    assert expected == +             AccountView.render("show.json", %{user: refresh_record(user), for: other_user})    end    test "returns the settings store if the requesting user is the represented user and it's requested specifically" do @@ -374,6 +375,14 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      refute result.display_name == "<marquee> username </marquee>"    end +  test "never display nil user follow counts" do +    user = insert(:user, following_count: 0, follower_count: 0) +    result = AccountView.render("show.json", %{user: user}) + +    assert result.following_count == 0 +    assert result.followers_count == 0 +  end +    describe "hiding follows/following" do      test "shows when follows/followers stats are hidden and sets follow/follower count to 0" do        user = diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index 37b7b62f5..50235dfef 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -35,23 +35,6 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do        assert redirected_to(conn) == "/notice/#{note_activity.id}"      end -    test "500s when user not found", %{conn: conn} do -      note_activity = insert(:note_activity) -      object = Object.normalize(note_activity) -      user = User.get_cached_by_ap_id(note_activity.data["actor"]) -      User.invalidate_cache(user) -      Pleroma.Repo.delete(user) -      [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, object.data["id"])) -      url = "/objects/#{uuid}" - -      conn = -        conn -        |> put_req_header("accept", "application/xml") -        |> get(url) - -      assert response(conn, 500) == ~S({"error":"Something went wrong"}) -    end -      test "404s on private objects", %{conn: conn} do        note_activity = insert(:direct_note_activity)        object = Object.normalize(note_activity) @@ -82,21 +65,6 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do        assert redirected_to(conn) == "/notice/#{note_activity.id}"      end -    test "505s when user not found", %{conn: conn} do -      note_activity = insert(:note_activity) -      [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"])) -      user = User.get_cached_by_ap_id(note_activity.data["actor"]) -      User.invalidate_cache(user) -      Pleroma.Repo.delete(user) - -      conn = -        conn -        |> put_req_header("accept", "text/html") -        |> get("/activities/#{uuid}") - -      assert response(conn, 500) == ~S({"error":"Something went wrong"}) -    end -      test "404s on private activities", %{conn: conn} do        note_activity = insert(:direct_note_activity)        [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"])) @@ -127,21 +95,28 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do    end    describe "GET notice/2" do -    test "gets a notice in xml format", %{conn: conn} do +    test "redirects to a proper object URL when json requested and the object is local", %{ +      conn: conn +    } do        note_activity = insert(:note_activity) +      expected_redirect_url = Object.normalize(note_activity).data["id"] -      conn -      |> get("/notice/#{note_activity.id}") -      |> response(200) +      redirect_url = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get("/notice/#{note_activity.id}") +        |> redirected_to() + +      assert redirect_url == expected_redirect_url      end -    test "gets a notice in AS2 format", %{conn: conn} do -      note_activity = insert(:note_activity) +    test "returns a 404 on remote notice when json requested", %{conn: conn} do +      note_activity = insert(:note_activity, local: false)        conn        |> put_req_header("accept", "application/activity+json")        |> get("/notice/#{note_activity.id}") -      |> json_response(200) +      |> response(404)      end      test "500s when actor not found", %{conn: conn} do @@ -157,32 +132,6 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do        assert response(conn, 500) == ~S({"error":"Something went wrong"})      end -    test "only gets a notice in AS2 format for Create messages", %{conn: conn} do -      note_activity = insert(:note_activity) -      url = "/notice/#{note_activity.id}" - -      conn = -        conn -        |> put_req_header("accept", "application/activity+json") -        |> get(url) - -      assert json_response(conn, 200) - -      user = insert(:user) - -      {:ok, like_activity, _} = CommonAPI.favorite(note_activity.id, user) -      url = "/notice/#{like_activity.id}" - -      assert like_activity.data["type"] == "Like" - -      conn = -        build_conn() -        |> put_req_header("accept", "application/activity+json") -        |> get(url) - -      assert response(conn, 404) -    end -      test "render html for redirect for html format", %{conn: conn} do        note_activity = insert(:note_activity) diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index 80a7541b2..8265f18dd 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.Web.StreamerTest do    alias Pleroma.Web.Streamer.StreamerSocket    alias Pleroma.Web.Streamer.Worker -  @moduletag needs_streamer: true +  @moduletag needs_streamer: true, capture_log: true    clear_config_all([:instance, :skip_thread_containment])    describe "user streams" do | 
