diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2019-10-24 09:23:59 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-10-24 09:23:59 +0300 | 
| commit | 99cf1ef9be93ebab04d088848804369e6295a76d (patch) | |
| tree | 94738e2bc0ee642db4abc4e65a9798782de59623 /test | |
| parent | d3fb9e02cc0ce7dc462e587e639e117aaef5fbc5 (diff) | |
| parent | 17c237ba808d4356bb1e202e459680563b79ef99 (diff) | |
| download | pleroma-99cf1ef9be93ebab04d088848804369e6295a76d.tar.gz pleroma-99cf1ef9be93ebab04d088848804369e6295a76d.zip  | |
Merge branch 'develop' into issue/1276
Diffstat (limited to 'test')
46 files changed, 511 insertions, 452 deletions
diff --git a/test/conversation/participation_test.exs b/test/conversation/participation_test.exs index 64c350904..91867bf70 100644 --- a/test/conversation/participation_test.exs +++ b/test/conversation/participation_test.exs @@ -36,8 +36,8 @@ defmodule Pleroma.Conversation.ParticipationTest do      [%{read: true}] = Participation.for_user(user)      [%{read: false} = participation] = Participation.for_user(other_user) -    assert User.get_cached_by_id(user.id).info.unread_conversation_count == 0 -    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 1 +    assert User.get_cached_by_id(user.id).unread_conversation_count == 0 +    assert User.get_cached_by_id(other_user.id).unread_conversation_count == 1      {:ok, _} =        CommonAPI.post(other_user, %{ @@ -52,8 +52,8 @@ defmodule Pleroma.Conversation.ParticipationTest do      [%{read: false}] = Participation.for_user(user)      [%{read: true}] = Participation.for_user(other_user) -    assert User.get_cached_by_id(user.id).info.unread_conversation_count == 1 -    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user.id).unread_conversation_count == 1 +    assert User.get_cached_by_id(other_user.id).unread_conversation_count == 0    end    test "for a new conversation, it sets the recipents of the participation" do diff --git a/test/daemons/digest_email_daemon_test.exs b/test/daemons/digest_email_daemon_test.exs index 3168f3b9a..faf592d5f 100644 --- a/test/daemons/digest_email_daemon_test.exs +++ b/test/daemons/digest_email_daemon_test.exs @@ -20,7 +20,7 @@ defmodule Pleroma.DigestEmailDaemonTest do        |> Timex.to_naive_datetime()      user2 = insert(:user, last_digest_emailed_at: date) -    User.switch_email_notifications(user2, "digest", true) +    {:ok, _} = User.switch_email_notifications(user2, "digest", true)      CommonAPI.post(user, %{"status" => "hey @#{user2.nickname}!"})      DigestEmailDaemon.perform() diff --git a/test/emails/user_email_test.exs b/test/emails/user_email_test.exs index 963565f7c..9e145977e 100644 --- a/test/emails/user_email_test.exs +++ b/test/emails/user_email_test.exs @@ -36,7 +36,7 @@ defmodule Pleroma.Emails.UserEmailTest do    test "build account confirmation email" do      config = Pleroma.Config.get(:instance) -    user = insert(:user, info: %Pleroma.User.Info{confirmation_token: "conf-token"}) +    user = insert(:user, confirmation_token: "conf-token")      email = UserEmail.account_confirmation_email(user)      assert email.from == {config[:name], config[:notify_email]}      assert email.to == [{user.name, user.email}] diff --git a/test/formatter_test.exs b/test/formatter_test.exs index 3bff51527..087bdbcc2 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -125,10 +125,10 @@ defmodule Pleroma.FormatterTest do        gsimg = insert(:user, %{nickname: "gsimg"})        archaeme = -        insert(:user, %{ +        insert(:user,            nickname: "archa_eme_", -          info: %User.Info{source_data: %{"url" => "https://archeme/@archa_eme_"}} -        }) +          source_data: %{"url" => "https://archeme/@archa_eme_"} +        )        archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"}) diff --git a/test/moderation_log_test.exs b/test/moderation_log_test.exs index 81c0fef12..4240f6a65 100644 --- a/test/moderation_log_test.exs +++ b/test/moderation_log_test.exs @@ -12,8 +12,8 @@ defmodule Pleroma.ModerationLogTest do    describe "user moderation" do      setup do -      admin = insert(:user, info: %{is_admin: true}) -      moderator = insert(:user, info: %{is_moderator: true}) +      admin = insert(:user, is_admin: true) +      moderator = insert(:user, is_moderator: true)        subject1 = insert(:user)        subject2 = insert(:user) diff --git a/test/notification_test.exs b/test/notification_test.exs index 1e8a9ca98..d358e433f 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -139,7 +139,7 @@ defmodule Pleroma.NotificationTest do      test "it disables notifications from followers" do        follower = insert(:user) -      followed = insert(:user, info: %{notification_settings: %{"followers" => false}}) +      followed = insert(:user, notification_settings: %{"followers" => false})        User.follow(follower, followed)        {:ok, activity} = CommonAPI.post(follower, %{"status" => "hey @#{followed.nickname}"})        refute Notification.create_notification(activity, followed) @@ -147,13 +147,13 @@ defmodule Pleroma.NotificationTest do      test "it disables notifications from non-followers" do        follower = insert(:user) -      followed = insert(:user, info: %{notification_settings: %{"non_followers" => false}}) +      followed = insert(:user, notification_settings: %{"non_followers" => false})        {:ok, activity} = CommonAPI.post(follower, %{"status" => "hey @#{followed.nickname}"})        refute Notification.create_notification(activity, followed)      end      test "it disables notifications from people the user follows" do -      follower = insert(:user, info: %{notification_settings: %{"follows" => false}}) +      follower = insert(:user, notification_settings: %{"follows" => false})        followed = insert(:user)        User.follow(follower, followed)        follower = Repo.get(User, follower.id) @@ -162,7 +162,7 @@ defmodule Pleroma.NotificationTest do      end      test "it disables notifications from people the user does not follow" do -      follower = insert(:user, info: %{notification_settings: %{"non_follows" => false}}) +      follower = insert(:user, notification_settings: %{"non_follows" => false})        followed = insert(:user)        {:ok, activity} = CommonAPI.post(followed, %{"status" => "hey @#{follower.nickname}"})        refute Notification.create_notification(activity, follower) diff --git a/test/plugs/admin_secret_authentication_plug_test.exs b/test/plugs/admin_secret_authentication_plug_test.exs index e1d4b391f..c94a62c10 100644 --- a/test/plugs/admin_secret_authentication_plug_test.exs +++ b/test/plugs/admin_secret_authentication_plug_test.exs @@ -37,6 +37,6 @@ defmodule Pleroma.Plugs.AdminSecretAuthenticationPlugTest do        %{conn | params: %{"admin_token" => "password123"}}        |> AdminSecretAuthenticationPlug.call(%{}) -    assert conn.assigns[:user].info.is_admin +    assert conn.assigns[:user].is_admin    end  end diff --git a/test/plugs/user_enabled_plug_test.exs b/test/plugs/user_enabled_plug_test.exs index c0fafcab1..996a7d77b 100644 --- a/test/plugs/user_enabled_plug_test.exs +++ b/test/plugs/user_enabled_plug_test.exs @@ -17,7 +17,7 @@ defmodule Pleroma.Plugs.UserEnabledPlugTest do    end    test "with a user that is deactivated, it removes that user", %{conn: conn} do -    user = insert(:user, info: %{deactivated: true}) +    user = insert(:user, deactivated: true)      conn =        conn diff --git a/test/plugs/user_is_admin_plug_test.exs b/test/plugs/user_is_admin_plug_test.exs index 9e05fff18..136dcc54e 100644 --- a/test/plugs/user_is_admin_plug_test.exs +++ b/test/plugs/user_is_admin_plug_test.exs @@ -9,7 +9,7 @@ defmodule Pleroma.Plugs.UserIsAdminPlugTest do    import Pleroma.Factory    test "accepts a user that is admin" do -    user = insert(:user, info: %{is_admin: true}) +    user = insert(:user, is_admin: true)      conn =        build_conn() diff --git a/test/signature_test.exs b/test/signature_test.exs index 6b168f2d9..15cf10fb6 100644 --- a/test/signature_test.exs +++ b/test/signature_test.exs @@ -42,7 +42,7 @@ defmodule Pleroma.SignatureTest do      test "it returns key" do        expected_result = {:ok, @rsa_public_key} -      user = insert(:user, %{info: %{source_data: %{"publicKey" => @public_key}}}) +      user = insert(:user, source_data: %{"publicKey" => @public_key})        assert Signature.fetch_public_key(make_fake_conn(user.ap_id)) == expected_result      end @@ -54,7 +54,7 @@ defmodule Pleroma.SignatureTest do      end      test "it returns error if public key is empty" do -      user = insert(:user, %{info: %{source_data: %{"publicKey" => %{}}}}) +      user = insert(:user, source_data: %{"publicKey" => %{}})        assert Signature.fetch_public_key(make_fake_conn(user.ap_id)) == {:error, :error}      end diff --git a/test/tasks/count_statuses_test.exs b/test/tasks/count_statuses_test.exs index 6035da3c3..bb5dc88f8 100644 --- a/test/tasks/count_statuses_test.exs +++ b/test/tasks/count_statuses_test.exs @@ -22,18 +22,18 @@ defmodule Mix.Tasks.Pleroma.CountStatusesTest do      user = refresh_record(user)      user2 = refresh_record(user2) -    assert %{info: %{note_count: 2}} = user -    assert %{info: %{note_count: 1}} = user2 +    assert %{note_count: 2} = user +    assert %{note_count: 1} = user2 -    {:ok, user} = User.update_info(user, &User.Info.set_note_count(&1, 0)) -    {:ok, user2} = User.update_info(user2, &User.Info.set_note_count(&1, 0)) +    {:ok, user} = User.update_note_count(user, 0) +    {:ok, user2} = User.update_note_count(user2, 0) -    assert %{info: %{note_count: 0}} = user -    assert %{info: %{note_count: 0}} = user2 +    assert %{note_count: 0} = user +    assert %{note_count: 0} = user2      assert capture_io(fn -> Mix.Tasks.Pleroma.CountStatuses.run([]) end) == "Done\n" -    assert %{info: %{note_count: 2}} = refresh_record(user) -    assert %{info: %{note_count: 1}} = refresh_record(user2) +    assert %{note_count: 2} = refresh_record(user) +    assert %{note_count: 1} = refresh_record(user2)    end  end diff --git a/test/tasks/database_test.exs b/test/tasks/database_test.exs index b63dcac00..b66324e5e 100644 --- a/test/tasks/database_test.exs +++ b/test/tasks/database_test.exs @@ -72,26 +72,25 @@ defmodule Mix.Tasks.Pleroma.DatabaseTest do    describe "running update_users_following_followers_counts" do      test "following and followers count are updated" do        [user, user2] = insert_pair(:user) -      {:ok, %User{following: following, info: info} = user} = User.follow(user, user2) +      {:ok, %User{following: following} = user} = User.follow(user, user2)        assert length(following) == 2 -      assert info.follower_count == 0 +      assert user.follower_count == 0        {:ok, user} =          user -        |> Ecto.Changeset.change(%{following: following ++ following}) -        |> User.change_info(&Ecto.Changeset.change(&1, %{follower_count: 3})) +        |> Ecto.Changeset.change(%{following: following ++ following, follower_count: 3})          |> Repo.update()        assert length(user.following) == 4 -      assert user.info.follower_count == 3 +      assert user.follower_count == 3        assert :ok == Mix.Tasks.Pleroma.Database.run(["update_users_following_followers_counts"])        user = User.get_by_id(user.id)        assert length(user.following) == 2 -      assert user.info.follower_count == 0 +      assert user.follower_count == 0      end    end diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index cf12d9ed6..f024f92ae 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -58,8 +58,8 @@ defmodule Mix.Tasks.Pleroma.UserTest do        assert user.name == unsaved.name        assert user.email == unsaved.email        assert user.bio == unsaved.bio -      assert user.info.is_moderator -      assert user.info.is_admin +      assert user.is_moderator +      assert user.is_admin      end      test "user is not created" do @@ -113,11 +113,11 @@ defmodule Mix.Tasks.Pleroma.UserTest do        assert message =~ " deactivated"        user = User.get_cached_by_nickname(user.nickname) -      assert user.info.deactivated +      assert user.deactivated      end      test "user is activated" do -      user = insert(:user, info: %{deactivated: true}) +      user = insert(:user, deactivated: true)        Mix.Tasks.Pleroma.User.run(["toggle_activated", user.nickname]) @@ -125,7 +125,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do        assert message =~ " activated"        user = User.get_cached_by_nickname(user.nickname) -      refute user.info.deactivated +      refute user.deactivated      end      test "no user to toggle" do @@ -155,7 +155,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do        user = User.get_cached_by_nickname(user.nickname)        assert Enum.empty?(user.following) -      assert user.info.deactivated +      assert user.deactivated      end      test "no user to unsubscribe" do @@ -182,13 +182,13 @@ defmodule Mix.Tasks.Pleroma.UserTest do        assert message =~ ~r/Admin status .* true/        user = User.get_cached_by_nickname(user.nickname) -      assert user.info.is_moderator -      assert user.info.locked -      assert user.info.is_admin +      assert user.is_moderator +      assert user.locked +      assert user.is_admin      end      test "All statuses unset" do -      user = insert(:user, info: %{is_moderator: true, locked: true, is_admin: true}) +      user = insert(:user, locked: true, is_moderator: true, is_admin: true)        Mix.Tasks.Pleroma.User.run([          "set", @@ -208,9 +208,9 @@ defmodule Mix.Tasks.Pleroma.UserTest do        assert message =~ ~r/Admin status .* false/        user = User.get_cached_by_nickname(user.nickname) -      refute user.info.is_moderator -      refute user.info.locked -      refute user.info.is_admin +      refute user.is_moderator +      refute user.locked +      refute user.is_admin      end      test "no user to set status" do @@ -358,28 +358,28 @@ defmodule Mix.Tasks.Pleroma.UserTest do    describe "running toggle_confirmed" do      test "user is confirmed" do -      %{id: id, nickname: nickname} = insert(:user, info: %{confirmation_pending: false}) +      %{id: id, nickname: nickname} = insert(:user, confirmation_pending: false)        assert :ok = Mix.Tasks.Pleroma.User.run(["toggle_confirmed", nickname])        assert_received {:mix_shell, :info, [message]}        assert message == "#{nickname} needs confirmation."        user = Repo.get(User, id) -      assert user.info.confirmation_pending -      assert user.info.confirmation_token +      assert user.confirmation_pending +      assert user.confirmation_token      end      test "user is not confirmed" do        %{id: id, nickname: nickname} = -        insert(:user, info: %{confirmation_pending: true, confirmation_token: "some token"}) +        insert(:user, confirmation_pending: true, confirmation_token: "some token")        assert :ok = Mix.Tasks.Pleroma.User.run(["toggle_confirmed", nickname])        assert_received {:mix_shell, :info, [message]}        assert message == "#{nickname} doesn't need confirmation."        user = Repo.get(User, id) -      refute user.info.confirmation_pending -      refute user.info.confirmation_token +      refute user.confirmation_pending +      refute user.confirmation_token      end      test "it prints an error message when user is not exist" do diff --git a/test/user_info_test.exs b/test/user_info_test.exs deleted file mode 100644 index 2d795594e..000000000 --- a/test/user_info_test.exs +++ /dev/null @@ -1,24 +0,0 @@ -defmodule Pleroma.UserInfoTest do -  alias Pleroma.Repo -  alias Pleroma.User.Info - -  use Pleroma.DataCase - -  import Pleroma.Factory - -  describe "update_email_notifications/2" do -    setup do -      user = insert(:user, %{info: %{email_notifications: %{"digest" => true}}}) - -      {:ok, user: user} -    end - -    test "Notifications are updated", %{user: user} do -      true = user.info.email_notifications["digest"] -      changeset = Info.update_email_notifications(user.info, %{"digest" => false}) -      assert changeset.valid? -      {:ok, result} = Ecto.Changeset.apply_action(changeset, :insert) -      assert result.email_notifications["digest"] == false -    end -  end -end diff --git a/test/user_test.exs b/test/user_test.exs index 05bdb9a61..92de31c74 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -68,7 +68,7 @@ defmodule Pleroma.UserTest do    test "returns all pending follow requests" do      unlocked = insert(:user) -    locked = insert(:user, %{info: %{locked: true}}) +    locked = insert(:user, locked: true)      follower = insert(:user)      CommonAPI.follow(follower, unlocked) @@ -81,7 +81,7 @@ defmodule Pleroma.UserTest do    end    test "doesn't return already accepted or duplicate follow requests" do -    locked = insert(:user, %{info: %{locked: true}}) +    locked = insert(:user, locked: true)      pending_follower = insert(:user)      accepted_follower = insert(:user) @@ -95,7 +95,7 @@ defmodule Pleroma.UserTest do    end    test "clears follow requests when requester is blocked" do -    followed = insert(:user, %{info: %{locked: true}}) +    followed = insert(:user, locked: true)      follower = insert(:user)      CommonAPI.follow(follower, followed) @@ -151,14 +151,14 @@ defmodule Pleroma.UserTest do      user = User.get_cached_by_id(user.id)      followed = User.get_cached_by_ap_id(followed.ap_id) -    assert followed.info.follower_count == 1 +    assert followed.follower_count == 1      assert User.ap_followers(followed) in user.following    end    test "can't follow a deactivated users" do      user = insert(:user) -    followed = insert(:user, info: %{deactivated: true}) +    followed = insert(:user, %{deactivated: true})      {:error, _} = User.follow(user, followed)    end @@ -182,8 +182,8 @@ defmodule Pleroma.UserTest do    end    test "local users do not automatically follow local locked accounts" do -    follower = insert(:user, info: %{locked: true}) -    followed = insert(:user, info: %{locked: true}) +    follower = insert(:user, locked: true) +    followed = insert(:user, locked: true)      {:ok, follower} = User.maybe_direct_follow(follower, followed) @@ -383,8 +383,8 @@ defmodule Pleroma.UserTest do        {:ok, user} = Repo.insert(changeset) -      assert user.info.confirmation_pending -      assert user.info.confirmation_token +      assert user.confirmation_pending +      assert user.confirmation_token      end      test "it creates confirmed user if :confirmed option is given" do @@ -393,8 +393,8 @@ defmodule Pleroma.UserTest do        {:ok, user} = Repo.insert(changeset) -      refute user.info.confirmation_pending -      refute user.info.confirmation_token +      refute user.confirmation_pending +      refute user.confirmation_token      end    end @@ -483,7 +483,8 @@ defmodule Pleroma.UserTest do        assert orig_user.last_refreshed_at == a_week_ago        {:ok, user} = User.get_or_fetch_by_ap_id("http://mastodon.example.org/users/admin") -      assert user.info.source_data["endpoints"] + +      assert user.source_data["endpoints"]        refute user.last_refreshed_at == orig_user.last_refreshed_at      end @@ -589,63 +590,63 @@ defmodule Pleroma.UserTest do    end    describe "updating note and follower count" do -    test "it sets the info->note_count property" do +    test "it sets the note_count property" do        note = insert(:note)        user = User.get_cached_by_ap_id(note.data["actor"]) -      assert user.info.note_count == 0 +      assert user.note_count == 0        {:ok, user} = User.update_note_count(user) -      assert user.info.note_count == 1 +      assert user.note_count == 1      end -    test "it increases the info->note_count property" do +    test "it increases the note_count property" do        note = insert(:note)        user = User.get_cached_by_ap_id(note.data["actor"]) -      assert user.info.note_count == 0 +      assert user.note_count == 0        {:ok, user} = User.increase_note_count(user) -      assert user.info.note_count == 1 +      assert user.note_count == 1        {:ok, user} = User.increase_note_count(user) -      assert user.info.note_count == 2 +      assert user.note_count == 2      end -    test "it decreases the info->note_count property" do +    test "it decreases the note_count property" do        note = insert(:note)        user = User.get_cached_by_ap_id(note.data["actor"]) -      assert user.info.note_count == 0 +      assert user.note_count == 0        {:ok, user} = User.increase_note_count(user) -      assert user.info.note_count == 1 +      assert user.note_count == 1        {:ok, user} = User.decrease_note_count(user) -      assert user.info.note_count == 0 +      assert user.note_count == 0        {:ok, user} = User.decrease_note_count(user) -      assert user.info.note_count == 0 +      assert user.note_count == 0      end -    test "it sets the info->follower_count property" do +    test "it sets the follower_count property" do        user = insert(:user)        follower = insert(:user)        User.follow(follower, user) -      assert user.info.follower_count == 0 +      assert user.follower_count == 0        {:ok, user} = User.update_follower_count(user) -      assert user.info.follower_count == 1 +      assert user.follower_count == 1      end    end @@ -936,14 +937,14 @@ defmodule Pleroma.UserTest do    describe ".deactivate" do      test "can de-activate then re-activate a user" do        user = insert(:user) -      assert false == user.info.deactivated +      assert false == user.deactivated        {:ok, user} = User.deactivate(user) -      assert true == user.info.deactivated +      assert true == user.deactivated        {:ok, user} = User.deactivate(user, false) -      assert false == user.info.deactivated +      assert false == user.deactivated      end -    test "hide a user from followers " do +    test "hide a user from followers" do        user = insert(:user)        user2 = insert(:user) @@ -1019,7 +1020,7 @@ defmodule Pleroma.UserTest do      end      test "it deletes deactivated user" do -      {:ok, user} = insert(:user, info: %{deactivated: true}) |> User.set_cache() +      {:ok, user} = insert(:user, deactivated: true) |> User.set_cache()        {:ok, job} = User.delete(user)        {:ok, _user} = ObanHelpers.perform(job) @@ -1110,11 +1111,9 @@ defmodule Pleroma.UserTest do          ap_id: user.ap_id,          name: user.name,          nickname: user.nickname, -        info: %{ -          fields: [ -            %{"name" => "myfield", "value" => String.duplicate("h", current_max_length + 1)} -          ] -        } +        fields: [ +          %{"name" => "myfield", "value" => String.duplicate("h", current_max_length + 1)} +        ]        }        assert {:ok, %User{}} = User.insert_or_update_user(data) @@ -1158,7 +1157,7 @@ defmodule Pleroma.UserTest do      end      test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do -      user = insert(:user, %{info: %{no_rich_text: true}}) +      user = insert(:user, no_rich_text: true)        assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)      end @@ -1195,8 +1194,8 @@ defmodule Pleroma.UserTest do    test "auth_active?/1 works correctly" do      Pleroma.Config.put([:instance, :account_activation_required], true) -    local_user = insert(:user, local: true, info: %{confirmation_pending: true}) -    confirmed_user = insert(:user, local: true, info: %{confirmation_pending: false}) +    local_user = insert(:user, local: true, confirmation_pending: true) +    confirmed_user = insert(:user, local: true, confirmation_pending: false)      remote_user = insert(:user, local: false)      refute User.auth_active?(local_user) @@ -1213,20 +1212,20 @@ defmodule Pleroma.UserTest do      test "returns false for remote users" do        user = insert(:user, local: false) -      remote_admin_user = insert(:user, local: false, info: %{is_admin: true}) +      remote_admin_user = insert(:user, local: false, is_admin: true)        refute User.superuser?(user)        refute User.superuser?(remote_admin_user)      end      test "returns true for local moderators" do -      user = insert(:user, local: true, info: %{is_moderator: true}) +      user = insert(:user, local: true, is_moderator: true)        assert User.superuser?(user)      end      test "returns true for local admins" do -      user = insert(:user, local: true, info: %{is_admin: true}) +      user = insert(:user, local: true, is_admin: true)        assert User.superuser?(user)      end @@ -1234,7 +1233,7 @@ defmodule Pleroma.UserTest do    describe "invisible?/1" do      test "returns true for an invisible user" do -      user = insert(:user, local: true, info: %{invisible: true}) +      user = insert(:user, local: true, invisible: true)        assert User.invisible?(user)      end @@ -1256,14 +1255,14 @@ defmodule Pleroma.UserTest do      test "returns false when the account is unauthenticated and auth is required" do        Pleroma.Config.put([:instance, :account_activation_required], true) -      user = insert(:user, local: true, info: %{confirmation_pending: true}) +      user = insert(:user, local: true, confirmation_pending: true)        other_user = insert(:user, local: true)        refute User.visible_for?(user, other_user)      end      test "returns true when the account is unauthenticated and auth is not required" do -      user = insert(:user, local: true, info: %{confirmation_pending: true}) +      user = insert(:user, local: true, confirmation_pending: true)        other_user = insert(:user, local: true)        assert User.visible_for?(user, other_user) @@ -1272,8 +1271,8 @@ defmodule Pleroma.UserTest do      test "returns true when the account is unauthenticated and being viewed by a privileged account (auth required)" do        Pleroma.Config.put([:instance, :account_activation_required], true) -      user = insert(:user, local: true, info: %{confirmation_pending: true}) -      other_user = insert(:user, local: true, info: %{is_admin: true}) +      user = insert(:user, local: true, confirmation_pending: true) +      other_user = insert(:user, local: true, is_admin: true)        assert User.visible_for?(user, other_user)      end @@ -1339,7 +1338,7 @@ defmodule Pleroma.UserTest do        users =          Enum.map(1..total, fn _ -> -          insert(:user, last_digest_emailed_at: days_ago(20), info: %{deactivated: false}) +          insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)          end)        inactive_users_ids = @@ -1357,7 +1356,7 @@ defmodule Pleroma.UserTest do        users =          Enum.map(1..total, fn _ -> -          insert(:user, last_digest_emailed_at: days_ago(20), info: %{deactivated: false}) +          insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)          end)        {inactive, active} = Enum.split(users, trunc(total / 2)) @@ -1390,7 +1389,7 @@ defmodule Pleroma.UserTest do        users =          Enum.map(1..total, fn _ -> -          insert(:user, last_digest_emailed_at: days_ago(20), info: %{deactivated: false}) +          insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)          end)        [sender | recipients] = users @@ -1430,19 +1429,19 @@ defmodule Pleroma.UserTest do    describe "toggle_confirmation/1" do      test "if user is confirmed" do -      user = insert(:user, info: %{confirmation_pending: false}) +      user = insert(:user, confirmation_pending: false)        {:ok, user} = User.toggle_confirmation(user) -      assert user.info.confirmation_pending -      assert user.info.confirmation_token +      assert user.confirmation_pending +      assert user.confirmation_token      end      test "if user is unconfirmed" do -      user = insert(:user, info: %{confirmation_pending: true, confirmation_token: "some token"}) +      user = insert(:user, confirmation_pending: true, confirmation_token: "some token")        {:ok, user} = User.toggle_confirmation(user) -      refute user.info.confirmation_pending -      refute user.info.confirmation_token +      refute user.confirmation_pending +      refute user.confirmation_token      end    end @@ -1478,7 +1477,7 @@ defmodule Pleroma.UserTest do        user1 = insert(:user, local: false, ap_id: "http://localhost:4001/users/masto_closed")        user2 = insert(:user, local: false, ap_id: "http://localhost:4001/users/fuser2")        insert(:user, local: true) -      insert(:user, local: false, info: %{deactivated: true}) +      insert(:user, local: false, deactivated: true)        {:ok, user1: user1, user2: user2}      end @@ -1597,7 +1596,7 @@ defmodule Pleroma.UserTest do            local: false,            follower_address: "http://localhost:4001/users/masto_closed/followers",            following_address: "http://localhost:4001/users/masto_closed/following", -          info: %{ap_enabled: true} +          ap_enabled: true          )        assert User.user_info(other_user).following_count == 0 @@ -1620,7 +1619,7 @@ defmodule Pleroma.UserTest do            local: false,            follower_address: "http://localhost:4001/users/masto_closed/followers",            following_address: "http://localhost:4001/users/masto_closed/following", -          info: %{ap_enabled: true} +          ap_enabled: true          )        assert User.user_info(other_user).following_count == 0 @@ -1643,7 +1642,7 @@ defmodule Pleroma.UserTest do            local: false,            follower_address: "http://localhost:4001/users/masto_closed/followers",            following_address: "http://localhost:4001/users/masto_closed/following", -          info: %{ap_enabled: true} +          ap_enabled: true          )        assert User.user_info(other_user).following_count == 0 @@ -1683,41 +1682,6 @@ defmodule Pleroma.UserTest do      end    end -  describe "set_password_reset_pending/2" do -    setup do -      [user: insert(:user)] -    end - -    test "sets password_reset_pending to true", %{user: user} do -      %{password_reset_pending: password_reset_pending} = user.info - -      refute password_reset_pending - -      {:ok, %{info: %{password_reset_pending: password_reset_pending}}} = -        User.force_password_reset(user) - -      assert password_reset_pending -    end -  end - -  test "change_info/2" do -    user = insert(:user) -    assert user.info.hide_follows == false - -    changeset = User.change_info(user, &User.Info.profile_update(&1, %{hide_follows: true})) -    assert changeset.changes.info.changes.hide_follows == true -  end - -  test "update_info/2" do -    user = insert(:user) -    assert user.info.hide_follows == false - -    assert {:ok, _} = User.update_info(user, &User.Info.profile_update(&1, %{hide_follows: true})) - -    assert %{info: %{hide_follows: true}} = Repo.get(User, user.id) -    assert {:ok, %{info: %{hide_follows: true}}} = Cachex.get(:user_cache, "ap_id:#{user.ap_id}") -  end -    describe "get_cached_by_nickname_or_id" do      setup do        limit_to_local_content = Pleroma.Config.get([:instance, :limit_to_local_content]) @@ -1774,4 +1738,18 @@ defmodule Pleroma.UserTest do        assert %User{} = User.get_cached_by_nickname_or_id(local_user.nickname)      end    end + +  describe "update_email_notifications/2" do +    setup do +      user = insert(:user, email_notifications: %{"digest" => true}) + +      {:ok, user: user} +    end + +    test "Notifications are updated", %{user: user} do +      true = user.email_notifications["digest"] +      assert {:ok, result} = User.update_email_notifications(user, %{"digest" => false}) +      assert result.email_notifications["digest"] == false +    end +  end  end diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 6a3e48b5e..a5414c521 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -354,6 +354,87 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do        assert Activity.get_by_ap_id(data["id"])      end +    test "it accepts messages with to as string instead of array", %{conn: conn, data: data} do +      user = insert(:user) + +      data = +        Map.put(data, "to", user.ap_id) +        |> Map.delete("cc") + +      conn = +        conn +        |> assign(:valid_signature, true) +        |> put_req_header("content-type", "application/activity+json") +        |> post("/users/#{user.nickname}/inbox", data) + +      assert "ok" == json_response(conn, 200) +      ObanHelpers.perform(all_enqueued(worker: ReceiverWorker)) +      assert Activity.get_by_ap_id(data["id"]) +    end + +    test "it accepts messages with cc as string instead of array", %{conn: conn, data: data} do +      user = insert(:user) + +      data = +        Map.put(data, "cc", user.ap_id) +        |> Map.delete("to") + +      conn = +        conn +        |> assign(:valid_signature, true) +        |> put_req_header("content-type", "application/activity+json") +        |> post("/users/#{user.nickname}/inbox", data) + +      assert "ok" == json_response(conn, 200) +      ObanHelpers.perform(all_enqueued(worker: ReceiverWorker)) +      %Activity{} = activity = Activity.get_by_ap_id(data["id"]) +      assert user.ap_id in activity.recipients +    end + +    test "it accepts messages with bcc as string instead of array", %{conn: conn, data: data} do +      user = insert(:user) + +      data = +        Map.put(data, "bcc", user.ap_id) +        |> Map.delete("to") +        |> Map.delete("cc") + +      conn = +        conn +        |> assign(:valid_signature, true) +        |> put_req_header("content-type", "application/activity+json") +        |> post("/users/#{user.nickname}/inbox", data) + +      assert "ok" == json_response(conn, 200) +      ObanHelpers.perform(all_enqueued(worker: ReceiverWorker)) +      assert Activity.get_by_ap_id(data["id"]) +    end + +    test "it accepts announces with to as string instead of array", %{conn: conn} do +      user = insert(:user) + +      data = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "actor" => "http://mastodon.example.org/users/admin", +        "id" => "http://mastodon.example.org/users/admin/statuses/19512778738411822/activity", +        "object" => "https://mastodon.social/users/emelie/statuses/101849165031453009", +        "to" => "https://www.w3.org/ns/activitystreams#Public", +        "cc" => [user.ap_id], +        "type" => "Announce" +      } + +      conn = +        conn +        |> assign(:valid_signature, true) +        |> put_req_header("content-type", "application/activity+json") +        |> post("/users/#{user.nickname}/inbox", data) + +      assert "ok" == json_response(conn, 200) +      ObanHelpers.perform(all_enqueued(worker: ReceiverWorker)) +      %Activity{} = activity = Activity.get_by_ap_id(data["id"]) +      assert "https://www.w3.org/ns/activitystreams#Public" in activity.recipients +    end +      test "it accepts messages from actors that are followed by the user", %{        conn: conn,        data: data @@ -683,7 +764,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "it returns returns a uri if the user has 'hide_followers' set", %{conn: conn} do        user = insert(:user) -      user_two = insert(:user, %{info: %{hide_followers: true}}) +      user_two = insert(:user, hide_followers: true)        User.follow(user, user_two)        result = @@ -696,7 +777,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "it returns a 403 error on pages, if the user has 'hide_followers' set and the request is not authenticated",           %{conn: conn} do -      user = insert(:user, %{info: %{hide_followers: true}}) +      user = insert(:user, hide_followers: true)        result =          conn @@ -708,7 +789,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "it renders the page, if the user has 'hide_followers' set and the request is authenticated with the same user",           %{conn: conn} do -      user = insert(:user, %{info: %{hide_followers: true}}) +      user = insert(:user, hide_followers: true)        other_user = insert(:user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user) @@ -764,7 +845,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      end      test "it returns a uri if the user has 'hide_follows' set", %{conn: conn} do -      user = insert(:user, %{info: %{hide_follows: true}}) +      user = insert(:user, hide_follows: true)        user_two = insert(:user)        User.follow(user, user_two) @@ -778,7 +859,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "it returns a 403 error on pages, if the user has 'hide_follows' set and the request is not authenticated",           %{conn: conn} do -      user = insert(:user, %{info: %{hide_follows: true}}) +      user = insert(:user, hide_follows: true)        result =          conn @@ -790,7 +871,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      test "it renders the page, if the user has 'hide_follows' set and the request is authenticated with the same user",           %{conn: conn} do -      user = insert(:user, %{info: %{hide_follows: true}}) +      user = insert(:user, hide_follows: true)        other_user = insert(:user)        {:ok, user, _other_user, _activity} = CommonAPI.follow(user, other_user) diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 8ae946969..4bb6333c0 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -174,8 +174,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, user} = ActivityPub.make_user_from_ap_id(user_id)        assert user.ap_id == user_id        assert user.nickname == "admin@mastodon.example.org" -      assert user.info.source_data -      assert user.info.ap_enabled +      assert user.source_data +      assert user.ap_enabled        assert user.follower_address == "http://mastodon.example.org/users/admin/followers"      end @@ -366,7 +366,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        assert activity.actor == user.ap_id        user = User.get_cached_by_id(user.id) -      assert user.info.note_count == 0 +      assert user.note_count == 0      end      test "can be fetched into a timeline" do @@ -429,7 +429,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do          })        user = User.get_cached_by_id(user.id) -      assert user.info.note_count == 2 +      assert user.note_count == 2      end      test "increases replies count" do @@ -1096,7 +1096,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      end      test "decrements user note count only for public activities" do -      user = insert(:user, info: %{note_count: 10}) +      user = insert(:user, note_count: 10)        {:ok, a1} =          CommonAPI.post(User.get_cached_by_id(user.id), %{ @@ -1128,7 +1128,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, _} = Object.normalize(a4) |> ActivityPub.delete()        user = User.get_cached_by_id(user.id) -      assert user.info.note_count == 10 +      assert user.note_count == 10      end      test "it creates a delete activity and checks that it is also sent to users mentioned by the deleted object" do @@ -1392,9 +1392,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do            following_address: "http://localhost:4001/users/masto_closed/following"          ) -      {:ok, info} = ActivityPub.fetch_follow_information_for_user(user) -      assert info.hide_followers == true -      assert info.hide_follows == false +      {:ok, follow_info} = ActivityPub.fetch_follow_information_for_user(user) +      assert follow_info.hide_followers == true +      assert follow_info.hide_follows == false      end      test "detects hidden follows" do @@ -1415,9 +1415,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do            following_address: "http://localhost:4001/users/masto_closed/following"          ) -      {:ok, info} = ActivityPub.fetch_follow_information_for_user(user) -      assert info.hide_followers == false -      assert info.hide_follows == true +      {:ok, follow_info} = ActivityPub.fetch_follow_information_for_user(user) +      assert follow_info.hide_followers == false +      assert follow_info.hide_follows == true      end    end  end diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs index 03dc299ec..b524fdd23 100644 --- a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -35,7 +35,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do      test "it allows posts without links" do        user = insert(:user) -      assert user.info.note_count == 0 +      assert user.note_count == 0        message =          @linkless_message @@ -47,7 +47,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do      test "it disallows posts with links" do        user = insert(:user) -      assert user.info.note_count == 0 +      assert user.note_count == 0        message =          @linkful_message @@ -59,9 +59,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do    describe "with old user" do      test "it allows posts without links" do -      user = insert(:user, info: %{note_count: 1}) +      user = insert(:user, note_count: 1) -      assert user.info.note_count == 1 +      assert user.note_count == 1        message =          @linkless_message @@ -71,9 +71,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do      end      test "it allows posts with links" do -      user = insert(:user, info: %{note_count: 1}) +      user = insert(:user, note_count: 1) -      assert user.info.note_count == 1 +      assert user.note_count == 1        message =          @linkful_message @@ -85,9 +85,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do    describe "with followed new user" do      test "it allows posts without links" do -      user = insert(:user, info: %{follower_count: 1}) +      user = insert(:user, follower_count: 1) -      assert user.info.follower_count == 1 +      assert user.follower_count == 1        message =          @linkless_message @@ -97,9 +97,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do      end      test "it allows posts with links" do -      user = insert(:user, info: %{follower_count: 1}) +      user = insert(:user, follower_count: 1) -      assert user.info.follower_count == 1 +      assert user.follower_count == 1        message =          @linkful_message @@ -133,7 +133,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do    describe "with contentless-objects" do      test "it does not reject them or error out" do -      user = insert(:user, info: %{note_count: 1}) +      user = insert(:user, note_count: 1)        message =          @response_message diff --git a/test/web/activity_pub/publisher_test.exs b/test/web/activity_pub/publisher_test.exs index df03b4008..e885e5a5a 100644 --- a/test/web/activity_pub/publisher_test.exs +++ b/test/web/activity_pub/publisher_test.exs @@ -27,7 +27,7 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns sharedInbox for messages involving as:Public in to" do        user =          insert(:user, %{ -          info: %{source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}} +          source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}          })        activity = %Activity{ @@ -40,7 +40,7 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns sharedInbox for messages involving as:Public in cc" do        user =          insert(:user, %{ -          info: %{source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}} +          source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}          })        activity = %Activity{ @@ -53,7 +53,7 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns sharedInbox for messages involving multiple recipients in to" do        user =          insert(:user, %{ -          info: %{source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}} +          source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}          })        user_two = insert(:user) @@ -69,7 +69,7 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns sharedInbox for messages involving multiple recipients in cc" do        user =          insert(:user, %{ -          info: %{source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}} +          source_data: %{"endpoints" => %{"sharedInbox" => "http://example.com/inbox"}}          })        user_two = insert(:user) @@ -84,14 +84,12 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns sharedInbox for messages involving multiple recipients in total" do        user = -        insert(:user, %{ -          info: %{ -            source_data: %{ -              "inbox" => "http://example.com/personal-inbox", -              "endpoints" => %{"sharedInbox" => "http://example.com/inbox"} -            } +        insert(:user, +          source_data: %{ +            "inbox" => "http://example.com/personal-inbox", +            "endpoints" => %{"sharedInbox" => "http://example.com/inbox"}            } -        }) +        )        user_two = insert(:user) @@ -104,14 +102,12 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do      test "it returns inbox for messages involving single recipients in total" do        user = -        insert(:user, %{ -          info: %{ -            source_data: %{ -              "inbox" => "http://example.com/personal-inbox", -              "endpoints" => %{"sharedInbox" => "http://example.com/inbox"} -            } +        insert(:user, +          source_data: %{ +            "inbox" => "http://example.com/personal-inbox", +            "endpoints" => %{"sharedInbox" => "http://example.com/inbox"}            } -        }) +        )        activity = %Activity{          data: %{"to" => [user.ap_id], "cc" => []} @@ -241,10 +237,8 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do        follower =          insert(:user,            local: false, -          info: %{ -            ap_enabled: true, -            source_data: %{"inbox" => "https://domain.com/users/nick1/inbox"} -          } +          source_data: %{"inbox" => "https://domain.com/users/nick1/inbox"}, +          ap_enabled: true          )        actor = insert(:user, follower_address: follower.ap_id) @@ -278,19 +272,15 @@ defmodule Pleroma.Web.ActivityPub.PublisherTest do        fetcher =          insert(:user,            local: false, -          info: %{ -            ap_enabled: true, -            source_data: %{"inbox" => "https://domain.com/users/nick1/inbox"} -          } +          source_data: %{"inbox" => "https://domain.com/users/nick1/inbox"}, +          ap_enabled: true          )        another_fetcher =          insert(:user,            local: false, -          info: %{ -            ap_enabled: true, -            source_data: %{"inbox" => "https://domain2.com/users/nick1/inbox"} -          } +          source_data: %{"inbox" => "https://domain2.com/users/nick1/inbox"}, +          ap_enabled: true          )        actor = insert(:user) diff --git a/test/web/activity_pub/transmogrifier/follow_handling_test.exs b/test/web/activity_pub/transmogrifier/follow_handling_test.exs index 99ab573c5..75cfbea2e 100644 --- a/test/web/activity_pub/transmogrifier/follow_handling_test.exs +++ b/test/web/activity_pub/transmogrifier/follow_handling_test.exs @@ -58,7 +58,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.FollowHandlingTest do      end      test "with locked accounts, it does not create a follow or an accept" do -      user = insert(:user, info: %{locked: true}) +      user = insert(:user, locked: true)        data =          File.read!("test/fixtures/mastodon-follow-activity.json") diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index dbb6e59b0..ae56f8494 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -145,7 +145,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_cached_by_ap_id(object_data["actor"]) -      assert user.info.note_count == 1 +      assert user.note_count == 1      end      test "it works for incoming notices with hashtags" do @@ -582,7 +582,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                 }               ] -      assert user.info.banner["url"] == [ +      assert user.banner["url"] == [                 %{                   "href" =>                     "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" @@ -601,7 +601,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_cached_by_ap_id(activity.actor) -      assert User.Info.fields(user.info) == [ +      assert User.fields(user) == [                 %{"name" => "foo", "value" => "bar"},                 %{"name" => "foo1", "value" => "bar1"}               ] @@ -622,7 +622,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_cached_by_ap_id(user.ap_id) -      assert User.Info.fields(user.info) == [ +      assert User.fields(user) == [                 %{"name" => "foo", "value" => "updated"},                 %{"name" => "foo1", "value" => "updated"}               ] @@ -640,7 +640,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_cached_by_ap_id(user.ap_id) -      assert User.Info.fields(user.info) == [ +      assert User.fields(user) == [                 %{"name" => "foo", "value" => "updated"},                 %{"name" => "foo1", "value" => "updated"}               ] @@ -651,7 +651,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_cached_by_ap_id(user.ap_id) -      assert User.Info.fields(user.info) == [] +      assert User.fields(user) == []      end      test "it works for incoming update activities which lock the account" do @@ -674,7 +674,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data)        user = User.get_cached_by_ap_id(data["actor"]) -      assert user.info.locked == true +      assert user.locked == true      end      test "it works for incoming deletes" do @@ -915,7 +915,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming accepts which were orphaned" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -937,7 +937,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming accepts which are referenced by IRI only" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -957,7 +957,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it fails for incoming accepts which cannot be correlated" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        accept_data =          File.read!("test/fixtures/mastodon-accept-activity.json") @@ -976,7 +976,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it fails for incoming rejects which cannot be correlated" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        accept_data =          File.read!("test/fixtures/mastodon-reject-activity.json") @@ -995,7 +995,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming rejects which are orphaned" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        {:ok, follower} = User.follow(follower, followed)        {:ok, _follow_activity} = ActivityPub.follow(follower, followed) @@ -1021,7 +1021,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming rejects which are referenced by IRI only" do        follower = insert(:user) -      followed = insert(:user, %{info: %User.Info{locked: true}}) +      followed = insert(:user, locked: true)        {:ok, follower} = User.follow(follower, followed)        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -1106,6 +1106,50 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert activity.data["actor"] == other_user.ap_id        assert activity.data["cc"] == [user.ap_id]      end + +    test "it correctly processes messages with non-array to field" do +      user = insert(:user) + +      message = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "to" => "https://www.w3.org/ns/activitystreams#Public", +        "type" => "Create", +        "object" => %{ +          "content" => "blah blah blah", +          "type" => "Note", +          "attributedTo" => user.ap_id, +          "inReplyTo" => nil +        }, +        "actor" => user.ap_id +      } + +      assert {:ok, activity} = Transmogrifier.handle_incoming(message) + +      assert ["https://www.w3.org/ns/activitystreams#Public"] == activity.data["to"] +    end + +    test "it correctly processes messages with non-array cc field" do +      user = insert(:user) + +      message = %{ +        "@context" => "https://www.w3.org/ns/activitystreams", +        "to" => user.follower_address, +        "cc" => "https://www.w3.org/ns/activitystreams#Public", +        "type" => "Create", +        "object" => %{ +          "content" => "blah blah blah", +          "type" => "Note", +          "attributedTo" => user.ap_id, +          "inReplyTo" => nil +        }, +        "actor" => user.ap_id +      } + +      assert {:ok, activity} = Transmogrifier.handle_incoming(message) + +      assert ["https://www.w3.org/ns/activitystreams#Public"] == activity.data["cc"] +      assert [user.follower_address] == activity.data["to"] +    end    end    describe "prepare outgoing" do @@ -1297,18 +1341,18 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert "http://localhost:4001/users/rye@niu.moe/followers" in activity.recipients        user = User.get_cached_by_id(user.id) -      assert user.info.note_count == 1 +      assert user.note_count == 1        {:ok, user} = Transmogrifier.upgrade_user_from_ap_id("https://niu.moe/users/rye")        ObanHelpers.perform_all() -      assert user.info.ap_enabled -      assert user.info.note_count == 1 +      assert user.ap_enabled +      assert user.note_count == 1        assert user.follower_address == "https://niu.moe/users/rye/followers"        assert user.following_address == "https://niu.moe/users/rye/following"        user = User.get_cached_by_id(user.id) -      assert user.info.note_count == 1 +      assert user.note_count == 1        activity = Activity.get_by_id(activity.id)        assert user.follower_address in activity.recipients @@ -1329,7 +1373,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                       "https://cdn.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"                   }                 ] -             } = user.info.banner +             } = user.banner        refute "..." in activity.recipients diff --git a/test/web/activity_pub/utils_test.exs b/test/web/activity_pub/utils_test.exs index c57ea7eb9..c1b000fac 100644 --- a/test/web/activity_pub/utils_test.exs +++ b/test/web/activity_pub/utils_test.exs @@ -297,7 +297,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do    describe "update_follow_state_for_all/2" do      test "updates the state of all Follow activities with the same actor and object" do -      user = insert(:user, info: %{locked: true}) +      user = insert(:user, locked: true)        follower = insert(:user)        {:ok, follow_activity} = ActivityPub.follow(follower, user) @@ -321,7 +321,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do    describe "update_follow_state/2" do      test "updates the state of the given follow activity" do -      user = insert(:user, info: %{locked: true}) +      user = insert(:user, locked: true)        follower = insert(:user)        {:ok, follow_activity} = ActivityPub.follow(follower, user) diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs index a31b4c92e..3299be2d5 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -29,7 +29,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do      {:ok, user} =        insert(:user) -      |> User.upgrade_changeset(%{info: %{fields: fields}}) +      |> User.upgrade_changeset(%{fields: fields})        |> User.update_and_set_cache()      assert %{ @@ -38,7 +38,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do    end    test "Renders with emoji tags" do -    user = insert(:user, %{info: %{emoji: [%{"bib" => "/test"}]}}) +    user = insert(:user, emoji: [%{"bib" => "/test"}])      assert %{               "tag" => [ @@ -64,9 +64,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do      user =        insert(:user,          avatar: %{"url" => [%{"href" => "https://someurl"}]}, -        info: %{ -          banner: %{"url" => [%{"href" => "https://somebanner"}]} -        } +        banner: %{"url" => [%{"href" => "https://somebanner"}]}        )      {:ok, user} = User.ensure_keys_present(user) @@ -77,7 +75,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do    end    test "renders an invisible user with the invisible property set to true" do -    user = insert(:user, %{info: %{invisible: true}}) +    user = insert(:user, invisible: true)      assert %{"invisible" => true} = UserView.render("service.json", %{user: user})    end @@ -127,8 +125,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do        other_user = insert(:user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user)        assert %{"totalItems" => 1} = UserView.render("followers.json", %{user: user}) -      info = Map.merge(user.info, %{hide_followers_count: true, hide_followers: true}) -      user = Map.put(user, :info, info) +      user = Map.merge(user, %{hide_followers_count: true, hide_followers: true})        assert %{"totalItems" => 0} = UserView.render("followers.json", %{user: user})      end @@ -137,8 +134,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do        other_user = insert(:user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user)        assert %{"totalItems" => 1} = UserView.render("followers.json", %{user: user}) -      info = Map.merge(user.info, %{hide_followers_count: false, hide_followers: true}) -      user = Map.put(user, :info, info) +      user = Map.merge(user, %{hide_followers_count: false, hide_followers: true})        assert %{"totalItems" => 1} = UserView.render("followers.json", %{user: user})      end    end @@ -149,8 +145,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do        other_user = insert(:user)        {:ok, user, _other_user, _activity} = CommonAPI.follow(user, other_user)        assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user}) -      info = Map.merge(user.info, %{hide_follows_count: true, hide_follows: true}) -      user = Map.put(user, :info, info) +      user = Map.merge(user, %{hide_follows_count: true, hide_follows: true})        assert %{"totalItems" => 0} = UserView.render("following.json", %{user: user})      end @@ -159,8 +154,7 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do        other_user = insert(:user)        {:ok, user, _other_user, _activity} = CommonAPI.follow(user, other_user)        assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user}) -      info = Map.merge(user.info, %{hide_follows_count: false, hide_follows: true}) -      user = Map.put(user, :info, info) +      user = Map.merge(user, %{hide_follows_count: false, hide_follows: true})        assert %{"totalItems" => 1} = UserView.render("following.json", %{user: user})      end    end diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 9da4940be..58435d23c 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -25,7 +25,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "DELETE /api/pleroma/admin/users" do      test "single user" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -43,7 +43,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "multiple users" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user_one = insert(:user)        user_two = insert(:user) @@ -67,7 +67,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/users" do      test "Create" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -97,7 +97,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "Cannot create user with exisiting email" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -128,7 +128,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "Cannot create user with exisiting nickname" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -159,7 +159,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "Multiple user creation works in transaction" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -208,7 +208,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/users/:nickname" do      test "Show", %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -231,7 +231,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "when the user doesn't exist", %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = build(:user)        conn = @@ -245,7 +245,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/users/follow" do      test "allows to force-follow another user" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        follower = insert(:user) @@ -271,7 +271,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/users/unfollow" do      test "allows to force-unfollow another user" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        follower = insert(:user) @@ -299,7 +299,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "PUT /api/pleroma/admin/users/tag" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user1 = insert(:user, %{tags: ["x"]})        user2 = insert(:user, %{tags: ["y"]})        user3 = insert(:user, %{tags: ["unchanged"]}) @@ -348,7 +348,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "DELETE /api/pleroma/admin/users/tag" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user1 = insert(:user, %{tags: ["x"]})        user2 = insert(:user, %{tags: ["y", "z"]})        user3 = insert(:user, %{tags: ["unchanged"]}) @@ -397,7 +397,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/users/:nickname/permission_group" do      test "GET is giving user_info" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -412,7 +412,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "/:right POST, can add to a permission group" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        conn = @@ -432,7 +432,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "/:right POST, can add to a permission group (multiple)" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user_one = insert(:user)        user_two = insert(:user) @@ -455,8 +455,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "/:right DELETE, can remove from a permission group" do -      admin = insert(:user, info: %{is_admin: true}) -      user = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true) +      user = insert(:user, is_admin: true)        conn =          build_conn() @@ -475,9 +475,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "/:right DELETE, can remove from a permission group (multiple)" do -      admin = insert(:user, info: %{is_admin: true}) -      user_one = insert(:user, info: %{is_admin: true}) -      user_two = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true) +      user_one = insert(:user, is_admin: true) +      user_two = insert(:user, is_admin: true)        conn =          build_conn() @@ -502,7 +502,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "POST /api/pleroma/admin/email_invite, with valid config" do      setup do -      [user: insert(:user, info: %{is_admin: true})] +      [user: insert(:user, is_admin: true)]      end      clear_config([:instance, :registrations_open]) do @@ -562,7 +562,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "POST /api/pleroma/admin/users/email_invite, with invalid config" do      setup do -      [user: insert(:user, info: %{is_admin: true})] +      [user: insert(:user, is_admin: true)]      end      clear_config([:instance, :registrations_open]) @@ -594,7 +594,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    end    test "/api/pleroma/admin/users/:nickname/password_reset" do -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      user = insert(:user)      conn = @@ -610,7 +610,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/users" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -626,7 +626,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        users =          [            %{ -            "deactivated" => admin.info.deactivated, +            "deactivated" => admin.deactivated,              "id" => admin.id,              "nickname" => admin.nickname,              "roles" => %{"admin" => true, "moderator" => false}, @@ -636,7 +636,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do              "display_name" => HTML.strip_tags(admin.name || admin.nickname)            },            %{ -            "deactivated" => user.info.deactivated, +            "deactivated" => user.deactivated,              "id" => user.id,              "nickname" => user.nickname,              "roles" => %{"admin" => false, "moderator" => false}, @@ -677,7 +677,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -701,7 +701,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -725,7 +725,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -749,7 +749,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -773,7 +773,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -797,7 +797,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 1,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -816,7 +816,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 1,                 "users" => [                   %{ -                   "deactivated" => user2.info.deactivated, +                   "deactivated" => user2.deactivated,                     "id" => user2.id,                     "nickname" => user2.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -830,7 +830,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "only local users" do -      admin = insert(:user, info: %{is_admin: true}, nickname: "john") +      admin = insert(:user, is_admin: true, nickname: "john")        user = insert(:user, nickname: "bob")        insert(:user, nickname: "bobb", local: false) @@ -845,7 +845,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -859,7 +859,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "only local users with no query", %{admin: old_admin} do -      admin = insert(:user, info: %{is_admin: true}, nickname: "john") +      admin = insert(:user, is_admin: true, nickname: "john")        user = insert(:user, nickname: "bob")        insert(:user, nickname: "bobb", local: false) @@ -872,7 +872,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        users =          [            %{ -            "deactivated" => user.info.deactivated, +            "deactivated" => user.deactivated,              "id" => user.id,              "nickname" => user.nickname,              "roles" => %{"admin" => false, "moderator" => false}, @@ -882,7 +882,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do              "display_name" => HTML.strip_tags(user.name || user.nickname)            },            %{ -            "deactivated" => admin.info.deactivated, +            "deactivated" => admin.deactivated,              "id" => admin.id,              "nickname" => admin.nickname,              "roles" => %{"admin" => true, "moderator" => false}, @@ -912,7 +912,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "load only admins", %{conn: conn, admin: admin} do -      second_admin = insert(:user, info: %{is_admin: true}) +      second_admin = insert(:user, is_admin: true)        insert(:user)        insert(:user) @@ -951,7 +951,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "load only moderators", %{conn: conn} do -      moderator = insert(:user, info: %{is_moderator: true}) +      moderator = insert(:user, is_moderator: true)        insert(:user)        insert(:user) @@ -1016,11 +1016,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "it works with multiple filters" do -      admin = insert(:user, nickname: "john", info: %{is_admin: true}) -      user = insert(:user, nickname: "bob", local: false, info: %{deactivated: true}) +      admin = insert(:user, nickname: "john", is_admin: true) +      user = insert(:user, nickname: "bob", local: false, deactivated: true) -      insert(:user, nickname: "ken", local: true, info: %{deactivated: true}) -      insert(:user, nickname: "bobb", local: false, info: %{deactivated: false}) +      insert(:user, nickname: "ken", local: true, deactivated: true) +      insert(:user, nickname: "bobb", local: false, deactivated: false)        conn =          build_conn() @@ -1032,7 +1032,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "page_size" => 50,                 "users" => [                   %{ -                   "deactivated" => user.info.deactivated, +                   "deactivated" => user.deactivated,                     "id" => user.id,                     "nickname" => user.nickname,                     "roles" => %{"admin" => false, "moderator" => false}, @@ -1047,9 +1047,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    end    test "PATCH /api/pleroma/admin/users/activate" do -    admin = insert(:user, info: %{is_admin: true}) -    user_one = insert(:user, info: %{deactivated: true}) -    user_two = insert(:user, info: %{deactivated: true}) +    admin = insert(:user, is_admin: true) +    user_one = insert(:user, deactivated: true) +    user_two = insert(:user, deactivated: true)      conn =        build_conn() @@ -1069,9 +1069,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    end    test "PATCH /api/pleroma/admin/users/deactivate" do -    admin = insert(:user, info: %{is_admin: true}) -    user_one = insert(:user, info: %{deactivated: false}) -    user_two = insert(:user, info: %{deactivated: false}) +    admin = insert(:user, is_admin: true) +    user_one = insert(:user, deactivated: false) +    user_two = insert(:user, deactivated: false)      conn =        build_conn() @@ -1091,7 +1091,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    end    test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      user = insert(:user)      conn = @@ -1101,7 +1101,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      assert json_response(conn, 200) ==               %{ -               "deactivated" => !user.info.deactivated, +               "deactivated" => !user.deactivated,                 "id" => user.id,                 "nickname" => user.nickname,                 "roles" => %{"admin" => false, "moderator" => false}, @@ -1119,7 +1119,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "POST /api/pleroma/admin/users/invite_token" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -1183,7 +1183,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/users/invites" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -1221,7 +1221,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "POST /api/pleroma/admin/users/revoke_invite" do      test "with token" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        {:ok, invite} = UserInviteToken.create_invite()        conn = @@ -1241,7 +1241,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "with invalid token" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        conn =          build_conn() @@ -1254,7 +1254,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/reports/:id" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        %{conn: assign(conn, :user, admin)}      end @@ -1287,7 +1287,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "PUT /api/pleroma/admin/reports/:id" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        [reporter, target_user] = insert_pair(:user)        activity = insert(:note_activity, user: target_user) @@ -1348,7 +1348,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/reports" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        %{conn: assign(conn, :user, admin)}      end @@ -1468,7 +1468,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    #    describe "POST /api/pleroma/admin/reports/:id/respond" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        %{conn: assign(conn, :user, admin), admin: admin}      end @@ -1523,7 +1523,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "PUT /api/pleroma/admin/statuses/:id" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        activity = insert(:note_activity)        %{conn: assign(conn, :user, admin), id: activity.id, admin: admin} @@ -1589,7 +1589,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "DELETE /api/pleroma/admin/statuses/:id" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        activity = insert(:note_activity)        %{conn: assign(conn, :user, admin), id: activity.id, admin: admin} @@ -1619,7 +1619,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/config" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        %{conn: assign(conn, :user, admin)}      end @@ -1656,7 +1656,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "POST /api/pleroma/admin/config" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        temp_file = "config/test.exported_from_db.secret.exs" @@ -2224,7 +2224,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "config mix tasks run" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        temp_file = "config/test.exported_from_db.secret.exs" @@ -2260,7 +2260,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/users/:nickname/statuses" do      setup do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        date1 = (DateTime.to_unix(DateTime.utc_now()) + 2000) |> DateTime.from_unix!() @@ -2317,8 +2317,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "GET /api/pleroma/admin/moderation_log" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) -      moderator = insert(:user, info: %{is_moderator: true}) +      admin = insert(:user, is_admin: true) +      moderator = insert(:user, is_moderator: true)        %{conn: assign(conn, :user, admin), admin: admin, moderator: moderator}      end @@ -2526,14 +2526,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "PATCH /users/:nickname/force_password_reset" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        user = insert(:user)        %{conn: assign(conn, :user, admin), admin: admin, user: user}      end      test "sets password_reset_pending to true", %{admin: admin, user: user} do -      assert user.info.password_reset_pending == false +      assert user.password_reset_pending == false        conn =          build_conn() @@ -2544,13 +2544,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        ObanHelpers.perform_all() -      assert User.get_by_id(user.id).info.password_reset_pending == true +      assert User.get_by_id(user.id).password_reset_pending == true      end    end    describe "relays" do      setup %{conn: conn} do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        %{conn: assign(conn, :user, admin), admin: admin}      end diff --git a/test/web/admin_api/search_test.exs b/test/web/admin_api/search_test.exs index 9df4cd539..082e691c4 100644 --- a/test/web/admin_api/search_test.exs +++ b/test/web/admin_api/search_test.exs @@ -47,9 +47,9 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do      end      test "it returns active/deactivated users" do -      insert(:user, info: %{deactivated: true}) -      insert(:user, info: %{deactivated: true}) -      insert(:user, info: %{deactivated: false}) +      insert(:user, deactivated: true) +      insert(:user, deactivated: true) +      insert(:user, deactivated: false)        {:ok, _results, active_count} =          Search.user(%{ @@ -70,7 +70,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do      test "it returns specific user" do        insert(:user)        insert(:user) -      user = insert(:user, nickname: "bob", local: true, info: %{deactivated: false}) +      user = insert(:user, nickname: "bob", local: true, deactivated: false)        {:ok, _results, total_count} = Search.user(%{query: ""}) @@ -108,7 +108,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do      end      test "it returns admin user" do -      admin = insert(:user, info: %{is_admin: true}) +      admin = insert(:user, is_admin: true)        insert(:user)        insert(:user) @@ -119,7 +119,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do      end      test "it returns moderator user" do -      moderator = insert(:user, info: %{is_moderator: true}) +      moderator = insert(:user, is_moderator: true)        insert(:user)        insert(:user) diff --git a/test/web/admin_api/views/report_view_test.exs b/test/web/admin_api/views/report_view_test.exs index 475705857..ef4a806e4 100644 --- a/test/web/admin_api/views/report_view_test.exs +++ b/test/web/admin_api/views/report_view_test.exs @@ -49,6 +49,8 @@ defmodule Pleroma.Web.AdminAPI.ReportViewTest do      {:ok, report_activity} =        CommonAPI.report(user, %{"account_id" => other_user.id, "status_ids" => [activity.id]}) +    other_user = Pleroma.User.get_by_id(other_user.id) +      expected = %{        content: nil,        actor: diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 83df44c36..1d2f20617 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -100,7 +100,7 @@ defmodule Pleroma.Web.CommonAPITest do      {:ok, activity} = CommonAPI.update(user)      user = User.get_cached_by_ap_id(user.ap_id) -    [firefox] = user.info.source_data["tag"] +    [firefox] = user.source_data["tag"]      assert firefox["name"] == ":firefox:" @@ -291,7 +291,7 @@ defmodule Pleroma.Web.CommonAPITest do        id = activity.id        user = refresh_record(user) -      assert %User{info: %{pinned_activities: [^id]}} = user +      assert %User{pinned_activities: [^id]} = user      end      test "unlisted statuses can be pinned", %{user: user} do @@ -325,7 +325,7 @@ defmodule Pleroma.Web.CommonAPITest do        user = refresh_record(user) -      assert %User{info: %{pinned_activities: []}} = user +      assert %User{pinned_activities: []} = user      end      test "should unpin when deleting a status", %{user: user, activity: activity} do @@ -337,7 +337,7 @@ defmodule Pleroma.Web.CommonAPITest do        user = refresh_record(user) -      assert %User{info: %{pinned_activities: []}} = user +      assert %User{pinned_activities: []} = user      end    end @@ -468,7 +468,7 @@ defmodule Pleroma.Web.CommonAPITest do    describe "accept_follow_request/2" do      test "after acceptance, it sets all existing pending follow request states to 'accept'" do -      user = insert(:user, info: %{locked: true}) +      user = insert(:user, locked: true)        follower = insert(:user)        follower_two = insert(:user) @@ -488,7 +488,7 @@ defmodule Pleroma.Web.CommonAPITest do      end      test "after rejection, it sets all existing pending follow request states to 'reject'" do -      user = insert(:user, info: %{locked: true}) +      user = insert(:user, locked: true)        follower = insert(:user)        follower_two = insert(:user) diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs index bdaefdce1..c224197c3 100644 --- a/test/web/federator_test.exs +++ b/test/web/federator_test.exs @@ -81,14 +81,16 @@ defmodule Pleroma.Web.FederatorTest do          local: false,          nickname: "nick1@domain.com",          ap_id: "https://domain.com/users/nick1", -        info: %{ap_enabled: true, source_data: %{"inbox" => inbox1}} +        source_data: %{"inbox" => inbox1}, +        ap_enabled: true        })        insert(:user, %{          local: false,          nickname: "nick2@domain2.com",          ap_id: "https://domain2.com/users/nick2", -        info: %{ap_enabled: true, source_data: %{"inbox" => inbox2}} +        source_data: %{"inbox" => inbox2}, +        ap_enabled: true        })        dt = NaiveDateTime.utc_now() diff --git a/test/web/masto_fe_controller_test.exs b/test/web/masto_fe_controller_test.exs index ab9dab352..b5dbd4a25 100644 --- a/test/web/masto_fe_controller_test.exs +++ b/test/web/masto_fe_controller_test.exs @@ -23,7 +23,7 @@ defmodule Pleroma.Web.MastodonAPI.MastoFEController do      assert _result = json_response(conn, 200)      user = User.get_cached_by_ap_id(user.ap_id) -    assert user.info.settings == %{"programming" => "socks"} +    assert user.settings == %{"programming" => "socks"}    end    describe "index/2 redirections" do diff --git a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs index 618031b40..519b56d6c 100644 --- a/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs +++ b/test/web/mastodon_api/controllers/account_controller/update_credentials_test.exs @@ -153,7 +153,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do          |> json_response(200)        assert response["pleroma"]["skip_thread_containment"] == true -      assert refresh_record(user).info.skip_thread_containment +      assert refresh_record(user).skip_thread_containment      end      test "updates the user's hide_follows status", %{conn: conn} do diff --git a/test/web/mastodon_api/controllers/account_controller_test.exs b/test/web/mastodon_api/controllers/account_controller_test.exs index 745383757..00c83fd7b 100644 --- a/test/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/web/mastodon_api/controllers/account_controller_test.exs @@ -269,7 +269,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      test "getting followers, hide_followers", %{conn: conn} do        user = insert(:user) -      other_user = insert(:user, %{info: %{hide_followers: true}}) +      other_user = insert(:user, hide_followers: true)        {:ok, _user} = User.follow(user, other_user)        conn = @@ -281,7 +281,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      test "getting followers, hide_followers, same user requesting", %{conn: conn} do        user = insert(:user) -      other_user = insert(:user, %{info: %{hide_followers: true}}) +      other_user = insert(:user, hide_followers: true)        {:ok, _user} = User.follow(user, other_user)        conn = @@ -349,7 +349,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      end      test "getting following, hide_follows", %{conn: conn} do -      user = insert(:user, %{info: %{hide_follows: true}}) +      user = insert(:user, hide_follows: true)        other_user = insert(:user)        {:ok, user} = User.follow(user, other_user) @@ -361,7 +361,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      end      test "getting following, hide_follows, same user requesting", %{conn: conn} do -      user = insert(:user, %{info: %{hide_follows: true}}) +      user = insert(:user, hide_follows: true)        other_user = insert(:user)        {:ok, user} = User.follow(user, other_user) @@ -683,7 +683,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do        token_from_db = Repo.preload(token_from_db, :user)        assert token_from_db.user -      assert token_from_db.user.info.confirmation_pending +      assert token_from_db.user.confirmation_pending      end      test "returns error when user already registred", %{conn: conn, valid_params: valid_params} do @@ -727,7 +727,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do          token_from_db = Repo.preload(token_from_db, :user)          assert token_from_db.user -        assert token_from_db.user.info.confirmation_pending +        assert token_from_db.user.confirmation_pending        end        conn = @@ -812,7 +812,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      end      test "verify_credentials default scope unlisted", %{conn: conn} do -      user = insert(:user, %{info: %User.Info{default_scope: "unlisted"}}) +      user = insert(:user, default_scope: "unlisted")        conn =          conn @@ -824,7 +824,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      end      test "locked accounts", %{conn: conn} do -      user = insert(:user, %{info: %User.Info{default_scope: "private"}}) +      user = insert(:user, default_scope: "private")        conn =          conn diff --git a/test/web/mastodon_api/controllers/conversation_controller_test.exs b/test/web/mastodon_api/controllers/conversation_controller_test.exs index d89a87179..542af4944 100644 --- a/test/web/mastodon_api/controllers/conversation_controller_test.exs +++ b/test/web/mastodon_api/controllers/conversation_controller_test.exs @@ -17,7 +17,7 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do      {:ok, user_two} = User.follow(user_two, user_one) -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0      {:ok, direct} =        CommonAPI.post(user_one, %{ @@ -25,7 +25,7 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do          "visibility" => "direct"        }) -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 1 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 1      {:ok, _follower_only} =        CommonAPI.post(user_one, %{ @@ -56,7 +56,7 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do      assert is_binary(res_id)      assert unread == false      assert res_last_status["id"] == direct.id -    assert User.get_cached_by_id(user_one.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0    end    test "updates the last_status on reply", %{conn: conn} do @@ -95,8 +95,8 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do          "visibility" => "direct"        }) -    assert User.get_cached_by_id(user_one.id).info.unread_conversation_count == 0 -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 1 +    assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 1      [%{"id" => direct_conversation_id, "unread" => true}] =        conn @@ -110,8 +110,8 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do        |> post("/api/v1/conversations/#{direct_conversation_id}/read")        |> json_response(200) -    assert User.get_cached_by_id(user_one.id).info.unread_conversation_count == 0 -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user_one.id).unread_conversation_count == 0 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0      # The conversation is marked as unread on reply      {:ok, _} = @@ -127,8 +127,8 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do        |> get("/api/v1/conversations")        |> json_response(200) -    assert User.get_cached_by_id(user_one.id).info.unread_conversation_count == 1 -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user_one.id).unread_conversation_count == 1 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0      # A reply doesn't increment the user's unread_conversation_count if the conversation is unread      {:ok, _} = @@ -138,8 +138,8 @@ defmodule Pleroma.Web.MastodonAPI.ConversationControllerTest do          "in_reply_to_status_id" => direct.id        }) -    assert User.get_cached_by_id(user_one.id).info.unread_conversation_count == 1 -    assert User.get_cached_by_id(user_two.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(user_one.id).unread_conversation_count == 1 +    assert User.get_cached_by_id(user_two.id).unread_conversation_count == 0    end    test "(vanilla) Mastodon frontend behaviour", %{conn: conn} do diff --git a/test/web/mastodon_api/controllers/follow_request_controller_test.exs b/test/web/mastodon_api/controllers/follow_request_controller_test.exs index 4bf292df5..913f8c038 100644 --- a/test/web/mastodon_api/controllers/follow_request_controller_test.exs +++ b/test/web/mastodon_api/controllers/follow_request_controller_test.exs @@ -12,7 +12,7 @@ defmodule Pleroma.Web.MastodonAPI.FollowRequestControllerTest do    describe "locked accounts" do      test "/api/v1/follow_requests works" do -      user = insert(:user, %{info: %User.Info{locked: true}}) +      user = insert(:user, locked: true)        other_user = insert(:user)        {:ok, _activity} = ActivityPub.follow(other_user, user) @@ -32,7 +32,7 @@ defmodule Pleroma.Web.MastodonAPI.FollowRequestControllerTest do      end      test "/api/v1/follow_requests/:id/authorize works" do -      user = insert(:user, %{info: %User.Info{locked: true}}) +      user = insert(:user, locked: true)        other_user = insert(:user)        {:ok, _activity} = ActivityPub.follow(other_user, user) @@ -57,7 +57,7 @@ defmodule Pleroma.Web.MastodonAPI.FollowRequestControllerTest do      end      test "/api/v1/follow_requests/:id/reject works" do -      user = insert(:user, %{info: %User.Info{locked: true}}) +      user = insert(:user, locked: true)        other_user = insert(:user)        {:ok, _activity} = ActivityPub.follow(other_user, user) diff --git a/test/web/mastodon_api/controllers/instance_controller_test.exs b/test/web/mastodon_api/controllers/instance_controller_test.exs index f8049f81f..e00de6b18 100644 --- a/test/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/web/mastodon_api/controllers/instance_controller_test.exs @@ -41,20 +41,13 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do      user = insert(:user, %{local: true})      user2 = insert(:user, %{local: true}) -    {:ok, _user2} = User.deactivate(user2, !user2.info.deactivated) +    {:ok, _user2} = User.deactivate(user2, !user2.deactivated)      insert(:user, %{local: false, nickname: "u@peer1.com"})      insert(:user, %{local: false, nickname: "u@peer2.com"})      {:ok, _} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofe"}) -    # Stats should count users with missing or nil `info.deactivated` value - -    {:ok, _user} = -      user.id -      |> User.get_cached_by_id() -      |> User.update_info(&Ecto.Changeset.change(&1, %{deactivated: nil})) -      Pleroma.Stats.force_update()      conn = get(conn, "/api/v1/instance") diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index 4da610b28..a96fd860b 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -558,8 +558,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do      test "when you're an admin or moderator", %{conn: conn} do        activity1 = insert(:note_activity)        activity2 = insert(:note_activity) -      admin = insert(:user, info: %{is_admin: true}) -      moderator = insert(:user, info: %{is_moderator: true}) +      admin = insert(:user, is_admin: true) +      moderator = insert(:user, is_moderator: true)        res_conn =          conn diff --git a/test/web/mastodon_api/mastodon_api_test.exs b/test/web/mastodon_api/mastodon_api_test.exs index 7fcb2bd55..561ef05aa 100644 --- a/test/web/mastodon_api/mastodon_api_test.exs +++ b/test/web/mastodon_api/mastodon_api_test.exs @@ -14,11 +14,11 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPITest do    import Pleroma.Factory    describe "follow/3" do -    test "returns error when user deactivated" do +    test "returns error when followed user is deactivated" do        follower = insert(:user) -      user = insert(:user, local: true, info: %{deactivated: true}) +      user = insert(:user, local: true, deactivated: true)        {:error, error} = MastodonAPI.follow(follower, user) -      assert error == "Could not follow user: You are deactivated." +      assert error == "Could not follow user: #{user.nickname} is deactivated."      end      test "following for user" do diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index ad209b4a3..af88841ed 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -26,12 +26,10 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      user =        insert(:user, %{ -        info: %{ -          note_count: 5, -          follower_count: 3, -          source_data: source_data, -          background: background_image -        }, +        follower_count: 3, +        note_count: 5, +        source_data: source_data, +        background: background_image,          nickname: "shp@shitposter.club",          name: ":karjalanpiirakka: shp",          bio: "<script src=\"invalid-html\"></script><span>valid html</span>", @@ -101,7 +99,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do        "non_followers" => true      } -    privacy = user.info.default_scope +    privacy = user.default_scope      assert %{               pleroma: %{notification_settings: ^notification_settings}, @@ -112,7 +110,9 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    test "Represent a Service(bot) account" do      user =        insert(:user, %{ -        info: %{note_count: 5, follower_count: 3, source_data: %{"type" => "Service"}}, +        follower_count: 3, +        note_count: 5, +        source_data: %{"type" => "Service"},          nickname: "shp@shitposter.club",          inserted_at: ~N[2017-08-15 15:47:06.597036]        }) @@ -164,8 +164,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    end    test "Represent a deactivated user for an admin" do -    admin = insert(:user, %{info: %{is_admin: true}}) -    deactivated_user = insert(:user, %{info: %{deactivated: true}}) +    admin = insert(:user, is_admin: true) +    deactivated_user = insert(:user, deactivated: true)      represented = AccountView.render("show.json", %{user: deactivated_user, for: admin})      assert represented[:pleroma][:deactivated] == true    end @@ -253,7 +253,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      test "represent a relationship for the user with a pending follow request" do        user = insert(:user) -      other_user = insert(:user, %{info: %User.Info{locked: true}}) +      other_user = insert(:user, locked: true)        {:ok, user, other_user, _} = CommonAPI.follow(user, other_user)        user = User.get_cached_by_id(user.id) @@ -282,7 +282,9 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    test "represent an embedded relationship" do      user =        insert(:user, %{ -        info: %{note_count: 5, follower_count: 0, source_data: %{"type" => "Service"}}, +        follower_count: 0, +        note_count: 5, +        source_data: %{"type" => "Service"},          nickname: "shp@shitposter.club",          inserted_at: ~N[2017-08-15 15:47:06.597036]        }) @@ -352,7 +354,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    end    test "returns the settings store if the requesting user is the represented user and it's requested specifically" do -    user = insert(:user, %{info: %User.Info{pleroma_settings_store: %{fe: "test"}}}) +    user = insert(:user, pleroma_settings_store: %{fe: "test"})      result =        AccountView.render("show.json", %{user: user, for: user, with_pleroma_settings: true}) @@ -374,14 +376,13 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    describe "hiding follows/following" do      test "shows when follows/followers stats are hidden and sets follow/follower count to 0" do -      info = %{ -        hide_followers: true, -        hide_followers_count: true, -        hide_follows: true, -        hide_follows_count: true -      } - -      user = insert(:user, info: info) +      user = +        insert(:user, %{ +          hide_followers: true, +          hide_followers_count: true, +          hide_follows: true, +          hide_follows_count: true +        })        other_user = insert(:user)        {:ok, user, other_user, _activity} = CommonAPI.follow(user, other_user) @@ -395,7 +396,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "shows when follows/followers are hidden" do -      user = insert(:user, info: %{hide_followers: true, hide_follows: true}) +      user = insert(:user, hide_followers: true, hide_follows: true)        other_user = insert(:user)        {:ok, user, other_user, _activity} = CommonAPI.follow(user, other_user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user) @@ -408,7 +409,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "shows actual follower/following count to the account owner" do -      user = insert(:user, info: %{hide_followers: true, hide_follows: true}) +      user = insert(:user, hide_followers: true, hide_follows: true)        other_user = insert(:user)        {:ok, user, other_user, _activity} = CommonAPI.follow(user, other_user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user) @@ -456,7 +457,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "shows non-zero when follow requests are pending" do -      user = insert(:user, %{info: %{locked: true}}) +      user = insert(:user, locked: true)        assert %{locked: true} = AccountView.render("show.json", %{user: user, for: user}) @@ -468,7 +469,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "decreases when accepting a follow request" do -      user = insert(:user, %{info: %{locked: true}}) +      user = insert(:user, locked: true)        assert %{locked: true} = AccountView.render("show.json", %{user: user, for: user}) @@ -485,7 +486,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "decreases when rejecting a follow request" do -      user = insert(:user, %{info: %{locked: true}}) +      user = insert(:user, locked: true)        assert %{locked: true} = AccountView.render("show.json", %{user: user, for: user}) @@ -502,14 +503,14 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      end      test "shows non-zero when historical unapproved requests are present" do -      user = insert(:user, %{info: %{locked: true}}) +      user = insert(:user, locked: true)        assert %{locked: true} = AccountView.render("show.json", %{user: user, for: user})        other_user = insert(:user)        {:ok, _other_user, user, _activity} = CommonAPI.follow(other_user, user) -      {:ok, user} = User.update_info(user, &User.Info.user_upgrade(&1, %{locked: false})) +      {:ok, user} = User.update_and_set_cache(user, %{locked: false})        assert %{locked: false, follow_requests_count: 1} =                 AccountView.render("show.json", %{user: user, for: user}) diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index e15a0bfff..a3281b25b 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -24,8 +24,8 @@ defmodule Pleroma.Web.NodeInfoTest do    end    test "nodeinfo shows staff accounts", %{conn: conn} do -    moderator = insert(:user, %{local: true, info: %{is_moderator: true}}) -    admin = insert(:user, %{local: true, info: %{is_admin: true}}) +    moderator = insert(:user, local: true, is_moderator: true) +    admin = insert(:user, local: true, is_admin: true)      conn =        conn diff --git a/test/web/oauth/oauth_controller_test.exs b/test/web/oauth/oauth_controller_test.exs index 41aaf6189..ad8d79083 100644 --- a/test/web/oauth/oauth_controller_test.exs +++ b/test/web/oauth/oauth_controller_test.exs @@ -780,8 +780,8 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do        {:ok, user} =          insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt(password)) -        |> User.change_info(&User.Info.confirmation_changeset(&1, need_confirmation: true)) -        |> Repo.update() +        |> User.confirmation_changeset(need_confirmation: true) +        |> User.update_and_set_cache()        refute Pleroma.User.auth_active?(user) @@ -808,7 +808,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do        user =          insert(:user,            password_hash: Comeonin.Pbkdf2.hashpwsalt(password), -          info: %{deactivated: true} +          deactivated: true          )        app = insert(:oauth_app) @@ -834,7 +834,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do        user =          insert(:user,            password_hash: Comeonin.Pbkdf2.hashpwsalt(password), -          info: %{password_reset_pending: true} +          password_reset_pending: true          )        app = insert(:oauth_app, scopes: ["read", "write"]) diff --git a/test/web/pleroma_api/controllers/account_controller_test.exs b/test/web/pleroma_api/controllers/account_controller_test.exs index 3b4665afd..c809f510f 100644 --- a/test/web/pleroma_api/controllers/account_controller_test.exs +++ b/test/web/pleroma_api/controllers/account_controller_test.exs @@ -6,7 +6,6 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do    use Pleroma.Web.ConnCase    alias Pleroma.Config -  alias Pleroma.Repo    alias Pleroma.Tests.ObanHelpers    alias Pleroma.User    alias Pleroma.Web.CommonAPI @@ -20,10 +19,10 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do      setup do        {:ok, user} =          insert(:user) -        |> User.change_info(&User.Info.confirmation_changeset(&1, need_confirmation: true)) -        |> Repo.update() +        |> User.confirmation_changeset(need_confirmation: true) +        |> User.update_and_set_cache() -      assert user.info.confirmation_pending +      assert user.confirmation_pending        [user: user]      end @@ -105,7 +104,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do          |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => @image})        user = refresh_record(user) -      assert user.info.banner["type"] == "Image" +      assert user.banner["type"] == "Image"        assert %{"url" => _} = json_response(conn, 200)      end @@ -119,7 +118,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do          |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => ""})        user = refresh_record(user) -      assert user.info.banner == %{} +      assert user.banner == %{}        assert %{"url" => nil} = json_response(conn, 200)      end @@ -135,7 +134,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do          |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => @image})        user = refresh_record(user) -      assert user.info.background["type"] == "Image" +      assert user.background["type"] == "Image"        assert %{"url" => _} = json_response(conn, 200)      end @@ -148,14 +147,14 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do          |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => ""})        user = refresh_record(user) -      assert user.info.background == %{} +      assert user.background == %{}        assert %{"url" => nil} = json_response(conn, 200)      end    end    describe "getting favorites timeline of specified user" do      setup do -      [current_user, user] = insert_pair(:user, %{info: %{hide_favorites: false}}) +      [current_user, user] = insert_pair(:user, hide_favorites: false)        [current_user: current_user, user: user]      end @@ -319,7 +318,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do        conn: conn,        current_user: current_user      } do -      user = insert(:user, %{info: %{hide_favorites: true}}) +      user = insert(:user, hide_favorites: true)        activity = insert(:note_activity)        CommonAPI.favorite(activity.id, user) @@ -341,7 +340,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do          |> assign(:user, current_user)          |> get("/api/v1/pleroma/accounts/#{user.id}/favourites") -      assert user.info.hide_favorites +      assert user.hide_favorites        assert json_response(conn, 403) == %{"error" => "Can't get favorites"}      end    end diff --git a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs index 5f74460e8..3d3becefd 100644 --- a/test/web/pleroma_api/controllers/emoji_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/emoji_api_controller_test.exs @@ -38,7 +38,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do    end    test "listing remote packs" do -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      conn = build_conn() |> assign(:user, admin)      resp = conn |> get(emoji_api_path(conn, :list_packs)) |> json_response(200) @@ -121,7 +121,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do          text(File.read!("#{@emoji_dir_path}/test_pack_nonshared/nonshared.zip"))      end) -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      conn = build_conn() |> assign(:user, admin) @@ -206,7 +206,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do        end)        {:ok, -       admin: insert(:user, info: %{is_admin: true}), +       admin: insert(:user, is_admin: true),         pack_file: pack_file,         new_data: %{           "license" => "Test license changed", @@ -303,7 +303,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do        File.rm_rf!("#{@emoji_dir_path}/test_pack/dir_2")      end) -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      conn = build_conn() @@ -391,7 +391,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do        File.rm_rf!("#{@emoji_dir_path}/test_created")      end) -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      conn = build_conn() |> assign(:user, admin) @@ -431,7 +431,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiAPIControllerTest do      refute Map.has_key?(resp, "test_pack_for_import") -    admin = insert(:user, info: %{is_admin: true}) +    admin = insert(:user, is_admin: true)      assert conn             |> assign(:user, admin) diff --git a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs index 9cccc8c8a..0c83edb56 100644 --- a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs @@ -108,7 +108,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      [participation2, participation1] = Participation.for_user(other_user)      assert Participation.get(participation2.id).read == false      assert Participation.get(participation1.id).read == false -    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 2 +    assert User.get_cached_by_id(other_user.id).unread_conversation_count == 2      [%{"unread" => false}, %{"unread" => false}] =        conn @@ -119,7 +119,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      [participation2, participation1] = Participation.for_user(other_user)      assert Participation.get(participation2.id).read == true      assert Participation.get(participation1.id).read == true -    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 0 +    assert User.get_cached_by_id(other_user.id).unread_conversation_count == 0    end    describe "POST /api/v1/pleroma/notifications/read" do diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index d33eb1e42..400f3287d 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -213,7 +213,7 @@ defmodule Pleroma.Web.StreamerTest do      test "it sends message if recipients invalid and thread containment is enabled but user's thread containment is disabled" do        Pleroma.Config.put([:instance, :skip_thread_containment], false)        author = insert(:user) -      user = insert(:user, following: [author.ap_id], info: %{skip_thread_containment: true}) +      user = insert(:user, following: [author.ap_id], skip_thread_containment: true)        activity =          insert(:note_activity, diff --git a/test/web/twitter_api/password_controller_test.exs b/test/web/twitter_api/password_controller_test.exs index dc6d4e3e3..840c84a05 100644 --- a/test/web/twitter_api/password_controller_test.exs +++ b/test/web/twitter_api/password_controller_test.exs @@ -59,7 +59,7 @@ defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do      end      test "it sets password_reset_pending to false", %{conn: conn} do -      user = insert(:user, info: %{password_reset_pending: true}) +      user = insert(:user, password_reset_pending: true)        {:ok, token} = PasswordResetToken.create_token(user)        {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{}) @@ -75,7 +75,7 @@ defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do        |> post("/api/pleroma/password_reset", %{data: params})        |> html_response(:ok) -      assert User.get_by_id(user.id).info.password_reset_pending == false +      assert User.get_by_id(user.id).password_reset_pending == false      end    end  end diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index d1d61d11a..85a9be3e0 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -71,7 +71,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do      {:ok, user} = TwitterAPI.register_user(data)      ObanHelpers.perform_all() -    assert user.info.confirmation_pending +    assert user.confirmation_pending      email = Pleroma.Emails.UserEmail.account_confirmation_email(user) diff --git a/test/web/twitter_api/util_controller_test.exs b/test/web/twitter_api/util_controller_test.exs index 9d4cb70f0..246da4da4 100644 --- a/test/web/twitter_api/util_controller_test.exs +++ b/test/web/twitter_api/util_controller_test.exs @@ -164,7 +164,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do                 "follows" => true,                 "non_follows" => true,                 "non_followers" => true -             } == user.info.notification_settings +             } == user.notification_settings      end    end @@ -370,7 +370,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do      end      test "returns error when user is deactivated", %{conn: conn} do -      user = insert(:user, info: %{deactivated: true}) +      user = insert(:user, deactivated: true)        user2 = insert(:user)        response = @@ -568,7 +568,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do        user = User.get_cached_by_id(user.id) -      assert user.info.deactivated == true +      assert user.deactivated == true      end      test "it returns returns when password invalid", %{conn: conn} do @@ -583,7 +583,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do        assert response == %{"error" => "Invalid password."}        user = User.get_cached_by_id(user.id) -      refute user.info.deactivated +      refute user.deactivated      end    end  | 
