39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			V
		
	
	
// Copyright (c) 2019-2020 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¶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' &&
 | 
						||
		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
 | 
						||
}
 |