Modul:URL/testcases

Fra Wikipedia, den frie encyklopædi
Dette er siden til testcases for modulet Modul:URL. Vis resultatet af testen.
-- Unit tests for [[Module:URL]]. Click talk page to run tests.
local p = require('Module:UnitTests')
 
function p:test_url()
    local cases = {
        '{{#invoke:URL|url}}',
        '{{#invoke:URL|url|}}',
        '{{#invoke:URL|url||}}',
        '{{#invoke:URL|url|http://www.example.com/foo/bar?a=b&c=d}}',
    }
    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 = {
        {'EXAMPLE.com', '[http://EXAMPLE.com example.com]'},
        {'example.com', '[http://example.com example.com]'},
        {'www.example.com', '[http://www.example.com www.example.com]'},
        {'http://www.example.com', '[http://www.example.com www.example.com]'},
        {'https://www.example.com', '[https://www.example.com www.example.com]'},
        {'ftp://www.example.com', '[ftp://www.example.com www.example.com]'},
        {'ftp://ftp.example.com', '[ftp://ftp.example.com ftp.example.com]'},
        {'http://www.example.com/', '[http://www.example.com/ www.example.com]'},
        {'http://www.example.com/path', '[http://www.example.com/path www.example.com/path]'},
        {'www.example.com/foo', '[http://www.example.com/foo www.example.com/foo]'},
        {'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.example.com/path/]'},
        {'www.example.com/foo/', '[http://www.example.com/foo/ www.example.com/foo/]'},
        {'1=http://www.example.com/path?section=17', '[http://www.example.com/path?section=17 www.example.com/path?section=17]'},
        {'1=www.example.com/foo?page=42 ', '[http://www.example.com/foo?page=42 www.example.com/foo?page=42]'},
        {'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.example.com]'},
        {'https://www.EXAMPLE.cOm', '[https://www.EXAMPLE.cOm www.example.com]'},
        {'HTTPS://www.EXAMPLE.cOm/', '[HTTPS://www.EXAMPLE.cOm/ www.example.com]'},
        {'https://www.example.com/', '[https://www.example.com/ www.example.com]'},
        {'http://example.com', '[http://example.com example.com]'},
        {'https://example.com', '[https://example.com example.com]'},
        {'ftp://example.com', '[ftp://example.com example.com]'},
        {'http://www.example.com/foo/bar', '[http://www.example.com/foo/bar www.example.com/foo/bar]'},
        {'http://www.example.com/foo/bar/', '[http://www.example.com/foo/bar/ www.example.com/foo/bar/]'},
        {'http://www.example.com/foO/BaR', '[http://www.example.com/foO/BaR www.example.com/foO/BaR]'},
        {'https://www.example.com/foo/bar', '[https://www.example.com/foo/bar www.example.com/foo/bar]'},
        {'http://example.com/foo/bar', '[http://example.com/foo/bar example.com/foo/bar]'},
        {'https://example.com/foo/bar', '[https://example.com/foo/bar example.com/foo/bar]'},
        {'example.com/foo/bar', '[http://example.com/foo/bar example.com/foo/bar]'},
        {'www.example.com/foo/bar', '[http://www.example.com/foo/bar www.example.com/foo/bar]'},
        {'http://example.com/foo/bar | ', '[http://example.com/foo/bar example.com/foo/bar]'},
        {'1=http://www.example.com?foo=BaR', '[http://www.example.com?foo=BaR www.example.com?foo=BaR]'},
        {'http://www.example.com#fooBaR', '[http://www.example.com#fooBaR www.example.com#fooBaR]'},
        {'http://www.example.com:8080', '[http://www.example.com:8080 www.example.com:8080]'},
        {'http://www.example.com:8080/foo/bar', '[http://www.example.com:8080/foo/bar www.example.com:8080/foo/bar]'},
        {'www.example.com:8080', '[http://www.example.com:8080 www.example.com:8080]'},
        {'www.example.com:8080/foo/bar', '[http://www.example.com:8080/foo/bar www.example.com:8080/foo/bar]'},
        {'http://www.example.com/foo bar', '[http://www.example.com/foo%20bar www.example.com/foo%20bar]'},
        {'www.example.com/foo bar', '[http://www.example.com/foo%20bar www.example.com/foo%20bar]'},
        {'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 عمان.icom.museum]'},
        {'http://عمان.icom.museum', '[http://عمان.icom.museum عمان.icom.museum]'},
        {'1964thetribute.com', '[http://1964thetribute.com 1964thetribute.com]'},
        {'1964thetribute.com | 1964thetribute.com', '[http://1964thetribute.com 1964thetribute.com]'},
        {'1= http://www.example.com/foo/bar?a=b&c=d', '[http://www.example.com/foo/bar?a=b&c=d www.example.com/foo/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',
            '[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.hti.umich.edu/cgi/t/text/pageviewer-idx?c=umhistmath%3Bcc%3Dumhistmath%3Brgn%3Dfull+text%3Bidno%3DABS3153.0001.001%3Bdidno%3DABS3153.0001.001%3Bview%3Dimage%3Bseq%3D00000140]'},
    }
    
    for _, case in ipairs(cases) do
        self:preprocess_equals('{{#invoke:URL|url|' .. case[1] .. '}}', '<span class="url">' .. case[2] .. '</span>', {nowiki=true})
    end

    self:preprocess_equals('{{#invoke:URL|url|2= example.com}}', 'example.com', {nowiki=true})
    self:preprocess_equals('{{#invoke:URL|url|2= http://example.com/foo}}', 'http://example.com/foo', {nowiki=true})
end

return p