aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/net/urllib/urllib_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/vlib/net/urllib/urllib_test.v')
-rw-r--r--v_windows/v/vlib/net/urllib/urllib_test.v51
1 files changed, 51 insertions, 0 deletions
diff --git a/v_windows/v/vlib/net/urllib/urllib_test.v b/v_windows/v/vlib/net/urllib/urllib_test.v
new file mode 100644
index 0000000..0870c81
--- /dev/null
+++ b/v_windows/v/vlib/net/urllib/urllib_test.v
@@ -0,0 +1,51 @@
+// Copyright (c) 2019-2021 Alexander Medvednikov. All rights reserved.
+// Use of this source code is governed by an MIT license
+// that can be found in the LICENSE file.
+import net.urllib
+
+fn test_net_urllib() {
+ 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&param2=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' && u.user.username == 'joe'
+ && u.user.password == 'pass'
+}
+
+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)'
+}
+
+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
+}
+
+fn test_parse_query() ? {
+ q1 := urllib.parse_query('format=%22%25l%3A+%25c+%25t%22') ?
+ 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"']
+}
+
+fn test_parse_missing_host() ? {
+ // issue #10311
+ url := urllib.parse('http:///') ?
+ assert url.str() == 'http://///'
+}