# Module:URL/testcases

-- Unit tests for Module:URL. Click talk page to run tests.
local p = require('Module:UnitTests')  
function p:test_url
local cases = {
'',
'',
'',
}
text = self.:expandTemplate{ title = 'tlx', args = { 'URL', "*example.com*", "*optional display text*" } }
for _, case in ipairs(cases) do
self:preprocess_equals(case, text)
end  
cases = {
{'http://www.example.com/foo/bar?a=b&c=d', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar?a=b&c=d'},
{'EXAMPLE.com', 'example<wbr/>.com'},
{'example.com', 'example<wbr/>.com'},
{'www.example.com', 'www<wbr/>.example<wbr/>.com'},
{'http://www.example.com', 'www<wbr/>.example<wbr/>.com'},
{'https://www.example.com', 'www<wbr/>.example<wbr/>.com'},
{'ftp://www.example.com', 'www<wbr/>.example<wbr/>.com'},
{'//www.example.com', '[//www.example.com www<wbr/>.example<wbr/>.com]'},
{'ftp://ftp.example.com', 'ftp<wbr/>.example<wbr/>.com'},
{'http://www.example.com/', 'www<wbr/>.example<wbr/>.com'},
{'http://www.example.com/path', 'www<wbr/>.example<wbr/>.com<wbr/>/path'},
{'www.example.com/foo', 'www<wbr/>.example<wbr/>.com<wbr/>/foo'},
{'http://www.example.com/foo | link', 'link'},
{'www.example.com/foo | link', 'link'},
{'http://www.example.com/path/', 'www<wbr/>.example<wbr/>.com<wbr/>/path<wbr/>/'},
{'www.example.com/foo/', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/'},
{'1=http://www.example.com/path?section=17', 'www<wbr/>.example<wbr/>.com<wbr/>/path?section=17'},
{'1=www.example.com/foo?page=42 ', 'www<wbr/>.example<wbr/>.com<wbr/>/foo?page=42'},
{'http://www.example.com/foo/ | link', 'link'},
{'www.example.com/foo/ | link', 'link'},  
-- From Template:URL/testcases (and not already listed above)
{'http://', '[http:// ]'},
{'WWW.EXAMPLE.COM', 'www<wbr/>.example<wbr/>.com'},
{'https://www.EXAMPLE.cOm', 'www<wbr/>.example<wbr/>.com'},
{'HTTPS://www.EXAMPLE.cOm/', '[HTTPS://www.EXAMPLE.cOm/ www<wbr/>.example<wbr/>.com]'},
{'https://www.example.com/', 'www<wbr/>.example<wbr/>.com'},
{'http://example.com', 'example<wbr/>.com'},
{'https://example.com', 'example<wbr/>.com'},
{'ftp://example.com', 'example<wbr/>.com'},
{'http://www.example.com/foo/bar', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'http://www.example.com/foo/bar/', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar<wbr/>/'},
{'http://www.example.com/foO/BaR', 'www<wbr/>.example<wbr/>.com<wbr/>/foO<wbr/>/BaR'},
{'https://www.example.com/foo/bar', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'http://example.com/foo/bar', 'example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'https://example.com/foo/bar', 'example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'example.com/foo/bar', 'example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'www.example.com/foo/bar', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'http://example.com/foo/bar | ', 'example<wbr/>.com<wbr/>/foo<wbr/>/bar'},
{'1=http://www.example.com?foo=BaR', 'www<wbr/>.example<wbr/>.com?foo=BaR'},
{'http://www.example.com#fooBaR', 'www<wbr/>.example<wbr/>.com<wbr/>#fooBaR'},
{'http://www.example.com:8080', 'www<wbr/>.example<wbr/>.com:8080'},
{'http://www.example.com:8080/foo/bar', 'www<wbr/>.example<wbr/>.com:8080<wbr/>/foo<wbr/>/bar'},
{'www.example.com:8080', 'www<wbr/>.example<wbr/>.com:8080'},
{'www.example.com:8080/foo/bar', 'www<wbr/>.example<wbr/>.com:8080<wbr/>/foo<wbr/>/bar'},
{'http://www.example.com/foo bar', 'www<wbr/>.example<wbr/>.com<wbr/>/foo%20bar'},
{'www.example.com/foo bar', 'www<wbr/>.example<wbr/>.com<wbr/>/foo%20bar'},
{'http://example.com/foo/bar | link', 'link'},
{'https://example.com/foo/bar | link', 'link'},
{'example.com/foo/bar | link', 'link'},
{'www.example.com/foo/bar | link', 'link'},
{'www.example.com/foo/bar | 捦挺挎', '捦挺挎'},
{'www.example.com/foo/捦挺挎/bar | link', 'link'},
{'عمان.icom.museum', 'عمان<wbr/>.icom<wbr/>.museum'},
{'http://عمان.icom.museum', 'عمان<wbr/>.icom<wbr/>.museum'},
{'1964thetribute.com', '1964thetribute<wbr/>.com'},
{'1964thetribute.com | 1964thetribute.com', '1964thetribute<wbr/>.com'},
{'1= http://www.example.com/foo/bar?a=b&c=d', 'www<wbr/>.example<wbr/>.com<wbr/>/foo<wbr/>/bar?a=b&c=d'},
{'1=www.hti.umich.edu/cgi/t/text/pageviewer-idx?c=umhistmath;cc=umhistmath;rgn=full%20text;idno=ABS3153.0001.001;didno=ABS3153.0001.001;view=image;seq=00000140',
'www<wbr/>.hti<wbr/>.umich<wbr/>.edu<wbr/>/cgi<wbr/>/t<wbr/>/text<wbr/>/pageviewer-idx?c=umhistmath%3Bcc%3Dumhistmath%3Brgn%3Dfull+text%3Bidno%3DABS3153<wbr/>.0001<wbr/>.001%3Bdidno%3DABS3153<wbr/>.0001<wbr/>.001%3Bview%3Dimage%3Bseq%3D00000140'},
{'http://www.sho.com/site/dexter/home.sho | \'\'Dexter\'\'s official website',
'\'\'Dexter\'\'<span>&#39;</span>s official website' },
}  
for _, case in ipairs(cases) do
self:preprocess_equals('', '<span>' .. case[2] .. '</span>', {nowiki=true})
end  
self:preprocess_equals('', 'example.com', {nowiki=true})
self:preprocess_equals('', 'http://example.com/foo', {nowiki=true})
end  
return p