Module:Delink/testcases
< Module:Delink
Jump to navigation
Jump to search
Revision as of 15:02, 3 April 2013 by blackwiki>Mr. Stradivarius (add more improbable tests)
Documentation for this module may be created at Module:Delink/testcases/doc
local p = require('Module:UnitTests')
function p:test_basic()
self:preprocess_equals('{{#invoke:Delink|delink|[[Apple]]}}', 'Apple')
self:preprocess_equals('{{#invoke:Delink|delink|[[Orange]]s are dissimilar to [[Apple]]s}}', 'Oranges are dissimilar to Apples')
self:preprocess_equals('{{#invoke:Delink|delink|[[Apple]]s and [[orange]]s and [[fruit salad|other kinds of fruit]]}}', 'Apples and oranges and other kinds of fruit')
self:preprocess_equals('{{#invoke:Delink|delink|All [[Gone]] [[wikt:to|]] [[Bed]] [[Now]]}}', 'All Gone to Bed Now')
self:preprocess_equals('{{#invoke:Delink|delink|[[Survey]] of [http://books.google.com Google Books] on [[UK|Britain]]}}', 'Survey of Google Books on Britain')
end
function p:test_cats_and_interwikis()
self:preprocess_equals('{{#invoke:Delink|delink|[[Category:Foo]]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[[es:Foo]]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[[wikt:Foo]]}}', 'wikt:Foo')
self:preprocess_equals('{{#invoke:Delink|delink|[[es:Wikipedia:Políticas]]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[[abcd:efgh:ijkl]]}}', 'abcd:efgh:ijkl')
self:preprocess_equals('{{#invoke:Delink|delink|[[cbk-zam:abcd:efgh]]}}', '')
end
function p:test_colontrick()
self:preprocess_equals('{{#invoke:Delink|delink|[[:Category:Foo]]}}', 'Category:Foo')
self:preprocess_equals('{{#invoke:Delink|delink|[[:es:Foo]]}}', 'es:Foo')
self:preprocess_equals('{{#invoke:Delink|delink|[[:wikt:Foo]]}}', 'wikt:Foo')
self:preprocess_equals('{{#invoke:Delink|delink|[[:es:Wikipedia:Políticas]]}}', 'es:Wikipedia:Políticas')
self:preprocess_equals('{{#invoke:Delink|delink|[[:abcd:efgh:ijkl]]}}', 'abcd:efgh:ijkl')
self:preprocess_equals('{{#invoke:Delink|delink|[[:cbk-zam:abcd:efgh]]}}', 'cbk-zam:abcd:efgh')
end
function p:test_pipetrick()
self:preprocess_equals('{{#invoke:Delink|delink|[[Pipe (computing)|]]}}', 'Pipe')
self:preprocess_equals('{{#invoke:Delink|delink|[[Boston, Massachusetts|]]}}', 'Boston')
self:preprocess_equals('{{#invoke:Delink|delink|[[Wikipedia:Verifiability|]]}}', 'Verifiability')
self:preprocess_equals('{{#invoke:Delink|delink|[[User:Example|]]}}', 'Example')
self:preprocess_equals('{{#invoke:Delink|delink|[[Template:Welcome|]]}}', 'Welcome')
self:preprocess_equals('{{#invoke:Delink|delink|[[Yours, Mine and Ours (1968 film)|]]}}', 'Yours, Mine and Ours')
self:preprocess_equals('{{#invoke:Delink|delink|[[:es:Wikipedia:Políticas|]]}}', 'Wikipedia:Políticas')
self:preprocess_equals('{{#invoke:Delink|delink|[[Il Buono, il Brutto, il Cattivo|]]}}', 'Il Buono')
self:preprocess_equals('{{#invoke:Delink|delink|[[Wikipedia:Manual of Style (Persian)|]]}}', 'Manual of Style')
self:preprocess_equals('{{#invoke:Delink|delink|[[Wikipedia:Manual of Style(Persian)|]]}}', 'Manual of Style')
end
function p:test_badlinks()
self:preprocess_equals('{{#invoke:Delink|delink|[[<]]}}', '[[<]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[Category:<]]}}', '[[Category:<]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[:Category:<]]}}', '[[:Category:<]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[:Category:<|Foo]]}}', '[[:Category:<|Foo]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[:Category:<|]]}}', '[[:Category:<|]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[:Category:Foo|<]]}}', '<')
self:preprocess_equals('{{#invoke:Delink|delink|[[Category:Foo|<]]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo:Bar|<]]}}', '<')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo:Bar:>]]}}', '[[Foo:Bar:>]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[es:Wikipedia:<]]}}', '[[es:Wikipedia:<]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[es:Wikipedia:Foo|<]]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[[:es:Wikipedia:<]]}}', '[[:es:Wikipedia:<]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[:es:Wikipedia:Foo|<]]}}', '<')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo:Bar:Foo#>]]}}', 'Foo:Bar:Foo#>')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo:Bar:Foo>#Baz]]}}', '[[Foo:Bar:Foo>#Baz]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo#Bar>#Baz]]}}', 'Foo#Bar>#Baz')
self:preprocess_equals('{{#invoke:Delink|delink|[[Foo>#Bar#Baz]]}}', '[[Foo>#Bar#Baz]]')
self:preprocess_equals('{{#invoke:Delink|delink|[[wikt:es:asdf:�Template:title#Fragment]]}}', '[[wikt:es:asdf:�Template:title#Fragment]]')
end
function p:test_URI()
self:preprocess_equals('{{#invoke:Delink|delink|[/foo]}}', '[/foo]')
self:preprocess_equals('{{#invoke:Delink|delink|[/foo bar]}}', '[/foo bar]')
self:preprocess_equals('{{#invoke:Delink|delink|[//foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[//foo bar]}}', 'bar')
self:preprocess_equals('{{#invoke:Delink|delink|[///foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[///foo bar]}}', 'bar')
self:preprocess_equals('{{#invoke:Delink|delink|[////foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[////foo bar]}}', 'bar')
self:preprocess_equals('{{#invoke:Delink|delink|[///////////////////////////////////foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[///////////////////////////////////foo bar]}}', 'bar')
self:preprocess_equals('{{#invoke:Delink|delink|[://foo]}}', '[://foo]')
self:preprocess_equals('{{#invoke:Delink|delink|[:://foo]}}', '[:://foo]')
self:preprocess_equals('{{#invoke:Delink|delink|[abcd://]}}', '[abcd://]')
self:preprocess_equals('{{#invoke:Delink|delink|[abcd://foo]}}', '[abcd://foo]')
self:preprocess_equals('{{#invoke:Delink|delink|[http://]}}', '[http://]')
self:preprocess_equals('{{#invoke:Delink|delink|[http://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[https://]}}', '[https://]')
self:preprocess_equals('{{#invoke:Delink|delink|[https://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[ftp://]}}', '[ftp://]')
self:preprocess_equals('{{#invoke:Delink|delink|[ftp://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[gopher://]}}', '[gopher://]')
self:preprocess_equals('{{#invoke:Delink|delink|[gopher://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[mailto:]}}', '[mailto:]')
self:preprocess_equals('{{#invoke:Delink|delink|[mailto:foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[news]}}', '[news]')
self:preprocess_equals('{{#invoke:Delink|delink|[news at ten]}}', '[news at ten]')
self:preprocess_equals('{{#invoke:Delink|delink|[news:]}}', '[news:]')
self:preprocess_equals('{{#invoke:Delink|delink|[news: at ten]}}', '[news: at ten]')
self:preprocess_equals('{{#invoke:Delink|delink|[news:/]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[news:/ at ten]}}', 'at ten')
self:preprocess_equals('{{#invoke:Delink|delink|[news://]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[news://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[news://foo at ten]}}', 'at ten')
self:preprocess_equals('{{#invoke:Delink|delink|[irc://]}}', '[irc://]')
self:preprocess_equals('{{#invoke:Delink|delink|[irc://foo]}}', '')
self:preprocess_equals('{{#invoke:Delink|delink|[:http://foo]}}', '[:http://foo]')
self:preprocess_equals('{{#invoke:Delink|delink|[http://<foo]}}', '<foo')
end
return p