local t = require('Modul:UnitTests')
local mut = require('Modul:link')
local lang = require('Modul:lang')
function t:test01_basic()
self:equals('mut.link("ord")', mut.link("ord"), "]", {nowiki=1})
end
function t:test02_special_cases()
self:equals('mut.link("-")', mut.link("-"), "–", {nowiki=1})
self:equals('mut.link("?")', mut.link("?"), "?", {nowiki=1})
self:equals('mut.link("")', mut.link(""), " ", {nowiki=1})
end
function t:test03_namespaces()
self:equals('mut.link(":Kategori:Index")', mut.link(":Kategori:Index"), "]", {nowiki=1})
self:equals('mut.link("w:Portal:Huvudsida")', mut.link("w:Portal:Huvudsida"), "]", {nowiki=1})
self:equals('mut.link(":en:Wiktionary:Main Page")', mut.link(":en:Wiktionary:Main Page"), "]", {nowiki=1})
end
function t:test04_links_with_special_chars()
self:equals('mut.link("abc#åäö")', mut.link("abc#åäö"), "]", {nowiki=1})
self:equals('mut.link("...")', mut.link("..."), "]", {nowiki=1})
self:equals('mut.link("(")', mut.link("("), "]", {nowiki=1})
self:equals('mut.link("\\\"")', mut.link("\""), "]", {nowiki=1})
end
function t:test05_phrases()
self:equals('mut.link("compound word")', mut.link("compound word"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
end
function t:test06_multiword()
self:equals('mut.link("<nowiki>ord1, ord2</nowiki>")', mut.link("ord1, ord2"), "], ]", {nowiki=1})
self:equals('mut.link("<nowiki>], ord2</nowiki>")', mut.link("], ord2"), "], ]", {nowiki=1})
self:equals('mut.link("<nowiki>], ord1, ]</nowiki>")', mut.link("], ord1, ord2"), "], ], ]", {nowiki=1})
end
function t:test07_already_linked_should_not_double_link()
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]<sup>1</sup></nowiki>")', mut.link("]<sup>1</sup>"), "]<sup>1</sup>", {nowiki=1})
end
function t:test08_invalid_titles()
self:equals('mut.link(".")', mut.link("."), ".", {nowiki=1})
self:equals('mut.link("..")', mut.link(".."), "..", {nowiki=1})
self:equals('mut.link(":")', mut.link(":"), ":", {nowiki=1})
self:equals('mut.link("> abc")', mut.link("> abc"), "> abc", {nowiki=1})
end
function t:test09_anchors()
self:equals('mut.link("<nowiki>]", "en</nowiki>")', mut.link("]","en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>ord", "en</nowiki>")', mut.link("ord", "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>], ord2", "en</nowiki>")', mut.link("], ord2", "en"), "], ]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "en</nowiki>")', mut.link("]","en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "en</nowiki>")', mut.link("]","en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "en</nowiki>")', mut.link("]","en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]s", "sv</nowiki>")', mut.link("]s","sv"), "]s", {nowiki=1})
self:equals('mut.link("<nowiki>]", "no</nowiki>")', mut.link("]","no"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>")', mut.link("]"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>", "en")', mut.link("]", "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>", "en")', mut.link("]", "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>", "en")', mut.link("]", "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]</nowiki>", "en")', mut.link("]", "en"), "]", {nowiki=1})
end
function t:test10_do_add_anchor_even_if_pagename_equals_word()
self:equals('mut.link("<nowiki>' .. mw.title.getCurrentTitle().text .. '", "en</nowiki>")', mut.link(mw.title.getCurrentTitle().text, "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "en</nowiki>")', mut.link("]", "en"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>' .. mw.title.getCurrentTitle().text .. ', ]", "en</nowiki>")', mut.link(mw.title.getCurrentTitle().text .. ", ]", "en"), "], ]", {nowiki=1})
end
function t:test11_entry_name_should_be_used()
self:equals('mut.link("<nowiki>abdērītānus", "la</nowiki>")', mut.link("abdērītānus", "la"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "la</nowiki>")', mut.link("]", "la"), "]", {nowiki=1})
self:equals('mut.link("<nowiki>]", "la</nowiki>")', mut.link("]", "la"), "]", {nowiki=1})
end
function t:test12_multiword_with_anchors()
self:equals('mut.link("<nowiki>] ]s</nowiki>", "en")', mut.link("] ]s", "en"), "] ]s", {nowiki=1})
self:equals('mut.link("<nowiki>] ]", "la</nowiki>")', mut.link("] ]", "la"), "]" .. " ]", {nowiki=1})
self:equals('mut.link("<nowiki>] ]", "la</nowiki>")', mut.link("] ]", "la"), "]" .. " ]", {nowiki=1})
end
return t