diff options
| author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-22 11:22:31 +0300 | 
|---|---|---|
| committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-22 11:22:31 +0300 | 
| commit | 32a643a159df2b2af4263ebfb7f7c9fd245d3a6a (patch) | |
| tree | ddb914af404955f163efc006ddf2ea329957c8dd /test | |
| parent | 7ee2f86d7634b7de59f029f9fd141d9d51cd769c (diff) | |
| parent | 71bffbf0b7a3f0e245408a977c48a51763021508 (diff) | |
| download | pleroma-32a643a159df2b2af4263ebfb7f7c9fd245d3a6a.tar.gz pleroma-32a643a159df2b2af4263ebfb7f7c9fd245d3a6a.zip | |
Merge branch 'develop' into admin-be
Diffstat (limited to 'test')
| -rw-r--r-- | test/object_test.exs | 40 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/search_controller_test.exs | 50 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/status_view_test.exs | 19 | 
3 files changed, 94 insertions, 15 deletions
| diff --git a/test/object_test.exs b/test/object_test.exs index b002c2bae..9b4e6f0bf 100644 --- a/test/object_test.exs +++ b/test/object_test.exs @@ -4,12 +4,14 @@  defmodule Pleroma.ObjectTest do    use Pleroma.DataCase +  use Oban.Testing, repo: Pleroma.Repo    import ExUnit.CaptureLog    import Pleroma.Factory    import Tesla.Mock    alias Pleroma.Activity    alias Pleroma.Object    alias Pleroma.Repo +  alias Pleroma.Tests.ObanHelpers    alias Pleroma.Web.CommonAPI    setup do @@ -99,6 +101,8 @@ defmodule Pleroma.ObjectTest do        Object.delete(note) +      ObanHelpers.perform(all_enqueued(worker: Pleroma.Workers.AttachmentsCleanupWorker)) +        assert Object.get_by_id(attachment.id) == nil        assert {:ok, []} == File.ls("#{uploads_dir}/#{path}") @@ -133,10 +137,46 @@ defmodule Pleroma.ObjectTest do        Object.delete(note) +      ObanHelpers.perform(all_enqueued(worker: Pleroma.Workers.AttachmentsCleanupWorker)) +        assert Object.get_by_id(attachment.id) == nil        assert {:ok, files} = File.ls(uploads_dir)        refute filename in files      end + +    test "with objects that have legacy data.url attribute" do +      Pleroma.Config.put([Pleroma.Upload, :uploader], Pleroma.Uploaders.Local) + +      file = %Plug.Upload{ +        content_type: "image/jpg", +        path: Path.absname("test/fixtures/image.jpg"), +        filename: "an_image.jpg" +      } + +      user = insert(:user) + +      {:ok, %Object{} = attachment} = +        Pleroma.Web.ActivityPub.ActivityPub.upload(file, actor: user.ap_id) + +      {:ok, %Object{}} = Object.create(%{url: "https://google.com", actor: user.ap_id}) + +      %{data: %{"attachment" => [%{"url" => [%{"href" => href}]}]}} = +        note = insert(:note, %{user: user, data: %{"attachment" => [attachment.data]}}) + +      uploads_dir = Pleroma.Config.get!([Pleroma.Uploaders.Local, :uploads]) + +      path = href |> Path.dirname() |> Path.basename() + +      assert {:ok, ["an_image.jpg"]} == File.ls("#{uploads_dir}/#{path}") + +      Object.delete(note) + +      ObanHelpers.perform(all_enqueued(worker: Pleroma.Workers.AttachmentsCleanupWorker)) + +      assert Object.get_by_id(attachment.id) == nil + +      assert {:ok, []} == File.ls("#{uploads_dir}/#{path}") +    end    end    describe "normalizer" do diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index 7fedf42e5..effae130c 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -53,7 +53,8 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do        {:ok, _} = CommonAPI.post(user_two, %{"status" => "This isn't"})        results = -        get(conn, "/api/v2/search", %{"q" => "2hu #private"}) +        conn +        |> get("/api/v2/search", %{"q" => "2hu #private"})          |> json_response(200)        [account | _] = results["accounts"] @@ -73,6 +74,30 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do        [status] = results["statuses"]        assert status["id"] == to_string(activity.id)      end + +    test "excludes a blocked users from search results", %{conn: conn} do +      user = insert(:user) +      user_smith = insert(:user, %{nickname: "Agent", name: "I love 2hu"}) +      user_neo = insert(:user, %{nickname: "Agent Neo", name: "Agent"}) + +      {:ok, act1} = CommonAPI.post(user, %{"status" => "This is about 2hu private 天子"}) +      {:ok, act2} = CommonAPI.post(user_smith, %{"status" => "Agent Smith"}) +      {:ok, act3} = CommonAPI.post(user_neo, %{"status" => "Agent Smith"}) +      Pleroma.User.block(user, user_smith) + +      results = +        conn +        |> assign(:user, user) +        |> assign(:token, insert(:oauth_token, user: user, scopes: ["read"])) +        |> get("/api/v2/search", %{"q" => "Agent"}) +        |> json_response(200) + +      status_ids = Enum.map(results["statuses"], fn g -> g["id"] end) + +      assert act3.id in status_ids +      refute act2.id in status_ids +      refute act1.id in status_ids +    end    end    describe ".account_search" do @@ -146,11 +171,10 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do        {:ok, _} = CommonAPI.post(user_two, %{"status" => "This isn't"}) -      conn = +      results =          conn          |> get("/api/v1/search", %{"q" => "2hu"}) - -      assert results = json_response(conn, 200) +        |> json_response(200)        [account | _] = results["accounts"]        assert account["id"] == to_string(user_three.id) @@ -168,11 +192,10 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do              "status" => "check out https://shitposter.club/notice/2827873"            }) -        conn = +        results =            conn            |> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"}) - -        assert results = json_response(conn, 200) +          |> json_response(200)          [status, %{"id" => ^activity_id}] = results["statuses"] @@ -189,11 +212,10 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do          })        capture_log(fn -> -        conn = +        results =            conn            |> get("/api/v1/search", %{"q" => Object.normalize(activity).data["id"]}) - -        assert results = json_response(conn, 200) +          |> json_response(200)          [] = results["statuses"]        end) @@ -202,23 +224,23 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do      test "search fetches remote accounts", %{conn: conn} do        user = insert(:user) -      conn = +      results =          conn          |> assign(:user, user)          |> assign(:token, insert(:oauth_token, user: user, scopes: ["read"]))          |> get("/api/v1/search", %{"q" => "mike@osada.macgirvin.com", "resolve" => "true"}) +        |> json_response(200) -      assert results = json_response(conn, 200)        [account] = results["accounts"]        assert account["acct"] == "mike@osada.macgirvin.com"      end      test "search doesn't fetch remote accounts if resolve is false", %{conn: conn} do -      conn = +      results =          conn          |> get("/api/v1/search", %{"q" => "mike@osada.macgirvin.com", "resolve" => "false"}) +        |> json_response(200) -      assert results = json_response(conn, 200)        assert [] == results["accounts"]      end diff --git a/test/web/mastodon_api/views/status_view_test.exs b/test/web/mastodon_api/views/status_view_test.exs index 17b6ebcbc..b54b19c0b 100644 --- a/test/web/mastodon_api/views/status_view_test.exs +++ b/test/web/mastodon_api/views/status_view_test.exs @@ -24,6 +24,22 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do      :ok    end +  test "has an emoji reaction list" do +    user = insert(:user) +    other_user = insert(:user) +    third_user = insert(:user) +    {:ok, activity} = CommonAPI.post(user, %{"status" => "dae cofe??"}) + +    {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, user, "☕") +    {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, other_user, "☕") +    {:ok, _, _} = CommonAPI.react_with_emoji(activity.id, third_user, "🍵") +    activity = Repo.get(Activity, activity.id) +    status = StatusView.render("show.json", activity: activity) + +    assert status[:pleroma][:emoji_reactions]["🍵"] == 1 +    assert status[:pleroma][:emoji_reactions]["☕"] == 2 +  end +    test "loads and returns the direct conversation id when given the `with_direct_conversation_id` option" do      user = insert(:user) @@ -172,7 +188,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do          spoiler_text: %{"text/plain" => HTML.strip_tags(object_data["summary"])},          expires_at: nil,          direct_conversation_id: nil, -        thread_muted: false +        thread_muted: false, +        emoji_reactions: %{}        }      } | 
