summaryrefslogtreecommitdiff
path: root/test/support/helpers.ex
diff options
context:
space:
mode:
authorLain Soykaf <lain@lain.com>2024-05-27 17:49:31 +0400
committerLain Soykaf <lain@lain.com>2024-05-27 17:49:31 +0400
commit4325b1aec34734d8efbc7701d6bfdcf157e7cb0d (patch)
tree7995ee0c521da831709f1198ca7154fad0885306 /test/support/helpers.ex
parent3a03d9b65f96099e7c7a831469532c2cec7294c6 (diff)
parent6757382abec9ca47a9025b8bed61047414cee20f (diff)
downloadpleroma-4325b1aec34734d8efbc7701d6bfdcf157e7cb0d.tar.gz
pleroma-4325b1aec34734d8efbc7701d6bfdcf157e7cb0d.zip
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into nsfw-api-mrf
Diffstat (limited to 'test/support/helpers.ex')
-rw-r--r--test/support/helpers.ex37
1 files changed, 35 insertions, 2 deletions
diff --git a/test/support/helpers.ex b/test/support/helpers.ex
index 34f1505d0..7fa6c31a4 100644
--- a/test/support/helpers.ex
+++ b/test/support/helpers.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Tests.Helpers do
@@ -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