Improve Federation boundaries
This commit is contained in:
@@ -14,6 +14,8 @@ defmodule Mobilizon.ActorsTest do
|
||||
|
||||
alias Mobilizon.Federation.ActivityPub
|
||||
|
||||
alias MobilizonWeb.Upload.Uploader
|
||||
|
||||
describe "actors" do
|
||||
@valid_attrs %{
|
||||
summary: "some description",
|
||||
@@ -241,12 +243,12 @@ defmodule Mobilizon.ActorsTest do
|
||||
%URI{path: "/media/" <> banner_path} = URI.parse(banner_url)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
|
||||
@@ -271,12 +273,12 @@ defmodule Mobilizon.ActorsTest do
|
||||
refute actor.suspended
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
end
|
||||
@@ -300,12 +302,12 @@ defmodule Mobilizon.ActorsTest do
|
||||
%URI{path: "/media/" <> banner_path} = URI.parse(banner_url)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
|
||||
@@ -334,12 +336,12 @@ defmodule Mobilizon.ActorsTest do
|
||||
assert %Tombstone{} = Tombstone.find_tombstone(comment1_url)
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> avatar_path
|
||||
)
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> banner_path
|
||||
)
|
||||
end
|
||||
|
||||
@@ -6,8 +6,8 @@ defmodule Mobilizon.Service.Admin.ActionLogTest do
|
||||
use Mobilizon.DataCase
|
||||
|
||||
import Mobilizon.Factory
|
||||
import Mobilizon.Service.Admin.ActionLog
|
||||
|
||||
alias Mobilizon.Admin
|
||||
alias Mobilizon.Admin.ActionLog
|
||||
alias Mobilizon.Reports.{Note, Report}
|
||||
|
||||
@@ -27,7 +27,7 @@ defmodule Mobilizon.Service.Admin.ActionLogTest do
|
||||
target_id: report_id,
|
||||
action: :update,
|
||||
actor: moderator
|
||||
}} = log_action(moderator, "update", report)
|
||||
}} = Admin.log_action(moderator, "update", report)
|
||||
end
|
||||
|
||||
test "log the creation of a report note", %{moderator: moderator} do
|
||||
@@ -40,7 +40,7 @@ defmodule Mobilizon.Service.Admin.ActionLogTest do
|
||||
target_id: note_id,
|
||||
action: :create,
|
||||
actor: moderator
|
||||
}} = log_action(moderator, "create", report)
|
||||
}} = Admin.log_action(moderator, "create", report)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -5,6 +5,8 @@ defmodule Mobilizon.MediaTest do
|
||||
|
||||
alias Mobilizon.{Config, Media}
|
||||
|
||||
alias MobilizonWeb.Upload.Uploader
|
||||
|
||||
describe "media" do
|
||||
setup [:ensure_local_uploader]
|
||||
alias Mobilizon.Media.Picture
|
||||
@@ -49,7 +51,7 @@ defmodule Mobilizon.MediaTest do
|
||||
%URI{path: "/media/" <> path} = URI.parse(picture.file.url)
|
||||
|
||||
assert File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> path
|
||||
)
|
||||
|
||||
@@ -57,7 +59,7 @@ defmodule Mobilizon.MediaTest do
|
||||
assert_raise Ecto.NoResultsError, fn -> Media.get_picture!(picture.id) end
|
||||
|
||||
refute File.exists?(
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/" <> path
|
||||
)
|
||||
end
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Mobilizon.Federation.Plug.FederatingTest do
|
||||
defmodule MobilizonWeb.Plug.FederatingTest do
|
||||
use MobilizonWeb.ConnCase
|
||||
|
||||
alias Mobilizon.Federation.Plugs.Federating
|
||||
alias MobilizonWeb.Plugs.Federating
|
||||
|
||||
test "returns and halt the conn when federating is disabled" do
|
||||
Mobilizon.Config.put([:instance, :federating], false)
|
||||
@@ -3,7 +3,7 @@
|
||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Mobilizon.Federation.Plugs.MappedSignatureToIdentityTest do
|
||||
defmodule MobilizonWeb.Plugs.MappedSignatureToIdentityTest do
|
||||
use MobilizonWeb.ConnCase
|
||||
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
|
||||
|
||||
@@ -158,7 +158,11 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
|
||||
assert json_response(res, 200)["data"]["createEvent"]["title"] == "come to my event"
|
||||
{id, ""} = json_response(res, 200)["data"]["createEvent"]["id"] |> Integer.parse()
|
||||
assert_enqueued(worker: Workers.BuildSearch, args: %{event_id: id, op: :insert_search_event})
|
||||
|
||||
assert_enqueued(
|
||||
worker: Workers.BuildSearch,
|
||||
args: %{event_id: id, op: :insert_search_event}
|
||||
)
|
||||
end
|
||||
|
||||
test "create_event/3 creates an event and escapes title and description", %{
|
||||
@@ -204,7 +208,11 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
"<b>My description</b> <img src=\"http://placekitten.com/g/200/300\" />"
|
||||
|
||||
{id, ""} = res["data"]["createEvent"]["id"] |> Integer.parse()
|
||||
assert_enqueued(worker: Workers.BuildSearch, args: %{event_id: id, op: :insert_search_event})
|
||||
|
||||
assert_enqueued(
|
||||
worker: Workers.BuildSearch,
|
||||
args: %{event_id: id, op: :insert_search_event}
|
||||
)
|
||||
end
|
||||
|
||||
test "create_event/3 creates an event as a draft", %{conn: conn, actor: actor, user: user} do
|
||||
@@ -5,10 +5,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
|
||||
use Bamboo.Test
|
||||
|
||||
alias Mobilizon.{Actors, Users}
|
||||
alias Mobilizon.{Actors, Config, Users}
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Service.Users.ResetPassword
|
||||
alias Mobilizon.Users
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
alias MobilizonWeb.{AbsintheHelpers, Email}
|
||||
@@ -321,8 +319,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
end
|
||||
|
||||
test "create_user/3 doesn't allow registration when registration is closed", %{conn: conn} do
|
||||
Mobilizon.Config.put([:instance, :registrations_open], false)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], [])
|
||||
Config.put([:instance, :registrations_open], false)
|
||||
Config.put([:instance, :registration_email_whitelist], [])
|
||||
|
||||
mutation = """
|
||||
mutation createUser($email: String!, $password: String!) {
|
||||
@@ -344,14 +342,14 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
)
|
||||
|
||||
assert hd(res["errors"])["message"] == "Registrations are not enabled"
|
||||
Mobilizon.Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
end
|
||||
|
||||
test "create_user/3 doesn't allow registration when user email is not on the whitelist", %{
|
||||
conn: conn
|
||||
} do
|
||||
Mobilizon.Config.put([:instance, :registrations_open], false)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], ["random.org"])
|
||||
Config.put([:instance, :registrations_open], false)
|
||||
Config.put([:instance, :registration_email_whitelist], ["random.org"])
|
||||
|
||||
mutation = """
|
||||
mutation createUser($email: String!, $password: String!) {
|
||||
@@ -373,15 +371,15 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
)
|
||||
|
||||
assert hd(res["errors"])["message"] == "Your email is not on the whitelist"
|
||||
Mobilizon.Config.put([:instance, :registrations_open], true)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], [])
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :registration_email_whitelist], [])
|
||||
end
|
||||
|
||||
test "create_user/3 allows registration when user email domain is on the whitelist", %{
|
||||
conn: conn
|
||||
} do
|
||||
Mobilizon.Config.put([:instance, :registrations_open], false)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], ["demo.tld"])
|
||||
Config.put([:instance, :registrations_open], false)
|
||||
Config.put([:instance, :registration_email_whitelist], ["demo.tld"])
|
||||
|
||||
mutation = """
|
||||
mutation createUser($email: String!, $password: String!) {
|
||||
@@ -404,13 +402,13 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
|
||||
refute res["errors"]
|
||||
assert res["data"]["createUser"]["email"] == @user_creation.email
|
||||
Mobilizon.Config.put([:instance, :registrations_open], true)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], [])
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :registration_email_whitelist], [])
|
||||
end
|
||||
|
||||
test "create_user/3 allows registration when user email is on the whitelist", %{conn: conn} do
|
||||
Mobilizon.Config.put([:instance, :registrations_open], false)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], [@user_creation.email])
|
||||
Config.put([:instance, :registrations_open], false)
|
||||
Config.put([:instance, :registration_email_whitelist], [@user_creation.email])
|
||||
|
||||
mutation = """
|
||||
mutation createUser($email: String!, $password: String!) {
|
||||
@@ -433,8 +431,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
|
||||
refute res["errors"]
|
||||
assert res["data"]["createUser"]["email"] == @user_creation.email
|
||||
Mobilizon.Config.put([:instance, :registrations_open], true)
|
||||
Mobilizon.Config.put([:instance, :registration_email_whitelist], [])
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :registration_email_whitelist], [])
|
||||
end
|
||||
|
||||
test "register_person/3 doesn't register a profile from an unknown email", context do
|
||||
@@ -637,7 +635,7 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
"You requested again a confirmation email too soon"
|
||||
|
||||
# Hammer time !
|
||||
Mobilizon.Users.update_user(user, %{
|
||||
Users.update_user(user, %{
|
||||
confirmation_sent_at: Timex.shift(user.confirmation_sent_at, hours: -3)
|
||||
})
|
||||
|
||||
@@ -709,8 +707,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
test "test reset_password/3 with valid email", context do
|
||||
{:ok, %User{} = user} = Users.register(%{email: "toto@tata.tld", password: "p4ssw0rd"})
|
||||
%Actor{} = insert(:actor, user: user)
|
||||
{:ok, _email_sent} = ResetPassword.send_password_reset_email(user)
|
||||
%User{reset_password_token: reset_password_token} = Mobilizon.Users.get_user!(user.id)
|
||||
{:ok, _email_sent} = Email.User.send_password_reset_email(user)
|
||||
%User{reset_password_token: reset_password_token} = Users.get_user!(user.id)
|
||||
|
||||
mutation = """
|
||||
mutation {
|
||||
@@ -734,8 +732,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
|
||||
test "test reset_password/3 with a password too short", context do
|
||||
%User{} = user = insert(:user)
|
||||
{:ok, _email_sent} = ResetPassword.send_password_reset_email(user)
|
||||
%User{reset_password_token: reset_password_token} = Mobilizon.Users.get_user!(user.id)
|
||||
{:ok, _email_sent} = Email.User.send_password_reset_email(user)
|
||||
%User{reset_password_token: reset_password_token} = Users.get_user!(user.id)
|
||||
|
||||
mutation = """
|
||||
mutation {
|
||||
@@ -760,8 +758,8 @@ defmodule MobilizonWeb.Resolvers.UserResolverTest do
|
||||
|
||||
test "test reset_password/3 with an invalid token", context do
|
||||
%User{} = user = insert(:user)
|
||||
{:ok, _email_sent} = ResetPassword.send_password_reset_email(user)
|
||||
%User{} = Mobilizon.Users.get_user!(user.id)
|
||||
{:ok, _email_sent} = Email.User.send_password_reset_email(user)
|
||||
%User{} = Users.get_user!(user.id)
|
||||
|
||||
mutation = """
|
||||
mutation {
|
||||
@@ -9,6 +9,7 @@ defmodule Mobilizon.UploadTest do
|
||||
alias Mobilizon.Config
|
||||
|
||||
alias MobilizonWeb.Upload
|
||||
alias MobilizonWeb.Upload.Uploader
|
||||
|
||||
describe "Storing a file with the Local uploader" do
|
||||
setup [:ensure_local_uploader]
|
||||
@@ -184,7 +185,7 @@ defmodule Mobilizon.UploadTest do
|
||||
|
||||
test "delete a not existing file" do
|
||||
file =
|
||||
Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <>
|
||||
Config.get!([Uploader.Local, :uploads]) <>
|
||||
"/not_existing/definitely.jpg"
|
||||
|
||||
refute File.exists?(file)
|
||||
@@ -214,6 +215,6 @@ defmodule Mobilizon.UploadTest do
|
||||
assert String.starts_with?(url, MobilizonWeb.Endpoint.url() <> "/media/")
|
||||
|
||||
%URI{path: "/media/" <> path} = URI.parse(url)
|
||||
{Config.get!([MobilizonWeb.Uploaders.Local, :uploads]) <> "/" <> path, url}
|
||||
{Config.get!([Uploader.Local, :uploads]) <> "/" <> path, url}
|
||||
end
|
||||
end
|
||||
@@ -30,7 +30,7 @@ defmodule MobilizonWeb.ConnCase do
|
||||
@endpoint MobilizonWeb.Endpoint
|
||||
|
||||
def auth_conn(%Plug.Conn{} = conn, %User{} = user) do
|
||||
{:ok, token, _claims} = MobilizonWeb.Guardian.encode_and_sign(user)
|
||||
{:ok, token, _claims} = MobilizonWeb.Auth.Guardian.encode_and_sign(user)
|
||||
|
||||
conn
|
||||
|> Plug.Conn.put_req_header("authorization", "Bearer #{token}")
|
||||
|
||||
@@ -19,6 +19,9 @@ defmodule Mobilizon.DataCase do
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Storage.Repo
|
||||
|
||||
alias MobilizonWeb.Upload
|
||||
alias MobilizonWeb.Upload.Uploader
|
||||
|
||||
using do
|
||||
quote do
|
||||
alias Mobilizon.Storage.Repo
|
||||
@@ -55,16 +58,16 @@ defmodule Mobilizon.DataCase do
|
||||
end
|
||||
|
||||
def ensure_local_uploader(_context) do
|
||||
uploader = Config.get([MobilizonWeb.Upload, :uploader])
|
||||
filters = Config.get([MobilizonWeb.Upload, :filters])
|
||||
uploader = Config.get([Upload, :uploader])
|
||||
filters = Config.get([Upload, :filters])
|
||||
|
||||
unless uploader == MobilizonWeb.Uploaders.Local || filters != [] do
|
||||
Config.put([MobilizonWeb.Upload, :uploader], MobilizonWeb.Uploaders.Local)
|
||||
Config.put([MobilizonWeb.Upload, :filters], [])
|
||||
unless uploader == Uploader.Local || filters != [] do
|
||||
Config.put([Upload, :uploader], Uploader.Local)
|
||||
Config.put([Upload, :filters], [])
|
||||
|
||||
on_exit(fn ->
|
||||
Config.put([MobilizonWeb.Upload, :uploader], uploader)
|
||||
Config.put([MobilizonWeb.Upload, :filters], filters)
|
||||
Config.put([Upload, :uploader], uploader)
|
||||
Config.put([Upload, :filters], filters)
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
defmodule Mix.Tasks.Mobilizon.UsersTest do
|
||||
use Mobilizon.DataCase
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
alias Mobilizon.Users
|
||||
alias Mobilizon.Users.User
|
||||
alias Mix.Tasks.Mobilizon.Users.{New, Delete, Show, Modify}
|
||||
import Mobilizon.Factory
|
||||
|
||||
Mix.shell(Mix.Shell.Process)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user