Merge branch 'develop' into '2435-list-multiple-users'

# Conflicts:
#   CHANGELOG.md
This commit is contained in:
lain 2021-01-26 14:24:32 +00:00
commit 229acae6c3
281 changed files with 3374 additions and 1782 deletions

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

@ -159,20 +159,12 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
describe "delete users with confirmation pending" do
setup do
user = insert(:user, confirmation_pending: true)
user = insert(:user, is_confirmed: false)
{:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id)
{:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true)
{:ok, delete: delete_user, user: user}
end
test "when activation is not required", %{delete: delete, user: user} do
clear_config([:instance, :account_activation_required], false)
{:ok, _, _} = SideEffects.handle(delete)
ObanHelpers.perform_all()
assert User.get_cached_by_id(user.id).deactivated
end
test "when activation is required", %{delete: delete, user: user} do
clear_config([:instance, :account_activation_required], true)
{:ok, _, _} = SideEffects.handle(delete)

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

@ -154,7 +154,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

@ -891,10 +891,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
describe "PATCH /confirm_email" do
test "it confirms emails of two users", %{conn: conn, admin: admin} do
[first_user, second_user] = insert_pair(:user, confirmation_pending: true)
[first_user, second_user] = insert_pair(:user, is_confirmed: false)
assert first_user.confirmation_pending == true
assert second_user.confirmation_pending == true
refute first_user.is_confirmed
refute second_user.is_confirmed
ret_conn =
patch(conn, "/api/pleroma/admin/users/confirm_email", %{
@ -906,8 +906,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
assert ret_conn.status == 200
assert first_user.confirmation_pending == true
assert second_user.confirmation_pending == true
first_user = User.get_by_id(first_user.id)
second_user = User.get_by_id(second_user.id)
assert first_user.is_confirmed
assert second_user.is_confirmed
log_entry = Repo.one(ModerationLog)
@ -920,7 +923,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
describe "PATCH /resend_confirmation_email" do
test "it resend emails for two users", %{conn: conn, admin: admin} do
[first_user, second_user] = insert_pair(:user, confirmation_pending: true)
[first_user, second_user] = insert_pair(:user, is_confirmed: false)
ret_conn =
patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{

View file

@ -47,8 +47,8 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
assert account["id"] == actor.id
assert account["nickname"] == actor.nickname
assert account["deactivated"] == actor.deactivated
assert account["confirmation_pending"] == actor.confirmation_pending
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 == %{}
@ -429,7 +429,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
describe "GET /api/pleroma/admin/users" do
test "renders users array for the first page", %{conn: conn, admin: admin} do
user = insert(:user, local: false, tags: ["foo", "bar"])
user2 = insert(:user, approval_pending: true, registration_reason: "I'm a chill dude")
user2 = insert(:user, is_approved: false, registration_reason: "I'm a chill dude")
conn = get(conn, "/api/pleroma/admin/users?page=1")
@ -444,7 +444,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
user2,
%{
"local" => true,
"approval_pending" => true,
"is_approved" => false,
"registration_reason" => "I'm a chill dude",
"actor_type" => "Person"
}
@ -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}
})
]
@ -635,11 +635,11 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "only unconfirmed users", %{conn: conn} do
sad_user = insert(:user, nickname: "sadboy", confirmation_pending: true)
old_user = insert(:user, nickname: "oldboy", confirmation_pending: true)
sad_user = insert(:user, nickname: "sadboy", is_confirmed: false)
old_user = insert(:user, nickname: "oldboy", is_confirmed: false)
insert(:user, nickname: "happyboy", approval_pending: false)
insert(:user, confirmation_pending: false)
insert(:user, nickname: "happyboy", is_approved: true)
insert(:user, is_confirmed: true)
result =
conn
@ -649,8 +649,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
users =
Enum.map([old_user, sad_user], fn user ->
user_response(user, %{
"confirmation_pending" => true,
"approval_pending" => false
"is_confirmed" => false,
"is_approved" => true
})
end)
|> Enum.sort_by(& &1["nickname"])
@ -662,18 +662,18 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
user =
insert(:user,
nickname: "sadboy",
approval_pending: true,
is_approved: false,
registration_reason: "Plz let me in!"
)
insert(:user, nickname: "happyboy", approval_pending: false)
insert(:user, nickname: "happyboy", is_approved: true)
conn = get(conn, "/api/pleroma/admin/users?filters=need_approval")
users = [
user_response(
user,
%{"approval_pending" => true, "registration_reason" => "Plz let me in!"}
%{"is_approved" => false, "registration_reason" => "Plz let me in!"}
)
]
@ -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}
})
]
@ -816,8 +816,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "`active` filters out users pending approval", %{token: token} do
insert(:user, approval_pending: true)
%{id: user_id} = insert(:user, approval_pending: false)
insert(:user, is_approved: false)
%{id: user_id} = insert(:user, is_approved: true)
%{id: admin_id} = token.user
conn =
@ -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)
@ -913,8 +913,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/approve", %{admin: admin, conn: conn} do
user_one = insert(:user, approval_pending: true)
user_two = insert(:user, approval_pending: true)
user_one = insert(:user, is_approved: false)
user_two = insert(:user, is_approved: false)
conn =
patch(
@ -924,7 +924,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
)
response = json_response(conn, 200)
assert Enum.map(response["users"], & &1["approval_pending"]) == [false, false]
assert Enum.map(response["users"], & &1["is_approved"]) == [true, true]
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,
@ -960,8 +960,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
"tags" => [],
"avatar" => User.avatar_url(user) |> MediaProxy.url(),
"display_name" => HTML.strip_tags(user.name || user.nickname),
"confirmation_pending" => false,
"approval_pending" => false,
"is_confirmed" => true,
"is_approved" => true,
"url" => user.ap_id,
"registration_reason" => nil,
"actor_type" => "Person"

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: ""})
@ -182,7 +182,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
end
test "it returns unapproved user" do
unapproved = insert(:user, approval_pending: true)
unapproved = insert(:user, is_approved: false)
insert(:user)
insert(:user)
@ -193,7 +193,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
end
test "it returns unconfirmed user" do
unconfirmed = insert(:user, confirmation_pending: true)
unconfirmed = insert(:user, is_confirmed: false)
insert(:user)
insert(:user)

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
@ -744,6 +744,22 @@ defmodule Pleroma.Web.CommonAPITest do
refute Visibility.visible_for_user?(announce_activity, nil)
end
test "author can repeat own private statuses" do
author = insert(:user)
follower = insert(:user)
CommonAPI.follow(follower, author)
{:ok, activity} = CommonAPI.post(author, %{status: "cofe", visibility: "private"})
{:ok, %Activity{} = announce_activity} = CommonAPI.repeat(activity.id, author)
assert Visibility.is_private?(announce_activity)
refute Visibility.visible_for_user?(announce_activity, nil)
assert Visibility.visible_for_user?(activity, follower)
assert {:error, :not_found} = CommonAPI.repeat(activity.id, follower)
end
test "favoriting a status" do
user = insert(:user)
other_user = insert(:user)

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
@ -1027,8 +1027,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
user = Repo.preload(token_from_db, :user).user
assert user
refute user.confirmation_pending
refute user.approval_pending
assert user.is_confirmed
assert user.is_approved
end
test "registers but does not log in with :account_activation_required", %{conn: conn} do
@ -1088,7 +1088,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
refute response["token_type"]
user = Repo.get_by(User, email: "lain@example.org")
assert user.confirmation_pending
refute user.is_confirmed
end
test "registers but does not log in with :account_approval_required", %{conn: conn} do
@ -1150,7 +1150,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
user = Repo.get_by(User, email: "lain@example.org")
assert user.approval_pending
refute user.is_approved
assert user.registration_reason == "I'm a cool dude, bro"
end

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

@ -47,6 +47,78 @@ defmodule Pleroma.Web.MastodonAPI.PollControllerTest do
end
end
test "own_votes" do
%{conn: conn} = oauth_access(["write:statuses", "read:statuses"])
other_user = insert(:user)
{:ok, activity} =
CommonAPI.post(other_user, %{
status: "A very delicious sandwich",
poll: %{
options: ["Lettuce", "Grilled Bacon", "Tomato"],
expires_in: 20,
multiple: true
}
})
object = Object.normalize(activity, fetch: false)
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 2]})
|> json_response_and_validate_schema(200)
object = Object.get_by_id(object.id)
assert [
%{
"name" => "Lettuce",
"replies" => %{"totalItems" => 1, "type" => "Collection"},
"type" => "Note"
},
%{
"name" => "Grilled Bacon",
"replies" => %{"totalItems" => 0, "type" => "Collection"},
"type" => "Note"
},
%{
"name" => "Tomato",
"replies" => %{"totalItems" => 1, "type" => "Collection"},
"type" => "Note"
}
] == object.data["anyOf"]
assert %{"replies" => %{"totalItems" => 0}} =
Enum.find(object.data["anyOf"], fn %{"name" => name} -> name == "Grilled Bacon" end)
Enum.each(["Lettuce", "Tomato"], fn title ->
%{"replies" => %{"totalItems" => total_items}} =
Enum.find(object.data["anyOf"], fn %{"name" => name} -> name == title end)
assert total_items == 1
end)
assert %{
"own_votes" => own_votes,
"voted" => true
} =
conn
|> get("/api/v1/polls/#{object.id}")
|> json_response_and_validate_schema(200)
assert 0 in own_votes
assert 2 in own_votes
# for non authenticated user
response =
build_conn()
|> get("/api/v1/polls/#{object.id}")
|> json_response_and_validate_schema(200)
refute Map.has_key?(response, "own_votes")
refute Map.has_key?(response, "voted")
end
describe "POST /api/v1/polls/:id/votes" do
setup do: oauth_access(["write:statuses"])
@ -65,12 +137,11 @@ defmodule Pleroma.Web.MastodonAPI.PollControllerTest do
object = Object.normalize(activity, fetch: false)
conn =
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 1, 2]})
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/polls/#{object.id}/votes", %{"choices" => [0, 1, 2]})
|> json_response_and_validate_schema(200)
assert json_response_and_validate_schema(conn, 200)
object = Object.get_by_id(object.id)
assert Enum.all?(object.data["anyOf"], fn %{"replies" => %{"totalItems" => total_items}} ->

View file

@ -954,6 +954,23 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
assert to_string(activity.id) == id
end
test "author can reblog own private status", %{conn: conn, user: user} do
{:ok, activity} = CommonAPI.post(user, %{status: "cofe", visibility: "private"})
conn =
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/statuses/#{activity.id}/reblog")
assert %{
"reblog" => %{"id" => id, "reblogged" => true, "reblogs_count" => 1},
"reblogged" => true,
"visibility" => "private"
} = json_response_and_validate_schema(conn, 200)
assert to_string(activity.id) == id
end
end
describe "unreblogging" do

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

@ -79,7 +79,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
also_known_as: ["https://shitposter.zone/users/shp"],
background_image: "https://example.com/images/asuka_hospital.png",
favicon: nil,
confirmation_pending: false,
is_confirmed: true,
tags: [],
is_admin: false,
is_moderator: false,
@ -178,7 +178,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
also_known_as: [],
background_image: nil,
favicon: nil,
confirmation_pending: false,
is_confirmed: true,
tags: [],
is_admin: false,
is_moderator: false,
@ -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

@ -42,7 +42,6 @@ defmodule Pleroma.Web.MastodonAPI.PollViewTest do
%{title: "yes", votes_count: 0},
%{title: "why are you even asking?", votes_count: 0}
],
voted: false,
votes_count: 0,
voters_count: 0
}
@ -124,6 +123,8 @@ defmodule Pleroma.Web.MastodonAPI.PollViewTest do
result = PollView.render("show.json", %{object: object, for: other_user})
assert result[:voted] == true
assert 1 in result[:own_votes]
assert 2 in result[:own_votes]
assert Enum.at(result[:options], 1)[:votes_count] == 1
assert Enum.at(result[:options], 2)[:votes_count] == 1
end

View file

@ -263,7 +263,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
tags: [
%{
name: "#{object_data["tag"]}",
url: "/tag/#{object_data["tag"]}"
url: "http://localhost:4001/tag/#{object_data["tag"]}"
}
],
application: %{
@ -585,9 +585,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
]
assert StatusView.build_tags(object_tags) == [
%{name: "fediverse", url: "/tag/fediverse"},
%{name: "mastodon", url: "/tag/mastodon"},
%{name: "nextcloud", url: "/tag/nextcloud"}
%{name: "fediverse", url: "http://localhost:4001/tag/fediverse"},
%{name: "mastodon", url: "http://localhost:4001/tag/mastodon"},
%{name: "nextcloud", url: "http://localhost:4001/tag/nextcloud"}
]
end
end

View file

@ -8,7 +8,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do
import ExUnit.CaptureLog
test "it logger error when script not found" do
test "it logs error when script is not found" do
assert capture_log(fn ->
assert Invalidation.Script.purge(
["http://example.com/media/example.jpg"],
@ -23,4 +23,30 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.ScriptTest do
) == {:error, "\"not found script path\""}
end)
end
describe "url formatting" do
setup do
urls = [
"https://bikeshed.party/media/foo.png",
"http://safe.millennial.space/proxy/wheeeee.gif",
"https://lain.com/proxy/mediafile.mp4?foo&bar=true",
"http://localhost:4000/media/upload.jpeg"
]
[urls: urls]
end
test "with invalid formatter", %{urls: urls} do
assert urls == Invalidation.Script.maybe_format_urls(urls, nil)
end
test "with :htcacheclean formatter", %{urls: urls} do
assert [
"https://bikeshed.party:443/media/foo.png?",
"http://safe.millennial.space:80/proxy/wheeeee.gif?",
"https://lain.com:443/proxy/mediafile.mp4?foo&bar=true",
"http://localhost:4000/media/upload.jpeg?"
] == Invalidation.Script.maybe_format_urls(urls, :htcacheclean)
end
end
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

@ -928,7 +928,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
{:ok, user} =
insert(:user, password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password))
|> User.confirmation_changeset(need_confirmation: true)
|> User.confirmation_changeset(set_confirmation: false)
|> User.update_and_set_cache()
refute Pleroma.User.account_status(user) == :active
@ -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)
@ -1013,7 +1013,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
user =
insert(:user,
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
confirmation_pending: true
is_confirmed: false
)
app = insert(:oauth_app, scopes: ["read", "write"])
@ -1041,7 +1041,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
user =
insert(:user,
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
approval_pending: true
is_approved: false
)
refute Pleroma.User.account_status(user) == :active

View file

@ -17,10 +17,10 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do
setup do
{:ok, user} =
insert(:user)
|> User.confirmation_changeset(need_confirmation: true)
|> User.confirmation_changeset(set_confirmation: false)
|> User.update_and_set_cache()
assert user.confirmation_pending
refute user.is_confirmed
[user: user]
end

View file

@ -22,7 +22,7 @@ defmodule Pleroma.Web.Plugs.UserEnabledPlugTest do
%{conn: conn} do
Pleroma.Config.put([:instance, :account_activation_required], true)
user = insert(:user, confirmation_pending: true)
user = insert(:user, is_confirmed: false)
conn =
conn
@ -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

@ -64,10 +64,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
setup do
{:ok, user} =
insert(:user)
|> User.confirmation_changeset(need_confirmation: true)
|> User.confirmation_changeset(set_confirmation: false)
|> Repo.update()
assert user.confirmation_pending
refute user.is_confirmed
[user: user]
end
@ -83,7 +83,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
user = User.get_cached_by_id(user.id)
refute user.confirmation_pending
assert user.is_confirmed
refute user.confirmation_token
end

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

@ -65,7 +65,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
{:ok, user} = TwitterAPI.register_user(data)
ObanHelpers.perform_all()
assert user.confirmation_pending
refute user.is_confirmed
email = Pleroma.Emails.UserEmail.account_confirmation_email(user)
@ -97,7 +97,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
{:ok, user} = TwitterAPI.register_user(data)
ObanHelpers.perform_all()
assert user.approval_pending
refute user.is_approved
user_email = Pleroma.Emails.UserEmail.approval_pending_email(user)
admin_email = Pleroma.Emails.AdminEmail.new_unapproved_registration(admin, user)

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