diff options
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 82 | ||||
| -rw-r--r-- | test/web/activity_pub/mrf/activity_expiration_policy_test.exs | 8 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 28 | ||||
| -rw-r--r-- | test/web/common_api/common_api_test.exs | 14 | ||||
| -rw-r--r-- | test/web/instances/instance_test.exs | 77 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/search_controller_test.exs | 12 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/status_controller_test.exs | 101 | ||||
| -rw-r--r-- | test/web/oauth/token_test.exs | 13 | ||||
| -rw-r--r-- | test/web/twitter_api/password_controller_test.exs | 4 | ||||
| -rw-r--r-- | test/web/twitter_api/remote_follow_controller_test.exs | 4 | 
10 files changed, 215 insertions, 128 deletions
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 03f968aaf..d8caa0b00 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -239,7 +239,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do          }        } -      assert {:error, {:remote_limit_error, _}} = ActivityPub.insert(data) +      assert {:error, :remote_limit} = ActivityPub.insert(data)      end      test "doesn't drop activities with content being null" do @@ -386,9 +386,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do    end    describe "create activities" do -    test "it reverts create" do -      user = insert(:user) +    setup do +      [user: insert(:user)] +    end +    test "it reverts create", %{user: user} do        with_mock(Utils, [:passthrough], maybe_federate: fn _ -> {:error, :reverted} end) do          assert {:error, :reverted} =                   ActivityPub.create(%{ @@ -407,9 +409,47 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        assert Repo.aggregate(Object, :count, :id) == 0      end -    test "removes doubled 'to' recipients" do -      user = insert(:user) +    test "creates activity if expiration is not configured and expires_at is not passed", %{ +      user: user +    } do +      clear_config([Pleroma.Workers.PurgeExpiredActivity, :enabled], false) + +      assert {:ok, _} = +               ActivityPub.create(%{ +                 to: ["user1", "user2"], +                 actor: user, +                 context: "", +                 object: %{ +                   "to" => ["user1", "user2"], +                   "type" => "Note", +                   "content" => "testing" +                 } +               }) +    end + +    test "rejects activity if expires_at present but expiration is not configured", %{user: user} do +      clear_config([Pleroma.Workers.PurgeExpiredActivity, :enabled], false) + +      assert {:error, :expired_activities_disabled} = +               ActivityPub.create(%{ +                 to: ["user1", "user2"], +                 actor: user, +                 context: "", +                 object: %{ +                   "to" => ["user1", "user2"], +                   "type" => "Note", +                   "content" => "testing" +                 }, +                 additional: %{ +                   "expires_at" => DateTime.utc_now() +                 } +               }) +      assert Repo.aggregate(Activity, :count, :id) == 0 +      assert Repo.aggregate(Object, :count, :id) == 0 +    end + +    test "removes doubled 'to' recipients", %{user: user} do        {:ok, activity} =          ActivityPub.create(%{            to: ["user1", "user1", "user2"], @@ -427,9 +467,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        assert activity.recipients == ["user1", "user2", user.ap_id]      end -    test "increases user note count only for public activities" do -      user = insert(:user) - +    test "increases user note count only for public activities", %{user: user} do        {:ok, _} =          CommonAPI.post(User.get_cached_by_id(user.id), %{            status: "1", @@ -458,8 +496,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        assert user.note_count == 2      end -    test "increases replies count" do -      user = insert(:user) +    test "increases replies count", %{user: user} do        user2 = insert(:user)        {:ok, activity} = CommonAPI.post(user, %{status: "1", visibility: "public"}) @@ -2069,18 +2106,25 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do    end    describe "global activity expiration" do -    setup do: clear_config([:mrf, :policies]) -      test "creates an activity expiration for local Create activities" do -      Pleroma.Config.put( -        [:mrf, :policies], -        Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy +      clear_config([:mrf, :policies], Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy) + +      {:ok, activity} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"}) +      {:ok, follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"}) + +      assert_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: activity.id}, +        scheduled_at: +          activity.inserted_at +          |> DateTime.from_naive!("Etc/UTC") +          |> Timex.shift(days: 365)        ) -      {:ok, %{id: id_create}} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"}) -      {:ok, _follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"}) - -      assert [%{activity_id: ^id_create}] = Pleroma.ActivityExpiration |> Repo.all() +      refute_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: follow.id} +      )      end    end diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs index f25cf8b12..e7370d4ef 100644 --- a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs +++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs @@ -18,11 +18,11 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do                 "object" => %{"type" => "Note"}               }) -    assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 +    assert Timex.diff(expires_at, DateTime.utc_now(), :days) == 364    end    test "keeps existing `expires_at` if it less than the config setting" do -    expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: 1) +    expires_at = DateTime.utc_now() |> Timex.shift(days: 1)      assert {:ok, %{"type" => "Create", "expires_at" => ^expires_at}} =               ActivityExpirationPolicy.filter(%{ @@ -35,7 +35,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do    end    test "overwrites existing `expires_at` if it greater than the config setting" do -    too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2) +    too_distant_future = DateTime.utc_now() |> Timex.shift(years: 2)      assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} =               ActivityExpirationPolicy.filter(%{ @@ -46,7 +46,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do                 "object" => %{"type" => "Note"}               }) -    assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 +    assert Timex.diff(expires_at, DateTime.utc_now(), :days) == 364    end    test "ignores remote activities" do diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 3fa41b0c7..cc55a7be7 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -105,7 +105,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        object =          data["object"] -        |> Map.put("inReplyTo", "https://shitposter.club/notice/2827873") +        |> Map.put("inReplyTo", "https://mstdn.io/users/mayuutann/statuses/99568293732299394")        data = Map.put(data, "object", object)        {:ok, returned_activity} = Transmogrifier.handle_incoming(data) @@ -113,10 +113,11 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert activity =                 Activity.get_create_by_object_ap_id( -                 "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment" +                 "https://mstdn.io/users/mayuutann/statuses/99568293732299394"                 ) -      assert returned_object.data["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873" +      assert returned_object.data["inReplyTo"] == +               "https://mstdn.io/users/mayuutann/statuses/99568293732299394"      end      test "it does not fetch reply-to activities beyond max replies depth limit" do @@ -140,8 +141,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                   "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"                 ) -        assert returned_object.data["inReplyToAtomUri"] == -                 "https://shitposter.club/notice/2827873" +        assert returned_object.data["inReplyTo"] == "https://shitposter.club/notice/2827873"        end      end @@ -1072,7 +1072,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert Transmogrifier.fix_in_reply_to(data) == data      end -    test "returns object with inReplyToAtomUri when denied incoming reply", %{data: data} do +    test "returns object with inReplyTo when denied incoming reply", %{data: data} do        Pleroma.Config.put([:instance, :federation_incoming_replies_max_depth], 0)        object_with_reply = @@ -1080,26 +1080,22 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)        assert modified_object["inReplyTo"] == "https://shitposter.club/notice/2827873" -      assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"        object_with_reply =          Map.put(data["object"], "inReplyTo", %{"id" => "https://shitposter.club/notice/2827873"})        modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)        assert modified_object["inReplyTo"] == %{"id" => "https://shitposter.club/notice/2827873"} -      assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"        object_with_reply =          Map.put(data["object"], "inReplyTo", ["https://shitposter.club/notice/2827873"])        modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)        assert modified_object["inReplyTo"] == ["https://shitposter.club/notice/2827873"] -      assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873"        object_with_reply = Map.put(data["object"], "inReplyTo", [])        modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)        assert modified_object["inReplyTo"] == [] -      assert modified_object["inReplyToAtomUri"] == ""      end      @tag capture_log: true @@ -1108,19 +1104,17 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do          Map.put(            data["object"],            "inReplyTo", -          "https://shitposter.club/notice/2827873" +          "https://mstdn.io/users/mayuutann/statuses/99568293732299394"          )        Pleroma.Config.put([:instance, :federation_incoming_replies_max_depth], 5)        modified_object = Transmogrifier.fix_in_reply_to(object_with_reply)        assert modified_object["inReplyTo"] == -               "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment" - -      assert modified_object["inReplyToAtomUri"] == "https://shitposter.club/notice/2827873" +               "https://mstdn.io/users/mayuutann/statuses/99568293732299394"        assert modified_object["context"] == -               "tag:shitposter.club,2017-05-05:objectType=thread:nonce=3c16e9c2681f6d26" +               "tag:shitposter.club,2018-02-22:objectType=thread:nonce=e5a7c72d60a9c0e4"      end    end @@ -1222,7 +1216,9 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      @tag capture_log: true      test "returns {:ok, %Object{}} for success case" do        assert {:ok, %Object{}} = -               Transmogrifier.get_obj_helper("https://shitposter.club/notice/2827873") +               Transmogrifier.get_obj_helper( +                 "https://mstdn.io/users/mayuutann/statuses/99568293732299394" +               )      end    end diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 800db9a20..5afb0a6dc 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -4,6 +4,8 @@  defmodule Pleroma.Web.CommonAPITest do    use Pleroma.DataCase +  use Oban.Testing, repo: Pleroma.Repo +    alias Pleroma.Activity    alias Pleroma.Chat    alias Pleroma.Conversation.Participation @@ -598,15 +600,15 @@ defmodule Pleroma.Web.CommonAPITest do      test "it can handle activities that expire" do        user = insert(:user) -      expires_at = -        NaiveDateTime.utc_now() -        |> NaiveDateTime.truncate(:second) -        |> NaiveDateTime.add(1_000_000, :second) +      expires_at = DateTime.add(DateTime.utc_now(), 1_000_000)        assert {:ok, activity} = CommonAPI.post(user, %{status: "chai", expires_in: 1_000_000}) -      assert expiration = Pleroma.ActivityExpiration.get_by_activity_id(activity.id) -      assert expiration.scheduled_at == expires_at +      assert_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: activity.id}, +        scheduled_at: expires_at +      )      end    end diff --git a/test/web/instances/instance_test.exs b/test/web/instances/instance_test.exs index dc6ace843..4f0805100 100644 --- a/test/web/instances/instance_test.exs +++ b/test/web/instances/instance_test.exs @@ -99,35 +99,54 @@ defmodule Pleroma.Instances.InstanceTest do      end    end -  test "Scrapes favicon URLs" do -    Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} -> -      %Tesla.Env{ -        status: 200, -        body: ~s[<html><head><link rel="icon" href="/favicon.png"></head></html>] -      } -    end) - -    assert "https://favicon.example.org/favicon.png" == -             Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/")) -  end +  describe "get_or_update_favicon/1" do +    test "Scrapes favicon URLs" do +      Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} -> +        %Tesla.Env{ +          status: 200, +          body: ~s[<html><head><link rel="icon" href="/favicon.png"></head></html>] +        } +      end) + +      assert "https://favicon.example.org/favicon.png" == +               Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/")) +    end -  test "Returns nil on too long favicon URLs" do -    long_favicon_url = -      "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png" - -    Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} -> -      %Tesla.Env{ -        status: 200, -        body: ~s[<html><head><link rel="icon" href="] <> long_favicon_url <> ~s["></head></html>] -      } -    end) - -    assert capture_log(fn -> -             assert nil == -                      Instance.get_or_update_favicon( -                        URI.parse("https://long-favicon.example.org/") -                      ) -           end) =~ -             "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{" +    test "Returns nil on too long favicon URLs" do +      long_favicon_url = +        "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png" + +      Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} -> +        %Tesla.Env{ +          status: 200, +          body: +            ~s[<html><head><link rel="icon" href="] <> long_favicon_url <> ~s["></head></html>] +        } +      end) + +      assert capture_log(fn -> +               assert nil == +                        Instance.get_or_update_favicon( +                          URI.parse("https://long-favicon.example.org/") +                        ) +             end) =~ +               "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{" +    end + +    test "Handles not getting a favicon URL properly" do +      Tesla.Mock.mock(fn %{url: "https://no-favicon.example.org/"} -> +        %Tesla.Env{ +          status: 200, +          body: ~s[<html><head><h1>I wil look down and whisper "GNO.."</h1></head></html>] +        } +      end) + +      refute capture_log(fn -> +               assert nil == +                        Instance.get_or_update_favicon( +                          URI.parse("https://no-favicon.example.org/") +                        ) +             end) =~ "Instance.scrape_favicon(\"https://no-favicon.example.org/\") error: " +    end    end  end diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index 24d1959f8..04dc6f445 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -282,18 +282,18 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do        capture_log(fn ->          {:ok, %{id: activity_id}} =            CommonAPI.post(insert(:user), %{ -            status: "check out https://shitposter.club/notice/2827873" +            status: "check out http://mastodon.example.org/@admin/99541947525187367"            })          results =            conn -          |> get("/api/v1/search?q=https://shitposter.club/notice/2827873") +          |> get("/api/v1/search?q=http://mastodon.example.org/@admin/99541947525187367")            |> json_response_and_validate_schema(200) -        [status, %{"id" => ^activity_id}] = results["statuses"] - -        assert status["uri"] == -                 "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment" +        assert [ +                 %{"url" => "http://mastodon.example.org/@admin/99541947525187367"}, +                 %{"id" => ^activity_id} +               ] = results["statuses"]        end)      end diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index f221884e7..633a25e50 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -4,9 +4,9 @@  defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do    use Pleroma.Web.ConnCase +  use Oban.Testing, repo: Pleroma.Repo    alias Pleroma.Activity -  alias Pleroma.ActivityExpiration    alias Pleroma.Config    alias Pleroma.Conversation.Participation    alias Pleroma.Object @@ -29,8 +29,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do      setup do: oauth_access(["write:statuses"])      test "posting a status does not increment reblog_count when relaying", %{conn: conn} do -      Pleroma.Config.put([:instance, :federating], true) -      Pleroma.Config.get([:instance, :allow_relay], true) +      Config.put([:instance, :federating], true) +      Config.get([:instance, :allow_relay], true)        response =          conn @@ -103,7 +103,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do        # An activity that will expire:        # 2 hours -      expires_in = 120 * 60 +      expires_in = 2 * 60 * 60 + +      expires_at = DateTime.add(DateTime.utc_now(), expires_in)        conn_four =          conn @@ -113,29 +115,22 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do            "expires_in" => expires_in          }) -      assert fourth_response = -               %{"id" => fourth_id} = json_response_and_validate_schema(conn_four, 200) - -      assert activity = Activity.get_by_id(fourth_id) -      assert expiration = ActivityExpiration.get_by_activity_id(fourth_id) - -      estimated_expires_at = -        NaiveDateTime.utc_now() -        |> NaiveDateTime.add(expires_in) -        |> NaiveDateTime.truncate(:second) +      assert %{"id" => fourth_id} = json_response_and_validate_schema(conn_four, 200) -      # This assert will fail if the test takes longer than a minute. I sure hope it never does: -      assert abs(NaiveDateTime.diff(expiration.scheduled_at, estimated_expires_at, :second)) < 60 +      assert Activity.get_by_id(fourth_id) -      assert fourth_response["pleroma"]["expires_at"] == -               NaiveDateTime.to_iso8601(expiration.scheduled_at) +      assert_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: fourth_id}, +        scheduled_at: expires_at +      )      end      test "it fails to create a status if `expires_in` is less or equal than an hour", %{        conn: conn      } do -      # 1 hour -      expires_in = 60 * 60 +      # 1 minute +      expires_in = 1 * 60        assert %{"error" => "Expiry date is too soon"} =                 conn @@ -146,8 +141,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do                 })                 |> json_response_and_validate_schema(422) -      # 30 minutes -      expires_in = 30 * 60 +      # 5 minutes +      expires_in = 5 * 60        assert %{"error" => "Expiry date is too soon"} =                 conn @@ -160,8 +155,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do      end      test "Get MRF reason when posting a status is rejected by one", %{conn: conn} do -      Pleroma.Config.put([:mrf_keyword, :reject], ["GNO"]) -      Pleroma.Config.put([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.KeywordPolicy]) +      Config.put([:mrf_keyword, :reject], ["GNO"]) +      Config.put([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.KeywordPolicy])        assert %{"error" => "[KeywordPolicy] Matches with rejected keyword"} =                 conn @@ -1146,6 +1141,52 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do                 |> post("/api/v1/statuses/#{activity_two.id}/pin")                 |> json_response_and_validate_schema(400)      end + +    test "on pin removes deletion job, on unpin reschedule deletion" do +      %{conn: conn} = oauth_access(["write:accounts", "write:statuses"]) +      expires_in = 2 * 60 * 60 + +      expires_at = DateTime.add(DateTime.utc_now(), expires_in) + +      assert %{"id" => id} = +               conn +               |> put_req_header("content-type", "application/json") +               |> post("api/v1/statuses", %{ +                 "status" => "oolong", +                 "expires_in" => expires_in +               }) +               |> json_response_and_validate_schema(200) + +      assert_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: id}, +        scheduled_at: expires_at +      ) + +      assert %{"id" => ^id, "pinned" => true} = +               conn +               |> put_req_header("content-type", "application/json") +               |> post("/api/v1/statuses/#{id}/pin") +               |> json_response_and_validate_schema(200) + +      refute_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: id}, +        scheduled_at: expires_at +      ) + +      assert %{"id" => ^id, "pinned" => false} = +               conn +               |> put_req_header("content-type", "application/json") +               |> post("/api/v1/statuses/#{id}/unpin") +               |> json_response_and_validate_schema(200) + +      assert_enqueued( +        worker: Pleroma.Workers.PurgeExpiredActivity, +        args: %{activity_id: id}, +        scheduled_at: expires_at +      ) +    end    end    describe "cards" do @@ -1681,19 +1722,17 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do    test "expires_at is nil for another user" do      %{conn: conn, user: user} = oauth_access(["read:statuses"]) +    expires_at = DateTime.add(DateTime.utc_now(), 1_000_000)      {:ok, activity} = CommonAPI.post(user, %{status: "foobar", expires_in: 1_000_000}) -    expires_at = -      activity.id -      |> ActivityExpiration.get_by_activity_id() -      |> Map.get(:scheduled_at) -      |> NaiveDateTime.to_iso8601() - -    assert %{"pleroma" => %{"expires_at" => ^expires_at}} = +    assert %{"pleroma" => %{"expires_at" => a_expires_at}} =               conn               |> get("/api/v1/statuses/#{activity.id}")               |> json_response_and_validate_schema(:ok) +    {:ok, a_expires_at, 0} = DateTime.from_iso8601(a_expires_at) +    assert DateTime.diff(expires_at, a_expires_at) == 0 +      %{conn: conn} = oauth_access(["read:statuses"])      assert %{"pleroma" => %{"expires_at" => nil}} = diff --git a/test/web/oauth/token_test.exs b/test/web/oauth/token_test.exs index 40d71eb59..c88b9cc98 100644 --- a/test/web/oauth/token_test.exs +++ b/test/web/oauth/token_test.exs @@ -69,17 +69,4 @@ defmodule Pleroma.Web.OAuth.TokenTest do      assert tokens == 2    end - -  test "deletes expired tokens" do -    insert(:oauth_token, valid_until: Timex.shift(Timex.now(), days: -3)) -    insert(:oauth_token, valid_until: Timex.shift(Timex.now(), days: -3)) -    t3 = insert(:oauth_token) -    t4 = insert(:oauth_token, valid_until: Timex.shift(Timex.now(), minutes: 10)) -    {tokens, _} = Token.delete_expired_tokens() -    assert tokens == 2 -    available_tokens = Pleroma.Repo.all(Token) - -    token_ids = available_tokens |> Enum.map(& &1.id) -    assert token_ids == [t3.id, t4.id] -  end  end diff --git a/test/web/twitter_api/password_controller_test.exs b/test/web/twitter_api/password_controller_test.exs index 231a46c67..a5e9e2178 100644 --- a/test/web/twitter_api/password_controller_test.exs +++ b/test/web/twitter_api/password_controller_test.exs @@ -37,7 +37,7 @@ defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do      test "it returns HTTP 200", %{conn: conn} do        user = insert(:user)        {:ok, token} = PasswordResetToken.create_token(user) -      {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{}) +      {:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})        params = %{          "password" => "test", @@ -62,7 +62,7 @@ defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do        user = insert(:user, password_reset_pending: true)        {:ok, token} = PasswordResetToken.create_token(user) -      {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{}) +      {:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})        params = %{          "password" => "test", diff --git a/test/web/twitter_api/remote_follow_controller_test.exs b/test/web/twitter_api/remote_follow_controller_test.exs index f7e54c26a..3852c7ce9 100644 --- a/test/web/twitter_api/remote_follow_controller_test.exs +++ b/test/web/twitter_api/remote_follow_controller_test.exs @@ -227,7 +227,7 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do            }          ) -      {:ok, %{token: token}} = MFA.Token.create_token(user) +      {:ok, %{token: token}} = MFA.Token.create(user)        user2 = insert(:user)        otp_token = TOTP.generate_token(otp_secret) @@ -256,7 +256,7 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do            }          ) -      {:ok, %{token: token}} = MFA.Token.create_token(user) +      {:ok, %{token: token}} = MFA.Token.create(user)        user2 = insert(:user)        otp_token = TOTP.generate_token(TOTP.generate_secret())  | 
