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:
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user