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 = {
'{{#invoke:URL/sandbox|url}}',
'{{#invoke:URL/sandbox|url|}}',
'{{#invoke:URL/sandbox|url||}}',
}
text = self.frame: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', '[http://www.example.com/foo/bar?a=b&c=d www
{'EXAMPLE.com', '[http://EXAMPLE.com example
{'example.com', '[http://example.com example
{'www.example.com', '[http://www.example.com www
{'http://www.example.com', '[http://www.example.com www
{'https://www.example.com', '[https://www.example.com www
{'ftp://www.example.com', '[ftp://www.example.com www
{'//www.example.com', '[//www.example.com www
{'ftp://ftp.example.com', '[ftp://ftp.example.com ftp
{'http://www.example.com/', '[http://www.example.com/ www
{'http://www.example.com/path', '[http://www.example.com/path www
{'www.example.com/foo', '[http://www.example.com/foo www
{'http://www.example.com/foo | link', '[http://www.example.com/foo link]'},
{'www.example.com/foo | link', '[http://www.example.com/foo link]'},
{'http://www.example.com/path/', '[http://www.example.com/path/ www
{'www.example.com/foo/', '[http://www.example.com/foo/ www
{'1=http://www.example.com/path?section=17', '[http://www.example.com/path?section=17 www
{'1=www.example.com/foo?page=42 ', '[http://www.example.com/foo?page=42 www
{'http://www.example.com/foo/ | link', '[http://www.example.com/foo/ link]'},
{'www.example.com/foo/ | link', '[http://www.example.com/foo/ link]'},
-- From Template:URL/testcases (and not already listed above)
{'http://', '[http:// ]'},
{'WWW.EXAMPLE.COM', '[http://WWW.EXAMPLE.COM www
{'https://www.EXAMPLE.cOm', '[https://www.EXAMPLE.cOm www
{'HTTPS://www.EXAMPLE.cOm/', '[HTTPS://www.EXAMPLE.cOm/ www
{'https://www.example.com/', '[https://www.example.com/ www
{'http://example.com', '[http://example.com example
{'https://example.com', '[https://example.com example
{'ftp://example.com', '[ftp://example.com example
{'http://www.example.com/foo/bar', '[http://www.example.com/foo/bar www
{'http://www.example.com/foo/bar/', '[http://www.example.com/foo/bar/ www
{'http://www.example.com/foO/BaR', '[http://www.example.com/foO/BaR www
{'https://www.example.com/foo/bar', '[https://www.example.com/foo/bar www
{'http://example.com/foo/bar', '[http://example.com/foo/bar example
{'https://example.com/foo/bar', '[https://example.com/foo/bar example
{'example.com/foo/bar', '[http://example.com/foo/bar example
{'www.example.com/foo/bar', '[http://www.example.com/foo/bar www
{'http://example.com/foo/bar | ', '[http://example.com/foo/bar example
{'1=http://www.example.com?foo=BaR', '[http://www.example.com?foo=BaR www
{'http://www.example.com#fooBaR', '[http://www.example.com#fooBaR www
{'http://www.example.com:8080', '[http://www.example.com:8080 www
{'http://www.example.com:8080/foo/bar', '[http://www.example.com:8080/foo/bar www
{'www.example.com:8080', '[http://www.example.com:8080 www
{'www.example.com:8080/foo/bar', '[http://www.example.com:8080/foo/bar www
{'http://www.example.com/foo bar', '[http://www.example.com/foo%20bar www
{'www.example.com/foo bar', '[http://www.example.com/foo%20bar www
{'http://example.com/foo/bar | link', '[http://example.com/foo/bar link]'},
{'https://example.com/foo/bar | link', '[https://example.com/foo/bar link]'},
{'example.com/foo/bar | link', '[http://example.com/foo/bar link]'},
{'www.example.com/foo/bar | link', '[http://www.example.com/foo/bar link]'},
{'www.example.com/foo/bar | 捦挺挎', '[http://www.example.com/foo/bar 捦挺挎]'},
{'www.example.com/foo/捦挺挎/bar | link', '[http://www.example.com/foo/捦挺挎/bar link]'},
{'عمان.icom.museum', '[http://عمان.icom.museum عمان
{'http://عمان.icom.museum', '[http://عمان.icom.museum عمان
{'1964thetribute.com', '[http://1964thetribute.com 1964thetribute
{'1964thetribute.com | 1964thetribute.com', '[http://1964thetribute.com 1964thetribute
{'1= http://www.example.com/foo/bar?a=b&c=d', '[http://www.example.com/foo/bar?a=b&c=d www
{'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',
'[http://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
{'http://www.sho.com/site/dexter/home.sho | \'\'Dexter\'\'{{\'}}s official website',
'[http://www.sho.com/site/dexter/home.sho \'\'Dexter\'\''s official website]' },
}
for _, case in ipairs(cases) do
self:preprocess_equals('{{#invoke:URL/sandbox|url|' .. case[1] .. '}}', '' .. case[2] .. '', {nowiki=true})
end
self:preprocess_equals('{{#invoke:URL/sandbox|url|2= example.com}}', 'example.com', {nowiki=true})
self:preprocess_equals('{{#invoke:URL/sandbox|url|2= http://example.com/foo}}', 'http://example.com/foo', {nowiki=true})
end
return p