1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

net.urllib: keep the query parameter order (#13405)

This commit is contained in:
Vincenzo Palazzo
2022-02-09 16:36:12 +01:00
committed by GitHub
parent 4be3c92640
commit 0d1d259bb4
5 changed files with 134 additions and 49 deletions

View File

@ -40,8 +40,14 @@ fn test_parse_query() ? {
q2 := urllib.parse_query('format="%l:+%c+%t"') ?
// dump(q1)
// dump(q2)
assert q1.data['format'].data == ['"%l: %c %t"']
assert q2.data['format'].data == ['"%l: %c %t"']
assert q1.get('format') == '"%l: %c %t"'
assert q2.get('format') == '"%l: %c %t"'
}
fn test_parse_query_orders() ? {
query_one := urllib.parse_query('https://someapi.com/endpoint?gamma=zalibaba&tau=1&alpha=alibaba&signature=alibaba123') ?
qvalues := query_one.values()
assert qvalues == ['zalibaba', '1', 'alibaba', 'alibaba123']
}
fn test_parse_missing_host() ? {
@ -49,3 +55,46 @@ fn test_parse_missing_host() ? {
url := urllib.parse('http:///') ?
assert url.str() == 'http://///'
}
// testing the case where the key as a null value
// e.g ?key=
fn test_parse_none_value() ? {
query_one := urllib.parse_query('gamma=zalibaba&tau=1&alpha=alibaba&signature=') ?
qvalues := query_one.values()
qvalues_map := query_one.to_map()
assert qvalues == ['zalibaba', '1', 'alibaba']
assert qvalues_map == {
'gamma': ['zalibaba']
'tau': ['1']
'alpha': ['alibaba']
'signature': ['']
}
}
// testing the case where the query as empity value
// e.g https://www.vlang.dev?alibaba
fn test_parse_empty_query_one() ? {
query_str := 'alibaba'
query_one := urllib.parse_query(query_str) ?
qvalues := query_one.values()
qvalues_map := query_one.to_map()
query_encode := query_one.encode()
assert qvalues == []
assert qvalues_map == {
'alibaba': ['']
}
assert query_str == query_encode
}
// testing the case where the query as empity value
// e.g https://www.vlang.dev?
fn test_parse_empty_query_two() ? {
query_str := ''
query_one := urllib.parse_query(query_str) ?
qvalues := query_one.values()
qvalues_map := query_one.to_map()
query_encode := query_one.encode()
assert qvalues == []
assert qvalues_map == {}
assert query_str == query_encode
}