summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2024-01-15 17:07:13 -0500
committerMark Felder <feld@feld.me>2024-01-15 17:08:24 -0500
commite7c6410192cfb115246acd4f9bf80f0c42aece90 (patch)
tree935ad6f9d2ecd6618e66308d6e8d992876c47634 /test
parentfc910f9bb94bb3cefb76f2253369e6198d6ee969 (diff)
Add Pleroma.Support.Helpers.uri_query_sort/1 for easy sorting of a URL's query parameters
Diffstat (limited to 'test')
-rw-r--r--test/support/helpers.ex22
1 files changed, 14 insertions, 8 deletions
diff --git a/test/support/helpers.ex b/test/support/helpers.ex
index ee18753ed..bcdc49e4f 100644
--- a/test/support/helpers.ex
+++ b/test/support/helpers.ex
@@ -12,18 +12,24 @@ defmodule Pleroma.Tests.Helpers do
@doc "Accepts two URLs/URIs and sorts the query parameters before comparing"
def uri_equal?(a, b) do
- a_parsed = URI.parse(a)
- b_parsed = URI.parse(b)
+ a_sorted = uri_query_sort(a)
+ b_sorted = uri_query_sort(b)
- query_sort = fn query -> String.split(query, "&") |> Enum.sort() |> Enum.join("&") end
+ match?(^a_sorted, b_sorted)
+ end
- a_sorted_query = query_sort.(a_parsed.query)
- b_sorted_query = query_sort.(b_parsed.query)
+ @doc "Accepts a URL/URI and sorts the query parameters"
+ def uri_query_sort(uri) do
+ parsed = URI.parse(uri)
- a_sorted = Map.put(a_parsed, :query, a_sorted_query)
- b_sorted = Map.put(b_parsed, :query, b_sorted_query)
+ sorted_query =
+ String.split(parsed.query, "&")
+ |> Enum.sort()
+ |> Enum.join("&")
- match?(^a_sorted, b_sorted)
+ parsed
+ |> Map.put(:query, sorted_query)
+ |> URI.to_string()
end
defmacro clear_config(config_path) do