Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags-rework

This commit is contained in:
Ivan Tashkinov 2021-01-25 21:24:07 +03:00
commit 694d98be55
180 changed files with 1810 additions and 1307 deletions

View file

@ -63,7 +63,7 @@ defmodule Mix.Tasks.Pleroma.EmailTest do
insert(:user, %{
is_confirmed: false,
confirmation_token: "mytoken",
deactivated: false,
is_active: true,
email: "local1@pleroma.com",
local: true
})
@ -72,7 +72,7 @@ defmodule Mix.Tasks.Pleroma.EmailTest do
insert(:user, %{
is_confirmed: false,
confirmation_token: "mytoken",
deactivated: false,
is_active: true,
email: "local2@pleroma.com",
local: true
})
@ -90,28 +90,28 @@ defmodule Mix.Tasks.Pleroma.EmailTest do
insert(:user, %{
is_confirmed: true,
confirmation_token: "mytoken",
deactivated: false,
is_active: true,
email: "confirmed@pleroma.com",
local: true
})
# remote user
insert(:user, %{
deactivated: false,
is_active: true,
email: "remote@not-pleroma.com",
local: false
})
# deactivated user =
insert(:user, %{
deactivated: true,
is_active: false,
email: "deactivated@pleroma.com",
local: false
})
# invisible user
insert(:user, %{
deactivated: false,
is_active: true,
email: "invisible@pleroma.com",
local: true,
invisible: true

View file

@ -102,7 +102,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert_received {:mix_shell, :info, [message]}
assert message =~ " deleted"
assert %{deactivated: true} = User.get_by_nickname(user.nickname)
assert %{is_active: false} = User.get_by_nickname(user.nickname)
assert called(Pleroma.Web.Federator.publish(:_))
end
@ -140,7 +140,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert_received {:mix_shell, :info, [message]}
assert message =~ " deleted"
assert %{deactivated: true} = User.get_by_nickname(user.nickname)
assert %{is_active: false} = User.get_by_nickname(user.nickname)
assert called(Pleroma.Web.Federator.publish(:_))
refute Pleroma.Repo.get(Pleroma.Activity, like_activity.id)
@ -157,41 +157,8 @@ defmodule Mix.Tasks.Pleroma.UserTest do
end
end
describe "running toggle_activated" do
test "user is deactivated" do
user = insert(:user)
Mix.Tasks.Pleroma.User.run(["toggle_activated", user.nickname])
assert_received {:mix_shell, :info, [message]}
assert message =~ " deactivated"
user = User.get_cached_by_nickname(user.nickname)
assert user.deactivated
end
test "user is activated" do
user = insert(:user, deactivated: true)
Mix.Tasks.Pleroma.User.run(["toggle_activated", user.nickname])
assert_received {:mix_shell, :info, [message]}
assert message =~ " activated"
user = User.get_cached_by_nickname(user.nickname)
refute user.deactivated
end
test "no user to toggle" do
Mix.Tasks.Pleroma.User.run(["toggle_activated", "nonexistent"])
assert_received {:mix_shell, :error, [message]}
assert message =~ "No user"
end
end
describe "running deactivate" do
test "user is unsubscribed" do
test "active user is deactivated and unsubscribed" do
followed = insert(:user)
remote_followed = insert(:user, local: false)
user = insert(:user)
@ -201,16 +168,26 @@ defmodule Mix.Tasks.Pleroma.UserTest do
Mix.Tasks.Pleroma.User.run(["deactivate", user.nickname])
assert_received {:mix_shell, :info, [message]}
assert message =~ "Deactivating"
# Note that the task has delay :timer.sleep(500)
assert_received {:mix_shell, :info, [message]}
assert message =~ "Successfully unsubscribed"
assert message ==
"Successfully deactivated #{user.nickname} and unsubscribed all local followers"
user = User.get_cached_by_nickname(user.nickname)
assert Enum.empty?(Enum.filter(User.get_friends(user), & &1.local))
assert user.deactivated
refute user.is_active
end
test "user is deactivated" do
%{id: id, nickname: nickname} = insert(:user, is_active: false)
assert :ok = Mix.Tasks.Pleroma.User.run(["deactivate", nickname])
assert_received {:mix_shell, :info, [message]}
assert message == "User #{nickname} already deactivated"
user = Repo.get(User, id)
refute user.is_active
end
test "no user to deactivate" do
@ -489,6 +466,37 @@ defmodule Mix.Tasks.Pleroma.UserTest do
end
end
describe "running activate" do
test "user is activated" do
%{id: id, nickname: nickname} = insert(:user, is_active: true)
assert :ok = Mix.Tasks.Pleroma.User.run(["activate", nickname])
assert_received {:mix_shell, :info, [message]}
assert message == "User #{nickname} already activated"
user = Repo.get(User, id)
assert user.is_active
end
test "user is not activated" do
%{id: id, nickname: nickname} = insert(:user, is_active: false)
assert :ok = Mix.Tasks.Pleroma.User.run(["activate", nickname])
assert_received {:mix_shell, :info, [message]}
assert message == "Successfully activated #{nickname}"
user = Repo.get(User, id)
assert user.is_active
end
test "no user to activate" do
Mix.Tasks.Pleroma.User.run(["activate", "foo"])
assert_received {:mix_shell, :error, [message]}
assert message =~ "No user"
end
end
describe "search" do
test "it returns users matching" do
user = insert(:user)

View file

@ -202,11 +202,11 @@ defmodule Pleroma.UserTest do
test "doesn't return follow requests for deactivated accounts" do
locked = insert(:user, is_locked: true)
pending_follower = insert(:user, %{deactivated: true})
pending_follower = insert(:user, %{is_active: false})
CommonAPI.follow(pending_follower, locked)
assert true == pending_follower.deactivated
refute pending_follower.is_active
assert [] = User.get_follow_requests(locked)
end
@ -275,7 +275,7 @@ defmodule Pleroma.UserTest do
test "can't follow a deactivated users" do
user = insert(:user)
followed = insert(:user, %{deactivated: true})
followed = insert(:user, %{is_active: false})
{:error, _} = User.follow(user, followed)
end
@ -1313,14 +1313,14 @@ defmodule Pleroma.UserTest do
end
end
describe ".deactivate" do
describe ".set_activation" do
test "can de-activate then re-activate a user" do
user = insert(:user)
assert false == user.deactivated
{:ok, user} = User.deactivate(user)
assert true == user.deactivated
{:ok, user} = User.deactivate(user, false)
assert false == user.deactivated
assert user.is_active
{:ok, user} = User.set_activation(user, false)
refute user.is_active
{:ok, user} = User.set_activation(user, true)
assert user.is_active
end
test "hide a user from followers" do
@ -1328,7 +1328,7 @@ defmodule Pleroma.UserTest do
user2 = insert(:user)
{:ok, user, user2} = User.follow(user, user2)
{:ok, _user} = User.deactivate(user)
{:ok, _user} = User.set_activation(user, false)
user2 = User.get_cached_by_id(user2.id)
@ -1344,7 +1344,7 @@ defmodule Pleroma.UserTest do
assert user2.following_count == 1
assert User.following_count(user2) == 1
{:ok, _user} = User.deactivate(user)
{:ok, _user} = User.set_activation(user, false)
user2 = User.get_cached_by_id(user2.id)
@ -1374,7 +1374,7 @@ defmodule Pleroma.UserTest do
user: user2
})
{:ok, _user} = User.deactivate(user)
{:ok, _user} = User.set_activation(user, false)
assert [] == ActivityPub.fetch_public_activities(%{})
assert [] == Pleroma.Notification.for_user(user2)
@ -1544,7 +1544,7 @@ defmodule Pleroma.UserTest do
follower = User.get_cached_by_id(follower.id)
refute User.following?(follower, user)
assert %{deactivated: true} = User.get_by_id(user.id)
assert %{is_active: false} = User.get_by_id(user.id)
assert [] == User.get_follow_requests(locked_user)
@ -1606,7 +1606,7 @@ defmodule Pleroma.UserTest do
registration_reason: "ahhhhh",
confirmation_token: "qqqq",
domain_blocks: ["lain.com"],
deactivated: true,
is_active: false,
ap_enabled: true,
is_moderator: true,
is_admin: true,
@ -1648,7 +1648,7 @@ defmodule Pleroma.UserTest do
registration_reason: nil,
confirmation_token: nil,
domain_blocks: [],
deactivated: true,
is_active: false,
ap_enabled: false,
is_moderator: false,
is_admin: false,
@ -1734,7 +1734,7 @@ defmodule Pleroma.UserTest do
end
test "returns :deactivated for deactivated user" do
user = insert(:user, local: true, is_confirmed: true, deactivated: true)
user = insert(:user, local: true, is_confirmed: true, is_active: false)
assert User.account_status(user) == :deactivated
end
@ -1885,7 +1885,7 @@ defmodule Pleroma.UserTest do
users =
Enum.map(1..total, fn _ ->
insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)
insert(:user, last_digest_emailed_at: days_ago(20), is_active: true)
end)
inactive_users_ids =
@ -1903,7 +1903,7 @@ defmodule Pleroma.UserTest do
users =
Enum.map(1..total, fn _ ->
insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)
insert(:user, last_digest_emailed_at: days_ago(20), is_active: true)
end)
{inactive, active} = Enum.split(users, trunc(total / 2))
@ -1936,7 +1936,7 @@ defmodule Pleroma.UserTest do
users =
Enum.map(1..total, fn _ ->
insert(:user, last_digest_emailed_at: days_ago(20), deactivated: false)
insert(:user, last_digest_emailed_at: days_ago(20), is_active: true)
end)
[sender | recipients] = users
@ -2006,7 +2006,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, deactivated: true)
insert(:user, local: false, is_active: false)
{:ok, user1: user1, user2: user2}
end

View file

@ -39,7 +39,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffects.DeleteTest do
{:ok, _delete, _} = SideEffects.handle(delete)
ObanHelpers.perform_all()
assert User.get_cached_by_ap_id(user.ap_id).deactivated
refute User.get_cached_by_ap_id(user.ap_id).is_active
end
end

View file

@ -134,7 +134,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageTest do
ap_id: data["actor"],
local: false,
last_refreshed_at: DateTime.utc_now(),
deactivated: true
is_active: false
)
_recipient = insert(:user, ap_id: List.first(data["to"]), local: true)

View file

@ -97,7 +97,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.DeleteHandlingTest do
{:ok, _} = Transmogrifier.handle_incoming(data)
ObanHelpers.perform_all()
assert User.get_cached_by_ap_id(ap_id).deactivated
refute User.get_cached_by_ap_id(ap_id).is_active
end
test "it fails for incoming user deletes with spoofed origin" do

View file

@ -155,7 +155,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.NoteHandlingTest do
test "it does not work for deactivated users" do
data = File.read!("test/fixtures/mastodon-post-activity.json") |> Jason.decode!()
insert(:user, ap_id: data["actor"], deactivated: true)
insert(:user, ap_id: data["actor"], is_active: false)
assert {:error, _} = Transmogrifier.handle_incoming(data)
end

View file

@ -47,7 +47,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
assert account["id"] == actor.id
assert account["nickname"] == actor.nickname
assert account["deactivated"] == actor.deactivated
assert account["is_active"] == actor.is_active
assert account["is_confirmed"] == actor.is_confirmed
end
end

View file

@ -169,7 +169,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert user.note_count == 1
assert user.follower_count == 1
assert user.following_count == 1
refute user.deactivated
assert user.is_active
with_mock Pleroma.Web.Federator,
publish: fn _ -> nil end,
@ -181,7 +181,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
ObanHelpers.perform_all()
assert User.get_by_nickname(user.nickname).deactivated
refute User.get_by_nickname(user.nickname).is_active
log_entry = Repo.one(ModerationLog)
@ -191,7 +191,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert json_response(conn, 200) == [user.nickname]
user = Repo.get(User, user.id)
assert user.deactivated
refute user.is_active
assert user.avatar == %{}
assert user.banner == %{}
@ -621,7 +621,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
"roles" => %{"admin" => true, "moderator" => false}
}),
user_response(old_admin, %{
"deactivated" => false,
"is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
})
]
@ -694,11 +694,11 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
users =
[
user_response(admin, %{
"deactivated" => false,
"is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
}),
user_response(second_admin, %{
"deactivated" => false,
"is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
})
]
@ -723,7 +723,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
"page_size" => 50,
"users" => [
user_response(moderator, %{
"deactivated" => false,
"is_active" => true,
"roles" => %{"admin" => false, "moderator" => true}
})
]
@ -839,10 +839,10 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
test "it works with multiple filters" do
admin = insert(:user, nickname: "john", is_admin: true)
token = insert(:oauth_admin_token, user: admin)
user = insert(:user, nickname: "bob", local: false, deactivated: true)
user = insert(:user, nickname: "bob", local: false, is_active: false)
insert(:user, nickname: "ken", local: true, deactivated: true)
insert(:user, nickname: "bobb", local: false, deactivated: false)
insert(:user, nickname: "ken", local: true, is_active: false)
insert(:user, nickname: "bobb", local: false, is_active: true)
conn =
build_conn()
@ -873,8 +873,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/activate", %{admin: admin, conn: conn} do
user_one = insert(:user, deactivated: true)
user_two = insert(:user, deactivated: true)
user_one = insert(:user, is_active: false)
user_two = insert(:user, is_active: false)
conn =
patch(
@ -884,7 +884,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
)
response = json_response(conn, 200)
assert Enum.map(response["users"], & &1["deactivated"]) == [false, false]
assert Enum.map(response["users"], & &1["is_active"]) == [true, true]
log_entry = Repo.one(ModerationLog)
@ -893,8 +893,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/deactivate", %{admin: admin, conn: conn} do
user_one = insert(:user, deactivated: false)
user_two = insert(:user, deactivated: false)
user_one = insert(:user, is_active: true)
user_two = insert(:user, is_active: true)
conn =
patch(
@ -904,7 +904,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
)
response = json_response(conn, 200)
assert Enum.map(response["users"], & &1["deactivated"]) == [true, true]
assert Enum.map(response["users"], & &1["is_active"]) == [false, false]
log_entry = Repo.one(ModerationLog)
@ -940,7 +940,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert json_response(conn, 200) ==
user_response(
user,
%{"deactivated" => !user.deactivated}
%{"is_active" => !user.is_active}
)
log_entry = Repo.one(ModerationLog)
@ -951,7 +951,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
defp user_response(user, attrs \\ %{}) do
%{
"deactivated" => user.deactivated,
"is_active" => user.is_active,
"id" => user.id,
"email" => user.email,
"nickname" => user.nickname,

View file

@ -47,9 +47,9 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
end
test "it returns active/deactivated users" do
insert(:user, deactivated: true)
insert(:user, deactivated: true)
insert(:user, deactivated: false)
insert(:user, is_active: false)
insert(:user, is_active: false)
insert(:user, is_active: true)
{: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, deactivated: false)
user = insert(:user, nickname: "bob", local: true, is_active: true)
{:ok, _results, total_count} = Search.user(%{query: ""})

View file

@ -518,7 +518,7 @@ defmodule Pleroma.Web.CommonAPITest do
end
test "deactivated users can't post" do
user = insert(:user, deactivated: true)
user = insert(:user, is_active: false)
assert {:error, _} = CommonAPI.post(user, %{status: "ye"})
end

View file

@ -126,7 +126,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
end
test "returns 404 for deactivated user", %{conn: conn} do
user = insert(:user, deactivated: true)
user = insert(:user, is_active: false)
assert %{"error" => "Can't find user"} =
conn
@ -256,7 +256,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
end
test "deactivated user", %{conn: conn} do
user = insert(:user, deactivated: true)
user = insert(:user, is_active: false)
assert %{"error" => "Can't find user"} ==
conn

View file

@ -136,7 +136,7 @@ defmodule Pleroma.Web.MastodonAPI.AuthControllerTest do
end
test "it returns 204 when user is deactivated", %{conn: conn, user: user} do
{:ok, user} = Repo.update(Ecto.Changeset.change(user, deactivated: true, local: true))
{:ok, user} = Repo.update(Ecto.Changeset.change(user, is_active: false, local: true))
conn = post(conn, "/auth/password?email=#{user.email}")
assert empty_json_response(conn)

View file

@ -57,7 +57,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do
user = insert(:user, %{local: true})
user2 = insert(:user, %{local: true})
{:ok, _user2} = User.deactivate(user2, !user2.deactivated)
{:ok, _user2} = User.set_activation(user2, false)
insert(:user, %{local: false, nickname: "u@peer1.com"})
insert(:user, %{local: false, nickname: "u@peer2.com"})

View file

@ -16,7 +16,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPITest do
describe "follow/3" do
test "returns error when followed user is deactivated" do
follower = insert(:user)
user = insert(:user, local: true, deactivated: true)
user = insert(:user, local: true, is_active: false)
assert {:error, _error} = MastodonAPI.follow(follower, user)
end

View file

@ -211,7 +211,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
test "Represent a deactivated user for an admin" do
admin = insert(:user, is_admin: true)
deactivated_user = insert(:user, deactivated: true)
deactivated_user = insert(:user, is_active: false)
represented = AccountView.render("show.json", %{user: deactivated_user, for: admin})
assert represented[:pleroma][:deactivated] == true
end

View file

@ -9,7 +9,7 @@ defmodule Pleroma.Web.MongooseIMControllerTest do
test "/user_exists", %{conn: conn} do
_user = insert(:user, nickname: "lain")
_remote_user = insert(:user, nickname: "alice", local: false)
_deactivated_user = insert(:user, nickname: "konata", deactivated: true)
_deactivated_user = insert(:user, nickname: "konata", is_active: false)
res =
conn
@ -46,7 +46,7 @@ defmodule Pleroma.Web.MongooseIMControllerTest do
_deactivated_user =
insert(:user,
nickname: "konata",
deactivated: true,
is_active: false,
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt("cool")
)

View file

@ -956,7 +956,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
user =
insert(:user,
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
deactivated: true
is_active: false
)
app = insert(:oauth_app)

View file

@ -33,7 +33,7 @@ defmodule Pleroma.Web.Plugs.UserEnabledPlugTest do
end
test "with a user that is deactivated, it removes that user", %{conn: conn} do
user = insert(:user, deactivated: true)
user = insert(:user, is_active: false)
conn =
conn

View file

@ -141,7 +141,7 @@ defmodule Pleroma.Web.TwitterAPI.RemoteFollowControllerTest do
end
test "returns error when user is deactivated", %{conn: conn} do
user = insert(:user, deactivated: true)
user = insert(:user, is_active: false)
user2 = insert(:user)
response =

View file

@ -164,7 +164,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do
user = User.get_cached_by_id(user.id)
assert user.deactivated == true
refute user.is_active
end
test "with valid permissions and invalid password, it returns an error", %{conn: conn} do
@ -178,7 +178,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do
assert response == %{"error" => "Invalid password."}
user = User.get_cached_by_id(user.id)
refute user.deactivated
assert user.is_active
end
end
@ -428,7 +428,7 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do
assert json_response(conn, 200) == %{"status" => "success"}
user = User.get_by_id(user.id)
assert user.deactivated == true
refute user.is_active
assert user.name == nil
assert user.bio == ""
assert user.password_hash == nil