Current section

Files

Jump to
gleam_stdlib gen test gleam@uri_test.erl
Raw

gen/test/gleam@uri_test.erl

-module(gleam@uri_test).
-compile(no_auto_import).
-export([full_parse_test/0, parse_only_path_test/0, parse_only_host_test/0, parse_scheme_test/0, parse_https_scheme_test/0, parse_file_scheme_test/0, parse_ftp_scheme_test/0, parse_sftp_scheme_test/0, parse_tftp_scheme_test/0, parse_ldap_scheme_test/0, parse_ldap_2_scheme_test/0, parse_downcases_scheme/0, parse_empty_fragments_test/0, parse_empty_queries_test/0, full_uri_to_string_test/0, path_only_uri_to_string_test/0, scheme_to_string_test/0, host_to_string_test/0, port_to_string_test/0, parse_query_string_test/0, parse_empty_query_string_test/0, parse_query_string_with_empty_test/0, error_parsing_query_test/0, query_to_string_test/0, empty_query_to_string_test/0, percent_encode_test/0, percent_encode_consistency_test/0, percent_decode_test/0, percent_decode_consistency_test/0, parse_segments_test/0, origin1_test/0, origin2_test/0, origin3_test/0, origin4_test/0, origin5_test/0, origin6_test/0, origin7_test/0, merge1_test/0, merge2_test/0, merge3_test/0, merge4_test/0, merge5_test/0, merge6_test/0, merge7_test/0, merge8_test/0, merge9_test/0, merge10_test/0, merge11_test/0, merge12_test/0, merge13_test/0, merge14_test/0, merge15_test/0]).
-spec full_parse_test() -> nil.
full_parse_test() ->
{ok, Parsed@1} = case gleam@uri:parse(
<<"https://weebl:bob@example.com:1234/path?query=true#fragment"/utf8>>
) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"full_parse_test"/utf8>>,
line => 11})
end,
gleam@should:equal(erlang:element(2, Parsed@1), {some, <<"https"/utf8>>}),
gleam@should:equal(
erlang:element(3, Parsed@1),
{some, <<"weebl:bob"/utf8>>}
),
gleam@should:equal(
erlang:element(4, Parsed@1),
{some, <<"example.com"/utf8>>}
),
gleam@should:equal(erlang:element(5, Parsed@1), {some, 1234}),
gleam@should:equal(erlang:element(6, Parsed@1), <<"/path"/utf8>>),
gleam@should:equal(
erlang:element(7, Parsed@1),
{some, <<"query=true"/utf8>>}
),
gleam@should:equal(erlang:element(8, Parsed@1), {some, <<"fragment"/utf8>>}).
-spec parse_only_path_test() -> nil.
parse_only_path_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<""/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_only_path_test"/utf8>>,
line => 23})
end,
gleam@should:equal(erlang:element(2, Parsed@1), none),
gleam@should:equal(erlang:element(3, Parsed@1), none),
gleam@should:equal(erlang:element(4, Parsed@1), none),
gleam@should:equal(erlang:element(5, Parsed@1), none),
gleam@should:equal(erlang:element(6, Parsed@1), <<""/utf8>>),
gleam@should:equal(erlang:element(7, Parsed@1), none),
gleam@should:equal(erlang:element(8, Parsed@1), none).
-spec parse_only_host_test() -> nil.
parse_only_host_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"//"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_only_host_test"/utf8>>,
line => 34})
end,
gleam@should:equal(erlang:element(2, Parsed@1), none),
gleam@should:equal(erlang:element(3, Parsed@1), none),
gleam@should:equal(erlang:element(4, Parsed@1), {some, <<""/utf8>>}),
gleam@should:equal(erlang:element(5, Parsed@1), none),
gleam@should:equal(erlang:element(6, Parsed@1), <<""/utf8>>),
gleam@should:equal(erlang:element(7, Parsed@1), none),
gleam@should:equal(erlang:element(8, Parsed@1), none).
-spec parse_scheme_test() -> nil.
parse_scheme_test() ->
_pipe = gleam@uri:parse(
<<"http://one.com/path/to/something?one=two&two=one#fragment"/utf8>>
),
gleam@should:equal(
_pipe,
{ok,
{uri,
{some, <<"http"/utf8>>},
none,
{some, <<"one.com"/utf8>>},
none,
<<"/path/to/something"/utf8>>,
{some, <<"one=two&two=one"/utf8>>},
{some, <<"fragment"/utf8>>}}}
).
-spec parse_https_scheme_test() -> nil.
parse_https_scheme_test() ->
_pipe = gleam@uri:parse(<<"https://foo.com"/utf8>>),
gleam@should:equal(
_pipe,
{ok,
{uri,
{some, <<"https"/utf8>>},
none,
{some, <<"foo.com"/utf8>>},
none,
<<""/utf8>>,
none,
none}}
).
-spec parse_file_scheme_test() -> nil.
parse_file_scheme_test() ->
_pipe = gleam@uri:parse(<<"file:///one/two/three"/utf8>>),
gleam@should:equal(
_pipe,
{ok,
{uri,
{some, <<"file"/utf8>>},
none,
{some, <<""/utf8>>},
none,
<<"/one/two/three"/utf8>>,
none,
none}}
).
-spec parse_ftp_scheme_test() -> nil.
parse_ftp_scheme_test() ->
_pipe = <<"ftp://user001:password@private.ftp-server.example.com/my_directory/my_file.txt"/utf8>>,
_pipe@1 = gleam@uri:parse(_pipe),
gleam@should:equal(
_pipe@1,
{ok,
{uri,
{some, <<"ftp"/utf8>>},
{some, <<"user001:password"/utf8>>},
{some, <<"private.ftp-server.example.com"/utf8>>},
none,
<<"/my_directory/my_file.txt"/utf8>>,
none,
none}}
).
-spec parse_sftp_scheme_test() -> nil.
parse_sftp_scheme_test() ->
_pipe = <<"sftp://user001:password@private.ftp-server.example.com/my_directory/my_file.txt"/utf8>>,
_pipe@1 = gleam@uri:parse(_pipe),
gleam@should:equal(
_pipe@1,
{ok,
{uri,
{some, <<"sftp"/utf8>>},
{some, <<"user001:password"/utf8>>},
{some, <<"private.ftp-server.example.com"/utf8>>},
none,
<<"/my_directory/my_file.txt"/utf8>>,
none,
none}}
).
-spec parse_tftp_scheme_test() -> nil.
parse_tftp_scheme_test() ->
_pipe = <<"tftp://user001:password@private.ftp-server.example.com/my_directory/my_file.txt"/utf8>>,
_pipe@1 = gleam@uri:parse(_pipe),
gleam@should:equal(
_pipe@1,
{ok,
{uri,
{some, <<"tftp"/utf8>>},
{some, <<"user001:password"/utf8>>},
{some, <<"private.ftp-server.example.com"/utf8>>},
none,
<<"/my_directory/my_file.txt"/utf8>>,
none,
none}}
).
-spec parse_ldap_scheme_test() -> nil.
parse_ldap_scheme_test() ->
_pipe = <<"ldap:///dc=example,dc=com??sub?(givenName=John)"/utf8>>,
_pipe@1 = gleam@uri:parse(_pipe),
gleam@should:equal(
_pipe@1,
{ok,
{uri,
{some, <<"ldap"/utf8>>},
none,
{some, <<""/utf8>>},
none,
<<"/dc=example,dc=com"/utf8>>,
{some, <<"?sub?(givenName=John)"/utf8>>},
none}}
).
-spec parse_ldap_2_scheme_test() -> nil.
parse_ldap_2_scheme_test() ->
_pipe = <<"ldap://ldap.example.com/cn=John%20Doe,dc=foo,dc=com"/utf8>>,
_pipe@1 = gleam@uri:parse(_pipe),
gleam@should:equal(
_pipe@1,
{ok,
{uri,
{some, <<"ldap"/utf8>>},
none,
{some, <<"ldap.example.com"/utf8>>},
none,
<<"/cn=John%20Doe,dc=foo,dc=com"/utf8>>,
none,
none}}
).
-spec assert_parse(binary()) -> gleam@uri:uri().
assert_parse(S) ->
{ok, U@1} = case gleam@uri:parse(S) of
{ok, U} -> {ok, U};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"assert_parse"/utf8>>,
line => 154})
end,
U@1.
-spec parse_downcases_scheme() -> gleam@option:option(binary()).
parse_downcases_scheme() ->
{ok, Uri@1} = case gleam@uri:parse(<<"HTTPS://EXAMPLE.COM"/utf8>>) of
{ok, Uri} -> {ok, Uri};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_downcases_scheme"/utf8>>,
line => 166})
end,
{some, <<"https"/utf8>>} = case erlang:element(2, Uri@1) of
{some, <<"https"/utf8>>} -> {some, <<"https"/utf8>>};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_downcases_scheme"/utf8>>,
line => 167})
end,
{some, <<"EXAMPLE.COM"/utf8>>} = case erlang:element(4, Uri@1) of
{some, <<"EXAMPLE.COM"/utf8>>} -> {some, <<"EXAMPLE.COM"/utf8>>};
_try@2 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@2,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_downcases_scheme"/utf8>>,
line => 168})
end.
-spec parse_empty_fragments_test() -> gleam@option:option(binary()).
parse_empty_fragments_test() ->
{some, <<""/utf8>>} = case erlang:element(
8,
assert_parse(<<"http://example.com#"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_fragments_test"/utf8>>,
line => 172})
end,
{some, <<""/utf8>>} = case erlang:element(
8,
assert_parse(<<"http://example.com/#"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_fragments_test"/utf8>>,
line => 173})
end,
{some, <<""/utf8>>} = case erlang:element(
8,
assert_parse(<<"http://example.com/test#"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try@2 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@2,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_fragments_test"/utf8>>,
line => 174})
end.
-spec parse_empty_queries_test() -> gleam@option:option(binary()).
parse_empty_queries_test() ->
{some, <<""/utf8>>} = case erlang:element(
7,
assert_parse(<<"http://example.com?"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_queries_test"/utf8>>,
line => 178})
end,
{some, <<""/utf8>>} = case erlang:element(
7,
assert_parse(<<"http://example.com/?"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_queries_test"/utf8>>,
line => 179})
end,
{some, <<""/utf8>>} = case erlang:element(
7,
assert_parse(<<"http://example.com/test?"/utf8>>)
) of
{some, <<""/utf8>>} -> {some, <<""/utf8>>};
_try@2 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@2,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_queries_test"/utf8>>,
line => 180})
end.
-spec full_uri_to_string_test() -> nil.
full_uri_to_string_test() ->
Test_uri = {uri,
{some, <<"https"/utf8>>},
{some, <<"weebl:bob"/utf8>>},
{some, <<"example.com"/utf8>>},
{some, 1234},
<<"/path"/utf8>>,
{some, <<"query=true"/utf8>>},
{some, <<"fragment"/utf8>>}},
gleam@should:equal(
gleam@uri:to_string(Test_uri),
<<"https://weebl:bob@example.com:1234/path?query=true#fragment"/utf8>>
).
-spec path_only_uri_to_string_test() -> nil.
path_only_uri_to_string_test() ->
_pipe = {uri, none, none, none, none, <<"/"/utf8>>, none, none},
_pipe@1 = gleam@uri:to_string(_pipe),
gleam@should:equal(_pipe@1, <<"/"/utf8>>),
_pipe@2 = {uri, none, none, none, none, <<"/teapot"/utf8>>, none, none},
_pipe@3 = gleam@uri:to_string(_pipe@2),
gleam@should:equal(_pipe@3, <<"/teapot"/utf8>>),
_pipe@4 = {uri,
none,
{some, <<"user"/utf8>>},
none,
none,
<<"/teapot"/utf8>>,
none,
none},
_pipe@5 = gleam@uri:to_string(_pipe@4),
gleam@should:equal(_pipe@5, <<"/teapot"/utf8>>),
_pipe@6 = {uri, none, none, none, none, <<""/utf8>>, none, none},
_pipe@7 = gleam@uri:to_string(_pipe@6),
gleam@should:equal(_pipe@7, <<""/utf8>>).
-spec scheme_to_string_test() -> nil.
scheme_to_string_test() ->
_pipe = {uri,
{some, <<"ftp"/utf8>>},
none,
none,
none,
<<"thing.txt"/utf8>>,
none,
none},
_pipe@1 = gleam@uri:to_string(_pipe),
gleam@should:equal(_pipe@1, <<"ftp:thing.txt"/utf8>>),
_pipe@2 = {uri,
{some, <<"ftp"/utf8>>},
none,
none,
none,
<<""/utf8>>,
none,
none},
_pipe@3 = gleam@uri:to_string(_pipe@2),
gleam@should:equal(_pipe@3, <<"ftp:"/utf8>>),
_pipe@4 = {uri,
{some, <<"ftp"/utf8>>},
{some, <<"ignored"/utf8>>},
none,
none,
<<""/utf8>>,
none,
none},
_pipe@5 = gleam@uri:to_string(_pipe@4),
gleam@should:equal(_pipe@5, <<"ftp:"/utf8>>),
_pipe@6 = {uri,
{some, <<"https"/utf8>>},
none,
none,
none,
<<"/one/two"/utf8>>,
none,
none},
_pipe@7 = gleam@uri:to_string(_pipe@6),
gleam@should:equal(_pipe@7, <<"https:/one/two"/utf8>>),
_pipe@8 = {uri,
none,
none,
none,
none,
<<"noslash"/utf8>>,
none,
{some, <<"frag"/utf8>>}},
_pipe@9 = gleam@uri:to_string(_pipe@8),
gleam@should:equal(_pipe@9, <<"noslash#frag"/utf8>>).
-spec host_to_string_test() -> nil.
host_to_string_test() ->
_pipe = {uri,
{some, <<"ftp"/utf8>>},
none,
{some, <<"example.com"/utf8>>},
none,
<<""/utf8>>,
none,
none},
_pipe@1 = gleam@uri:to_string(_pipe),
gleam@should:equal(_pipe@1, <<"ftp://example.com/"/utf8>>),
_pipe@2 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
none,
<<""/utf8>>,
none,
none},
_pipe@3 = gleam@uri:to_string(_pipe@2),
gleam@should:equal(_pipe@3, <<"//example.com/"/utf8>>),
_pipe@4 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
none,
<<"/slash"/utf8>>,
none,
none},
_pipe@5 = gleam@uri:to_string(_pipe@4),
gleam@should:equal(_pipe@5, <<"//example.com/slash"/utf8>>),
_pipe@6 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
none,
<<"noslash"/utf8>>,
none,
none},
_pipe@7 = gleam@uri:to_string(_pipe@6),
gleam@should:equal(_pipe@7, <<"//example.com/noslash"/utf8>>),
_pipe@8 = {uri,
none,
none,
{some, <<""/utf8>>},
none,
<<""/utf8>>,
none,
none},
_pipe@9 = gleam@uri:to_string(_pipe@8),
gleam@should:equal(_pipe@9, <<"//"/utf8>>),
_pipe@10 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
none,
<<"noslash"/utf8>>,
none,
{some, <<"ok"/utf8>>}},
_pipe@11 = gleam@uri:to_string(_pipe@10),
gleam@should:equal(_pipe@11, <<"//example.com/noslash#ok"/utf8>>),
_pipe@12 = {uri,
none,
none,
{some, <<""/utf8>>},
none,
<<""/utf8>>,
none,
{some, <<"ok"/utf8>>}},
_pipe@13 = gleam@uri:to_string(_pipe@12),
gleam@should:equal(_pipe@13, <<"//#ok"/utf8>>).
-spec port_to_string_test() -> nil.
port_to_string_test() ->
_pipe = {uri,
{some, <<"ftp"/utf8>>},
none,
{some, <<"example.com"/utf8>>},
{some, 80},
<<""/utf8>>,
none,
none},
_pipe@1 = gleam@uri:to_string(_pipe),
gleam@should:equal(_pipe@1, <<"ftp://example.com:80/"/utf8>>),
_pipe@2 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
{some, 40},
<<""/utf8>>,
none,
none},
_pipe@3 = gleam@uri:to_string(_pipe@2),
gleam@should:equal(_pipe@3, <<"//example.com:40/"/utf8>>),
_pipe@4 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
{some, 80},
<<"/slash"/utf8>>,
none,
none},
_pipe@5 = gleam@uri:to_string(_pipe@4),
gleam@should:equal(_pipe@5, <<"//example.com:80/slash"/utf8>>),
_pipe@6 = {uri,
none,
none,
{some, <<"example.com"/utf8>>},
{some, 81},
<<"noslash"/utf8>>,
none,
none},
_pipe@7 = gleam@uri:to_string(_pipe@6),
gleam@should:equal(_pipe@7, <<"//example.com:81/noslash"/utf8>>),
_pipe@8 = {uri,
none,
none,
none,
{some, 81},
<<"noslash"/utf8>>,
none,
none},
_pipe@9 = gleam@uri:to_string(_pipe@8),
gleam@should:equal(_pipe@9, <<"noslash"/utf8>>).
-spec parse_query_string_test() -> nil.
parse_query_string_test() ->
{ok, Parsed@1} = case gleam@uri:parse_query(
<<"weebl+bob=1&city=%C3%B6rebro"/utf8>>
) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_query_string_test"/utf8>>,
line => 293})
end,
gleam@should:equal(
Parsed@1,
[{<<"weebl bob"/utf8>>, <<"1"/utf8>>},
{<<"city"/utf8>>, <<"örebro"/utf8>>}]
),
{ok, Parsed@3} = case gleam@uri:parse_query(<<"a[]=1&a[]=2"/utf8>>) of
{ok, Parsed@2} -> {ok, Parsed@2};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_query_string_test"/utf8>>,
line => 297})
end,
_pipe = Parsed@3,
gleam@should:equal(
_pipe,
[{<<"a[]"/utf8>>, <<"1"/utf8>>}, {<<"a[]"/utf8>>, <<"2"/utf8>>}]
).
-spec parse_empty_query_string_test() -> nil.
parse_empty_query_string_test() ->
{ok, Parsed@1} = case gleam@uri:parse_query(<<""/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"parse_empty_query_string_test"/utf8>>,
line => 304})
end,
gleam@should:equal(Parsed@1, []).
-spec parse_query_string_with_empty_test() -> nil.
parse_query_string_with_empty_test() ->
_pipe = gleam@uri:parse_query(<<"present"/utf8>>),
gleam@should:equal(_pipe, {ok, [{<<"present"/utf8>>, <<""/utf8>>}]}).
-spec error_parsing_query_test() -> nil.
error_parsing_query_test() ->
gleam@should:equal(gleam@uri:parse_query(<<"%C2"/utf8>>), {error, nil}).
-spec query_to_string_test() -> nil.
query_to_string_test() ->
Query_string = gleam@uri:query_to_string(
[{<<"weebl bob"/utf8>>, <<"1"/utf8>>},
{<<"city"/utf8>>, <<"örebro"/utf8>>}]
),
gleam@should:equal(Query_string, <<"weebl%20bob=1&city=%C3%B6rebro"/utf8>>).
-spec empty_query_to_string_test() -> nil.
empty_query_to_string_test() ->
Query_string = gleam@uri:query_to_string([]),
gleam@should:equal(Query_string, <<""/utf8>>).
-spec percent_encode_test() -> list(nil).
percent_encode_test() ->
_pipe = [{<<" "/utf8>>, <<"%20"/utf8>>},
{<<","/utf8>>, <<"%2C"/utf8>>},
{<<";"/utf8>>, <<"%3B"/utf8>>},
{<<":"/utf8>>, <<"%3A"/utf8>>},
{<<"!"/utf8>>, <<"!"/utf8>>},
{<<"?"/utf8>>, <<"%3F"/utf8>>},
{<<"'"/utf8>>, <<"'"/utf8>>},
{<<"("/utf8>>, <<"("/utf8>>},
{<<")"/utf8>>, <<")"/utf8>>},
{<<"["/utf8>>, <<"%5B"/utf8>>},
{<<"@"/utf8>>, <<"%40"/utf8>>},
{<<"/"/utf8>>, <<"%2F"/utf8>>},
{<<"\\"/utf8>>, <<"%5C"/utf8>>},
{<<"&"/utf8>>, <<"%26"/utf8>>},
{<<"#"/utf8>>, <<"%23"/utf8>>},
{<<"="/utf8>>, <<"%3D"/utf8>>},
{<<"~"/utf8>>, <<"~"/utf8>>},
{<<"ñ"/utf8>>, <<"%C3%B1"/utf8>>},
{<<"-"/utf8>>, <<"-"/utf8>>},
{<<"_"/utf8>>, <<"_"/utf8>>},
{<<"."/utf8>>, <<"."/utf8>>},
{<<"*"/utf8>>, <<"*"/utf8>>},
{<<"100% great"/utf8>>, <<"100%25%20great"/utf8>>}],
gleam@list:map(
_pipe,
fun(T) ->
{A, B} = T,
_pipe@1 = gleam@uri:percent_encode(A),
gleam@should:equal(_pipe@1, B)
end
).
-spec percent_encode_consistency_test() -> nil.
percent_encode_consistency_test() ->
K = <<"weebl bob[]"/utf8>>,
V = <<"ñaña (,:*~)"/utf8>>,
Query_string = gleam@uri:query_to_string([{K, V}]),
Encoded_key = gleam@uri:percent_encode(K),
Encoded_value = gleam@uri:percent_encode(V),
Manual_query_string = gleam@string:concat(
[Encoded_key, <<"="/utf8>>, Encoded_value]
),
gleam@should:equal(Query_string, Manual_query_string).
-spec percent_decode_test() -> list(nil).
percent_decode_test() ->
_pipe = [{<<" "/utf8>>, <<"%20"/utf8>>},
{<<","/utf8>>, <<"%2C"/utf8>>},
{<<";"/utf8>>, <<"%3B"/utf8>>},
{<<":"/utf8>>, <<"%3A"/utf8>>},
{<<"!"/utf8>>, <<"!"/utf8>>},
{<<"?"/utf8>>, <<"%3F"/utf8>>},
{<<"'"/utf8>>, <<"'"/utf8>>},
{<<"("/utf8>>, <<"("/utf8>>},
{<<")"/utf8>>, <<")"/utf8>>},
{<<"["/utf8>>, <<"%5B"/utf8>>},
{<<"@"/utf8>>, <<"%40"/utf8>>},
{<<"/"/utf8>>, <<"%2F"/utf8>>},
{<<"\\"/utf8>>, <<"%5C"/utf8>>},
{<<"&"/utf8>>, <<"%26"/utf8>>},
{<<"#"/utf8>>, <<"%23"/utf8>>},
{<<"="/utf8>>, <<"%3D"/utf8>>},
{<<"~"/utf8>>, <<"~"/utf8>>},
{<<"ñ"/utf8>>, <<"%C3%B1"/utf8>>},
{<<"-"/utf8>>, <<"-"/utf8>>},
{<<"_"/utf8>>, <<"_"/utf8>>},
{<<"."/utf8>>, <<"."/utf8>>},
{<<"*"/utf8>>, <<"*"/utf8>>},
{<<"100% great"/utf8>>, <<"100%25%20great"/utf8>>}],
gleam@list:map(
_pipe,
fun(T) ->
{A, B} = T,
_pipe@1 = gleam@uri:percent_decode(B),
gleam@should:equal(_pipe@1, {ok, A})
end
).
-spec percent_decode_consistency_test() -> nil.
percent_decode_consistency_test() ->
K = <<"weebl%20bob[]"/utf8>>,
V = <<"%C3%B6rebro"/utf8>>,
Query = gleam@string:concat([K, <<"="/utf8>>, V]),
{ok, Parsed@1} = case gleam@uri:parse_query(Query) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"percent_decode_consistency_test"/utf8>>,
line => 390})
end,
{ok, Decoded_key@1} = case gleam@uri:percent_decode(K) of
{ok, Decoded_key} -> {ok, Decoded_key};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"percent_decode_consistency_test"/utf8>>,
line => 392})
end,
{ok, Decoded_value@1} = case gleam@uri:percent_decode(V) of
{ok, Decoded_value} -> {ok, Decoded_value};
_try@2 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@2,
module => <<"gleam/uri_test"/utf8>>,
function => <<"percent_decode_consistency_test"/utf8>>,
line => 393})
end,
gleam@should:equal(Parsed@1, [{Decoded_key@1, Decoded_value@1}]).
-spec parse_segments_test() -> nil.
parse_segments_test() ->
gleam@should:equal(gleam@uri:path_segments(<<"/"/utf8>>), []),
gleam@should:equal(
gleam@uri:path_segments(<<"/weebl/bob"/utf8>>),
[<<"weebl"/utf8>>, <<"bob"/utf8>>]
),
gleam@should:equal(gleam@uri:path_segments(<<"////"/utf8>>), []),
gleam@should:equal(
gleam@uri:path_segments(<<"/weebl//bob"/utf8>>),
[<<"weebl"/utf8>>, <<"bob"/utf8>>]
),
gleam@should:equal(gleam@uri:path_segments(<<"/."/utf8>>), []),
gleam@should:equal(
gleam@uri:path_segments(<<"/.weebl"/utf8>>),
[<<".weebl"/utf8>>]
),
gleam@should:equal(
gleam@uri:path_segments(<<"/../bob"/utf8>>),
[<<"bob"/utf8>>]
),
gleam@should:equal(
gleam@uri:path_segments(<<"../bob"/utf8>>),
[<<"bob"/utf8>>]
),
gleam@should:equal(
gleam@uri:path_segments(<<"/weebl/../bob"/utf8>>),
[<<"bob"/utf8>>]
).
-spec origin1_test() -> nil.
origin1_test() ->
{ok, Parsed@1} = case gleam@uri:parse(
<<"http://example.test/path?weebl#bob"/utf8>>
) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin1_test"/utf8>>,
line => 413})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {ok, <<"http://example.test/"/utf8>>}).
-spec origin2_test() -> nil.
origin2_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"http://example.test:8080"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin2_test"/utf8>>,
line => 419})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {ok, <<"http://example.test:8080/"/utf8>>}).
-spec origin3_test() -> nil.
origin3_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"https://example.test"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin3_test"/utf8>>,
line => 425})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {ok, <<"https://example.test/"/utf8>>}).
-spec origin4_test() -> nil.
origin4_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"http:///path"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin4_test"/utf8>>,
line => 431})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {ok, <<"http://"/utf8>>}).
-spec origin5_test() -> nil.
origin5_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"http://"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin5_test"/utf8>>,
line => 437})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {ok, <<"http://"/utf8>>}).
-spec origin6_test() -> nil.
origin6_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"/path"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin6_test"/utf8>>,
line => 443})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {error, nil}).
-spec origin7_test() -> nil.
origin7_test() ->
{ok, Parsed@1} = case gleam@uri:parse(<<"file:///dev/null"/utf8>>) of
{ok, Parsed} -> {ok, Parsed};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"origin7_test"/utf8>>,
line => 449})
end,
_pipe = gleam@uri:origin(Parsed@1),
gleam@should:equal(_pipe, {error, nil}).
-spec merge1_test() -> nil.
merge1_test() ->
{ok, A@1} = case gleam@uri:parse(<<"/relative"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge1_test"/utf8>>,
line => 455})
end,
{ok, B@1} = case gleam@uri:parse(<<""/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge1_test"/utf8>>,
line => 456})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(_pipe, {error, nil}).
-spec merge2_test() -> nil.
merge2_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://google.com/weebl"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge2_test"/utf8>>,
line => 462})
end,
{ok, B@1} = case gleam@uri:parse(<<"http://example.com/baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge2_test"/utf8>>,
line => 463})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge3_test() -> nil.
merge3_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://google.com/weebl"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge3_test"/utf8>>,
line => 469})
end,
{ok, B@1} = case gleam@uri:parse(
<<"http://example.com/.././bob/../../baz"/utf8>>
) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge3_test"/utf8>>,
line => 470})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge4_test() -> nil.
merge4_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://google.com/weebl"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge4_test"/utf8>>,
line => 476})
end,
{ok, B@1} = case gleam@uri:parse(<<"//example.com/baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge4_test"/utf8>>,
line => 477})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge5_test() -> nil.
merge5_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://google.com/weebl"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge5_test"/utf8>>,
line => 483})
end,
{ok, B@1} = case gleam@uri:parse(
<<"//example.com/.././bob/../../../baz"/utf8>>
) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge5_test"/utf8>>,
line => 484})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge6_test() -> nil.
merge6_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge6_test"/utf8>>,
line => 490})
end,
{ok, B@1} = case gleam@uri:parse(<<"/baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge6_test"/utf8>>,
line => 491})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge7_test() -> nil.
merge7_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge7_test"/utf8>>,
line => 497})
end,
{ok, B@1} = case gleam@uri:parse(<<"baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge7_test"/utf8>>,
line => 498})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/baz"/utf8>>)
).
-spec merge8_test() -> nil.
merge8_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge8_test"/utf8>>,
line => 504})
end,
{ok, B@1} = case gleam@uri:parse(<<"baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge8_test"/utf8>>,
line => 505})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/baz"/utf8>>)
).
-spec merge9_test() -> nil.
merge9_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge9_test"/utf8>>,
line => 511})
end,
{ok, B@1} = case gleam@uri:parse(<<"baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge9_test"/utf8>>,
line => 512})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge10_test() -> nil.
merge10_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge10_test"/utf8>>,
line => 518})
end,
{ok, B@1} = case gleam@uri:parse(<<"/.././bob/../../../baz"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge10_test"/utf8>>,
line => 519})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/baz"/utf8>>)
).
-spec merge11_test() -> nil.
merge11_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge11_test"/utf8>>,
line => 525})
end,
{ok, B@1} = case gleam@uri:parse(<<""/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge11_test"/utf8>>,
line => 526})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>)
).
-spec merge12_test() -> nil.
merge12_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge12_test"/utf8>>,
line => 532})
end,
{ok, B@1} = case gleam@uri:parse(<<"#fragment"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge12_test"/utf8>>,
line => 533})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/bob#fragment"/utf8>>)
).
-spec merge13_test() -> nil.
merge13_test() ->
{ok, A@1} = case gleam@uri:parse(<<"http://example.com/weebl/bob"/utf8>>) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge13_test"/utf8>>,
line => 539})
end,
{ok, B@1} = case gleam@uri:parse(<<"?query"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge13_test"/utf8>>,
line => 540})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/bob?query"/utf8>>)
).
-spec merge14_test() -> nil.
merge14_test() ->
{ok, A@1} = case gleam@uri:parse(
<<"http://example.com/weebl/bob?query1"/utf8>>
) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge14_test"/utf8>>,
line => 546})
end,
{ok, B@1} = case gleam@uri:parse(<<"?query2"/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge14_test"/utf8>>,
line => 547})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/bob?query2"/utf8>>)
).
-spec merge15_test() -> nil.
merge15_test() ->
{ok, A@1} = case gleam@uri:parse(
<<"http://example.com/weebl/bob?query"/utf8>>
) of
{ok, A} -> {ok, A};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge15_test"/utf8>>,
line => 553})
end,
{ok, B@1} = case gleam@uri:parse(<<""/utf8>>) of
{ok, B} -> {ok, B};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam/uri_test"/utf8>>,
function => <<"merge15_test"/utf8>>,
line => 554})
end,
_pipe = gleam@uri:merge(A@1, B@1),
gleam@should:equal(
_pipe,
gleam@uri:parse(<<"http://example.com/weebl/bob?query"/utf8>>)
).