logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: e7c6410192cfb115246acd4f9bf80f0c42aece90
parent fc910f9bb94bb3cefb76f2253369e6198d6ee969
Author: Mark Felder <feld@feld.me>
Date:   Mon, 15 Jan 2024 17:07:13 -0500

Add Pleroma.Support.Helpers.uri_query_sort/1 for easy sorting of a URL's query parameters

Diffstat:

Mtest/support/helpers.ex22++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)

diff --git 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