summaryrefslogtreecommitdiff
path: root/test/support
diff options
context:
space:
mode:
Diffstat (limited to 'test/support')
-rw-r--r--test/support/cluster.ex15
-rw-r--r--test/support/data_case.ex1
-rw-r--r--test/support/factory.ex2
-rw-r--r--test/support/helpers.ex35
-rw-r--r--test/support/http_request_mock.ex6
-rw-r--r--test/support/mocks.ex6
6 files changed, 59 insertions, 6 deletions
diff --git a/test/support/cluster.ex b/test/support/cluster.ex
index 1c923fb0c..a0ec91168 100644
--- a/test/support/cluster.ex
+++ b/test/support/cluster.ex
@@ -127,7 +127,10 @@ defmodule Pleroma.Cluster do
defp start_slave({node_host, override_configs}) do
log(node_host, "booting federated VM")
- {:ok, node} = :slave.start(~c"127.0.0.1", node_name(node_host), vm_args())
+
+ {:ok, node} =
+ do_start_slave(%{host: "127.0.0.1", name: node_name(node_host), args: vm_args()})
+
add_code_paths(node)
load_apps_and_transfer_configuration(node, override_configs)
ensure_apps_started(node)
@@ -219,4 +222,14 @@ defmodule Pleroma.Cluster do
|> Enum.at(0)
|> String.to_atom()
end
+
+ defp do_start_slave(%{host: host, name: name, args: args} = opts) do
+ peer_module = Application.get_env(__MODULE__, :peer_module)
+
+ if peer_module == :peer do
+ peer_module.start(opts)
+ else
+ peer_module.start(host, name, args)
+ end
+ end
end
diff --git a/test/support/data_case.ex b/test/support/data_case.ex
index 3c9cab061..14403f0b8 100644
--- a/test/support/data_case.ex
+++ b/test/support/data_case.ex
@@ -115,6 +115,7 @@ defmodule Pleroma.DataCase do
Mox.stub_with(Pleroma.Web.ActivityPub.ActivityPubMock, Pleroma.Web.ActivityPub.ActivityPub)
Mox.stub_with(Pleroma.Web.FederatorMock, Pleroma.Web.Federator)
Mox.stub_with(Pleroma.ConfigMock, Pleroma.Config)
+ Mox.stub_with(Pleroma.StaticStubbedConfigMock, Pleroma.Test.StaticConfig)
end
def ensure_local_uploader(context) do
diff --git a/test/support/factory.ex b/test/support/factory.ex
index d94544717..20bc5162e 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -212,7 +212,7 @@ defmodule Pleroma.Factory do
end
def direct_note_factory do
- user2 = insert(:user)
+ user2 = insert(:user, local: false, inbox: "http://example.com/inbox")
%Pleroma.Object{data: data} = note_factory()
%Pleroma.Object{data: Map.merge(data, %{"to" => [user2.ap_id]})}
diff --git a/test/support/helpers.ex b/test/support/helpers.ex
index 0bd487f39..7fa6c31a4 100644
--- a/test/support/helpers.ex
+++ b/test/support/helpers.ex
@@ -10,6 +10,39 @@ defmodule Pleroma.Tests.Helpers do
require Logger
+ @doc "Accepts two URLs/URIs and sorts the query parameters before comparing"
+ def uri_equal?(a, b) do
+ a_sorted = uri_query_sort(a)
+ b_sorted = uri_query_sort(b)
+
+ match?(^a_sorted, b_sorted)
+ end
+
+ @doc "Accepts a URL/URI and sorts the query parameters"
+ def uri_query_sort(uri) do
+ parsed = URI.parse(uri)
+
+ sorted_query =
+ String.split(parsed.query, "&")
+ |> Enum.sort()
+ |> Enum.join("&")
+
+ parsed
+ |> Map.put(:query, sorted_query)
+ |> URI.to_string()
+ end
+
+ @doc "Returns the value of the specified query parameter for the provided URL"
+ def get_query_parameter(url, param) do
+ url
+ |> URI.parse()
+ |> Map.get(:query)
+ |> URI.query_decoder()
+ |> Enum.to_list()
+ |> Enum.into(%{}, fn {x, y} -> {x, y} end)
+ |> Map.get(param)
+ end
+
defmacro clear_config(config_path) do
quote do
clear_config(unquote(config_path)) do
@@ -41,7 +74,7 @@ defmodule Pleroma.Tests.Helpers do
# NOTE: `clear_config([section, key], value)` != `clear_config([section], key: value)` (!)
# Displaying a warning to prevent unintentional clearing of all but one keys in section
if Keyword.keyword?(temp_setting) and length(temp_setting) == 1 do
- Logger.warn(
+ Logger.warning(
"Please change `clear_config([section], key: value)` to `clear_config([section, key], value)`"
)
end
diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex
index 2707804bc..e58a448cf 100644
--- a/test/support/http_request_mock.ex
+++ b/test/support/http_request_mock.ex
@@ -21,7 +21,7 @@ defmodule HttpRequestMock do
else
error ->
with {:error, message} <- error do
- Logger.warn(to_string(message))
+ Logger.warning(to_string(message))
end
{_, _r} = error
@@ -178,7 +178,7 @@ defmodule HttpRequestMock do
end
def get(
- "https://social.heldscal.la/.well-known/webfinger?resource=nonexistant@social.heldscal.la",
+ "https://social.heldscal.la/.well-known/webfinger?resource=nonexistent@social.heldscal.la",
_,
_,
[{"accept", "application/xrd+xml,application/jrd+json"}]
@@ -186,7 +186,7 @@ defmodule HttpRequestMock do
{:ok,
%Tesla.Env{
status: 200,
- body: File.read!("test/fixtures/tesla_mock/nonexistant@social.heldscal.la.xml")
+ body: File.read!("test/fixtures/tesla_mock/nonexistent@social.heldscal.la.xml")
}}
end
diff --git a/test/support/mocks.ex b/test/support/mocks.ex
index d167996bd..d906f0e1d 100644
--- a/test/support/mocks.ex
+++ b/test/support/mocks.ex
@@ -26,5 +26,11 @@ Mox.defmock(Pleroma.Web.ActivityPub.SideEffectsMock,
Mox.defmock(Pleroma.Web.FederatorMock, for: Pleroma.Web.Federator.Publishing)
Mox.defmock(Pleroma.ConfigMock, for: Pleroma.Config.Getting)
+Mox.defmock(Pleroma.UnstubbedConfigMock, for: Pleroma.Config.Getting)
+Mox.defmock(Pleroma.StaticStubbedConfigMock, for: Pleroma.Config.Getting)
Mox.defmock(Pleroma.LoggerMock, for: Pleroma.Logging)
+
+Mox.defmock(Pleroma.User.Backup.ProcessorMock, for: Pleroma.User.Backup.ProcessorAPI)
+
+Mox.defmock(Pleroma.Uploaders.S3.ExAwsMock, for: Pleroma.Uploaders.S3.ExAwsAPI)