2020-01-23 21:04:46 +01:00
|
|
|
|
// Copyright (c) 2019-2020 Alexander Medvednikov. All rights reserved.
|
2019-08-01 15:01:03 +02:00
|
|
|
|
// Use of this source code is governed by an MIT license
|
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
|
|
import net.urllib
|
|
|
|
|
|
2019-08-12 08:48:34 +02:00
|
|
|
|
fn test_net_urllib() {
|
2019-08-01 15:01:03 +02:00
|
|
|
|
test_query := 'Hellö Wörld@vlang'
|
|
|
|
|
assert urllib.query_escape(test_query) == 'Hell%C3%B6+W%C3%B6rld%40vlang'
|
|
|
|
|
|
|
|
|
|
test_url := 'https://joe:pass@www.mydomain.com:8080/som/url?param1=test1¶m2=test2&foo=bar#testfragment'
|
|
|
|
|
u := urllib.parse(test_url) or {
|
|
|
|
|
assert false
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
assert u.scheme == 'https' &&
|
|
|
|
|
u.hostname() == 'www.mydomain.com' &&
|
|
|
|
|
u.port() == '8080' &&
|
|
|
|
|
u.path == '/som/url' &&
|
|
|
|
|
u.fragment == 'testfragment' &&
|
2019-11-06 20:35:56 +01:00
|
|
|
|
u.user.username == 'joe' &&
|
2019-08-01 15:01:03 +02:00
|
|
|
|
u.user.password == 'pass'
|
|
|
|
|
}
|
2019-11-06 20:35:56 +01:00
|
|
|
|
|
|
|
|
|
fn test_str() {
|
|
|
|
|
url := urllib.parse("https://en.wikipedia.org/wiki/Brazil_(1985_film)") or {
|
|
|
|
|
panic("unable to parse URL")
|
|
|
|
|
}
|
|
|
|
|
assert url.str() == 'https://en.wikipedia.org/wiki/Brazil_(1985_film)'
|
|
|
|
|
}
|
2020-01-16 18:16:11 +01:00
|
|
|
|
|
|
|
|
|
fn test_escape_unescape() {
|
|
|
|
|
original := 'те ст: т\\%'
|
|
|
|
|
escaped := urllib.query_escape(original)
|
|
|
|
|
assert escaped == '%D1%82%D0%B5+%D1%81%D1%82%3A+%D1%82%5C%25'
|
|
|
|
|
unescaped := urllib.query_unescape(escaped) or { assert false return }
|
|
|
|
|
assert unescaped == original
|
|
|
|
|
}
|