Merge remote-tracking branch 'remotes/origin/develop' into auth-improvements
This commit is contained in:
commit
a010c5b16a
24 changed files with 5273 additions and 1086 deletions
|
|
@ -36,7 +36,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
|
|||
unsaved = build(:user)
|
||||
|
||||
# prepare to answer yes
|
||||
send(self(), {:mix_shell_input, :yes?, true})
|
||||
send(self(), {:mix_shell_input, :prompt, "Y"})
|
||||
|
||||
Mix.Tasks.Pleroma.User.run([
|
||||
"new",
|
||||
|
|
@ -55,7 +55,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
|
|||
assert_received {:mix_shell, :info, [message]}
|
||||
assert message =~ "user will be created"
|
||||
|
||||
assert_received {:mix_shell, :yes?, [message]}
|
||||
assert_received {:mix_shell, :prompt, [message]}
|
||||
assert message =~ "Continue"
|
||||
|
||||
assert_received {:mix_shell, :info, [message]}
|
||||
|
|
@ -73,14 +73,14 @@ defmodule Mix.Tasks.Pleroma.UserTest do
|
|||
unsaved = build(:user)
|
||||
|
||||
# prepare to answer no
|
||||
send(self(), {:mix_shell_input, :yes?, false})
|
||||
send(self(), {:mix_shell_input, :prompt, "N"})
|
||||
|
||||
Mix.Tasks.Pleroma.User.run(["new", unsaved.nickname, unsaved.email])
|
||||
|
||||
assert_received {:mix_shell, :info, [message]}
|
||||
assert message =~ "user will be created"
|
||||
|
||||
assert_received {:mix_shell, :yes?, [message]}
|
||||
assert_received {:mix_shell, :prompt, [message]}
|
||||
assert message =~ "Continue"
|
||||
|
||||
assert_received {:mix_shell, :info, [message]}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ defmodule Pleroma.Activity.SearchTest do
|
|||
test "using plainto_tsquery on postgres < 11" do
|
||||
old_version = :persistent_term.get({Pleroma.Repo, :postgres_version})
|
||||
:persistent_term.put({Pleroma.Repo, :postgres_version}, 10.0)
|
||||
on_exit(fn -> :persistent_term.put({Pleroma.Repo, :postgres_version}, old_version) end)
|
||||
|
||||
user = insert(:user)
|
||||
{:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"})
|
||||
|
|
@ -30,8 +31,6 @@ defmodule Pleroma.Activity.SearchTest do
|
|||
assert [result] = Search.search(nil, "wednesday -dudes")
|
||||
|
||||
assert result.id == post.id
|
||||
|
||||
:persistent_term.put({Pleroma.Repo, :postgres_version}, old_version)
|
||||
end
|
||||
|
||||
test "using websearch_to_tsquery" do
|
||||
|
|
|
|||
|
|
@ -197,6 +197,13 @@ defmodule Pleroma.ActivityTest do
|
|||
assert [%{id: ^id1, object: %Object{}}, %{id: ^id2, object: %Object{}}] = activities
|
||||
end
|
||||
|
||||
test "get_by_id_with_user_actor/1" do
|
||||
user = insert(:user)
|
||||
activity = insert(:note_activity, note: insert(:note, user: user))
|
||||
|
||||
assert Activity.get_by_id_with_user_actor(activity.id).user_actor == user
|
||||
end
|
||||
|
||||
test "get_by_id_with_object/1" do
|
||||
%{id: id} = insert(:note_activity)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,22 @@ defmodule Pleroma.EmojiTest do
|
|||
describe "is_unicode_emoji?/1" do
|
||||
test "tells if a string is an unicode emoji" do
|
||||
refute Emoji.is_unicode_emoji?("X")
|
||||
assert Emoji.is_unicode_emoji?("☂")
|
||||
refute Emoji.is_unicode_emoji?("ね")
|
||||
|
||||
# Only accept fully-qualified (RGI) emoji
|
||||
# See http://www.unicode.org/reports/tr51/
|
||||
refute Emoji.is_unicode_emoji?("❤")
|
||||
refute Emoji.is_unicode_emoji?("☂")
|
||||
|
||||
assert Emoji.is_unicode_emoji?("🥺")
|
||||
assert Emoji.is_unicode_emoji?("🤰")
|
||||
assert Emoji.is_unicode_emoji?("❤️")
|
||||
assert Emoji.is_unicode_emoji?("🏳️⚧️")
|
||||
|
||||
# Additionally, we accept regional indicators.
|
||||
assert Emoji.is_unicode_emoji?("🇵")
|
||||
assert Emoji.is_unicode_emoji?("🇴")
|
||||
assert Emoji.is_unicode_emoji?("🇬")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -241,16 +241,14 @@ defmodule Pleroma.FormatterTest do
|
|||
"@@gsimg According to @archaeme, that is @daggsy. Also hello @archaeme@archae.me and @o and @@@jimm"
|
||||
|
||||
o = insert(:user, %{nickname: "o"})
|
||||
jimm = insert(:user, %{nickname: "jimm"})
|
||||
gsimg = insert(:user, %{nickname: "gsimg"})
|
||||
_jimm = insert(:user, %{nickname: "jimm"})
|
||||
_gsimg = insert(:user, %{nickname: "gsimg"})
|
||||
archaeme = insert(:user, %{nickname: "archaeme"})
|
||||
archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"})
|
||||
|
||||
expected_mentions = [
|
||||
{"@archaeme", archaeme},
|
||||
{"@archaeme@archae.me", archaeme_remote},
|
||||
{"@gsimg", gsimg},
|
||||
{"@jimm", jimm},
|
||||
{"@o", o}
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -182,11 +182,14 @@ defmodule Pleroma.ModerationLogTest do
|
|||
end
|
||||
|
||||
test "logging report update", %{moderator: moderator} do
|
||||
user = insert(:user)
|
||||
|
||||
report = %Activity{
|
||||
id: "9m9I1F4p8ftrTP6QTI",
|
||||
data: %{
|
||||
"type" => "Flag",
|
||||
"state" => "resolved"
|
||||
"state" => "resolved",
|
||||
"actor" => user.ap_id
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -194,35 +197,48 @@ defmodule Pleroma.ModerationLogTest do
|
|||
ModerationLog.insert_log(%{
|
||||
actor: moderator,
|
||||
action: "report_update",
|
||||
subject: report
|
||||
subject: report,
|
||||
subject_actor: user
|
||||
})
|
||||
|
||||
log = Repo.one(ModerationLog)
|
||||
|
||||
assert log.data["message"] ==
|
||||
"@#{moderator.nickname} updated report ##{report.id} with 'resolved' state"
|
||||
"@#{moderator.nickname} updated report ##{report.id} (on user @#{user.nickname}) with 'resolved' state"
|
||||
end
|
||||
|
||||
test "logging report response", %{moderator: moderator} do
|
||||
user = insert(:user)
|
||||
|
||||
report = %Activity{
|
||||
id: "9m9I1F4p8ftrTP6QTI",
|
||||
data: %{
|
||||
"type" => "Note"
|
||||
"type" => "Note",
|
||||
"actor" => user.ap_id
|
||||
}
|
||||
}
|
||||
|
||||
{:ok, _} =
|
||||
ModerationLog.insert_log(%{
|
||||
actor: moderator,
|
||||
action: "report_note",
|
||||
subject: report,
|
||||
text: "look at this"
|
||||
})
|
||||
attrs = %{
|
||||
actor: moderator,
|
||||
action: "report_note",
|
||||
subject: report,
|
||||
text: "look at this"
|
||||
}
|
||||
|
||||
log = Repo.one(ModerationLog)
|
||||
{:ok, log1} = ModerationLog.insert_log(attrs)
|
||||
log = Repo.get(ModerationLog, log1.id)
|
||||
|
||||
assert log.data["message"] ==
|
||||
"@#{moderator.nickname} added note 'look at this' to report ##{report.id}"
|
||||
|
||||
{:ok, log2} = ModerationLog.insert_log(Map.merge(attrs, %{subject_actor: user}))
|
||||
|
||||
log = Repo.get(ModerationLog, log2.id)
|
||||
|
||||
assert log.data["message"] ==
|
||||
"@#{moderator.nickname} added note 'look at this' to report ##{report.id} on user @#{
|
||||
user.nickname
|
||||
}"
|
||||
end
|
||||
|
||||
test "logging status sensitivity update", %{moderator: moderator} do
|
||||
|
|
|
|||
|
|
@ -895,6 +895,13 @@ defmodule Pleroma.UserTest do
|
|||
refute cs.valid?
|
||||
end)
|
||||
end
|
||||
|
||||
test "it is invalid given a local user" do
|
||||
user = insert(:user)
|
||||
cs = User.remote_user_changeset(user, %{name: "tom from myspace"})
|
||||
|
||||
refute cs.valid?
|
||||
end
|
||||
end
|
||||
|
||||
describe "followers and friends" do
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
|
|||
|
||||
describe "update users" do
|
||||
setup do
|
||||
user = insert(:user)
|
||||
user = insert(:user, local: false)
|
||||
{:ok, update_data, []} = Builder.update(user, %{"id" => user.ap_id, "name" => "new name!"})
|
||||
{:ok, update, _meta} = ActivityPub.persist(update_data, local: true)
|
||||
|
||||
|
|
|
|||
|
|
@ -122,13 +122,13 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
|
|||
})
|
||||
|> json_response_and_validate_schema(:no_content)
|
||||
|
||||
activity = Activity.get_by_id(id)
|
||||
activity = Activity.get_by_id_with_user_actor(id)
|
||||
assert activity.data["state"] == "resolved"
|
||||
|
||||
log_entry = Repo.one(ModerationLog)
|
||||
|
||||
assert ModerationLog.get_log_entry_message(log_entry) ==
|
||||
"@#{admin.nickname} updated report ##{id} with 'resolved' state"
|
||||
"@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'resolved' state"
|
||||
end
|
||||
|
||||
test "closes report", %{conn: conn, id: id, admin: admin} do
|
||||
|
|
@ -141,13 +141,13 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
|
|||
})
|
||||
|> json_response_and_validate_schema(:no_content)
|
||||
|
||||
activity = Activity.get_by_id(id)
|
||||
activity = Activity.get_by_id_with_user_actor(id)
|
||||
assert activity.data["state"] == "closed"
|
||||
|
||||
log_entry = Repo.one(ModerationLog)
|
||||
|
||||
assert ModerationLog.get_log_entry_message(log_entry) ==
|
||||
"@#{admin.nickname} updated report ##{id} with 'closed' state"
|
||||
"@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'closed' state"
|
||||
end
|
||||
|
||||
test "returns 400 when state is unknown", %{conn: conn, id: id} do
|
||||
|
|
@ -193,18 +193,20 @@ defmodule Pleroma.Web.AdminAPI.ReportControllerTest do
|
|||
})
|
||||
|> json_response_and_validate_schema(:no_content)
|
||||
|
||||
activity = Activity.get_by_id(id)
|
||||
second_activity = Activity.get_by_id(second_report_id)
|
||||
activity = Activity.get_by_id_with_user_actor(id)
|
||||
second_activity = Activity.get_by_id_with_user_actor(second_report_id)
|
||||
assert activity.data["state"] == "resolved"
|
||||
assert second_activity.data["state"] == "closed"
|
||||
|
||||
[first_log_entry, second_log_entry] = Repo.all(ModerationLog)
|
||||
|
||||
assert ModerationLog.get_log_entry_message(first_log_entry) ==
|
||||
"@#{admin.nickname} updated report ##{id} with 'resolved' state"
|
||||
"@#{admin.nickname} updated report ##{id} (on user @#{activity.user_actor.nickname}) with 'resolved' state"
|
||||
|
||||
assert ModerationLog.get_log_entry_message(second_log_entry) ==
|
||||
"@#{admin.nickname} updated report ##{second_report_id} with 'closed' state"
|
||||
"@#{admin.nickname} updated report ##{second_report_id} (on user @#{
|
||||
second_activity.user_actor.nickname
|
||||
}) with 'closed' state"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
# Pleroma: A lightweight social networking server
|
||||
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
defmodule Pleroma.Web.AdminAPI.ModerationLogViewTest do
|
||||
use Pleroma.DataCase
|
||||
|
||||
alias Pleroma.Web.AdminAPI.ModerationLogView
|
||||
|
||||
describe "renders `report_note_delete` log messages" do
|
||||
setup do
|
||||
log1 = %Pleroma.ModerationLog{
|
||||
data: %{
|
||||
"action" => "report_note_delete",
|
||||
"actor" => %{"id" => "A1I7G8", "nickname" => "admin", "type" => "user"},
|
||||
"message" => "@admin deleted note 'mistake' from report #A1I7be on user @b-612",
|
||||
"subject" => %{"id" => "A1I7be", "state" => "open", "type" => "report"},
|
||||
"subject_actor" => %{"id" => "A1I7G8", "nickname" => "b-612", "type" => "user"},
|
||||
"text" => "mistake"
|
||||
},
|
||||
inserted_at: ~N[2020-11-17 14:13:20]
|
||||
}
|
||||
|
||||
log2 = %Pleroma.ModerationLog{
|
||||
data: %{
|
||||
"action" => "report_note_delete",
|
||||
"actor" => %{"id" => "A1I7G8", "nickname" => "admin", "type" => "user"},
|
||||
"message" => "@admin deleted note 'fake user' from report #A1I7be on user @j-612",
|
||||
"subject" => %{"id" => "A1I7be", "state" => "open", "type" => "report"},
|
||||
"subject_actor" => %{"id" => "A1I7G8", "nickname" => "j-612", "type" => "user"},
|
||||
"text" => "fake user"
|
||||
},
|
||||
inserted_at: ~N[2020-11-17 14:13:20]
|
||||
}
|
||||
|
||||
{:ok, %{log1: log1, log2: log2}}
|
||||
end
|
||||
|
||||
test "renders `report_note_delete` log messages", %{log1: log1, log2: log2} do
|
||||
assert ModerationLogView.render(
|
||||
"index.json",
|
||||
%{log: %{items: [log1, log2], count: 2}}
|
||||
) == %{
|
||||
items: [
|
||||
%{
|
||||
data: %{
|
||||
"action" => "report_note_delete",
|
||||
"actor" => %{"id" => "A1I7G8", "nickname" => "admin", "type" => "user"},
|
||||
"message" =>
|
||||
"@admin deleted note 'mistake' from report #A1I7be on user @b-612",
|
||||
"subject" => %{"id" => "A1I7be", "state" => "open", "type" => "report"},
|
||||
"subject_actor" => %{
|
||||
"id" => "A1I7G8",
|
||||
"nickname" => "b-612",
|
||||
"type" => "user"
|
||||
},
|
||||
"text" => "mistake"
|
||||
},
|
||||
message: "@admin deleted note 'mistake' from report #A1I7be on user @b-612",
|
||||
time: 1_605_622_400
|
||||
},
|
||||
%{
|
||||
data: %{
|
||||
"action" => "report_note_delete",
|
||||
"actor" => %{"id" => "A1I7G8", "nickname" => "admin", "type" => "user"},
|
||||
"message" =>
|
||||
"@admin deleted note 'fake user' from report #A1I7be on user @j-612",
|
||||
"subject" => %{"id" => "A1I7be", "state" => "open", "type" => "report"},
|
||||
"subject_actor" => %{
|
||||
"id" => "A1I7G8",
|
||||
"nickname" => "j-612",
|
||||
"type" => "user"
|
||||
},
|
||||
"text" => "fake user"
|
||||
},
|
||||
message: "@admin deleted note 'fake user' from report #A1I7be on user @j-612",
|
||||
time: 1_605_622_400
|
||||
}
|
||||
],
|
||||
total: 2
|
||||
}
|
||||
end
|
||||
|
||||
test "renders `report_note_delete` log message", %{log1: log} do
|
||||
assert ModerationLogView.render("show.json", %{log_entry: log}) == %{
|
||||
data: %{
|
||||
"action" => "report_note_delete",
|
||||
"actor" => %{"id" => "A1I7G8", "nickname" => "admin", "type" => "user"},
|
||||
"message" => "@admin deleted note 'mistake' from report #A1I7be on user @b-612",
|
||||
"subject" => %{"id" => "A1I7be", "state" => "open", "type" => "report"},
|
||||
"subject_actor" => %{"id" => "A1I7G8", "nickname" => "b-612", "type" => "user"},
|
||||
"text" => "mistake"
|
||||
},
|
||||
message: "@admin deleted note 'mistake' from report #A1I7be on user @b-612",
|
||||
time: 1_605_622_400
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -281,6 +281,7 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do
|
|||
test "search fetches remote statuses and prefers them over other results", %{conn: conn} do
|
||||
old_version = :persistent_term.get({Pleroma.Repo, :postgres_version})
|
||||
:persistent_term.put({Pleroma.Repo, :postgres_version}, 10.0)
|
||||
on_exit(fn -> :persistent_term.put({Pleroma.Repo, :postgres_version}, old_version) end)
|
||||
|
||||
capture_log(fn ->
|
||||
{:ok, %{id: activity_id}} =
|
||||
|
|
@ -298,8 +299,6 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do
|
|||
%{"id" => ^activity_id}
|
||||
] = results["statuses"]
|
||||
end)
|
||||
|
||||
:persistent_term.put({Pleroma.Repo, :postgres_version}, old_version)
|
||||
end
|
||||
|
||||
test "search doesn't show statuses that it shouldn't", %{conn: conn} do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue