Moduuli:Kielilinkki/testit
Ulkoasu
Moduulin Kielilinkki/testit käyttöohje [näytä tämä käyttöohje omalla sivullaan] [muokkaa tätä käyttöohjetta] [päivitä] [testit] [hiekkalaatikko]
✓ Kaikki testit läpäisty.
Testi | Odotettu | Tulos | |
---|---|---|---|
✓ | testAutomaattilinkki | ||
✓ | testAutomaattilinkkiInvoke | ||
✓ | testLinkkiTaiNil | ||
✓ | testLisaparametritClass | ||
✓ | testLisaparametritElem | ||
✓ | testLisaparametritKuvaus | ||
✓ | testLisaparametritKuvausParam | ||
✓ | testPeruslinkki | ||
✓ | testPeruslinkkiInvoke | ||
✓ | testPeruslinkkiVaihtoehtoinenTapa |
✓ Kaikki testit läpäisty.
Testi | Odotettu | Tulos | |
---|---|---|---|
✓ | testAutomaattilinkki | ||
✓ | testAutomaattilinkkiInvoke | ||
✓ | testLinkkiTaiNil | ||
✓ | testLisaparametritClass | ||
✓ | testLisaparametritElem | ||
✓ | testLisaparametritKuvaus | ||
✓ | testLisaparametritKuvausParam | ||
✓ | testPeruslinkki | ||
✓ | testPeruslinkkiInvoke | ||
✓ | testPeruslinkkiVaihtoehtoinenTapa |
-- Unit tests for [[Module:Kielilinkki]]. Click talk page to run tests.
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local libName = 'Kielilinkki'
-- Helper to run all tests using sandbox version of the library from the debug console. To run against main lib, use =p.run()
function suite.runSandbox()
local frame = mw.getCurrentFrame():newChild{title='testit', args={module=libName .. '/hiekkalaatikko', displayMode='log'}}
return suite.run(frame)
end
-- Allow test runner to use the sandbox and the primary versions of the library with the same testcases
function suite:module()
return require('Module:' .. (self.frame and self.frame.args.module or libName))
end
--[[
Library-specific tests
]]
------------------------------------------------------------------------
-- Helper functions
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Test linkki-funktio, peruskäyttö
------------------------------------------------------------------------
function suite:testPeruslinkki()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.linkki("fi", "kohde", "teksti"))
self:assertEquals('<span class="Zzzz linkki" lang="es">[[kohde#Espanja|kohde]]</span>',
m.linkki("es", "kohde", nil))
self:assertEquals('<span class="Jpan linkki" lang="ja">[[良い#Japani|良い]]</span>',
m.linkki("ja", "良い", nil))
local stat, msg = pcall(m.linkki, nil, "kohde", "teksti")
self:assertFalse(stat)
self:assertStringContains("Pakollinen kieliparametri puuttuu!", msg, true)
local stat, msg = pcall(m.linkki, "fi", nil, "teksti")
self:assertFalse(stat)
self:assertStringContains("Pakollinen linkkiparametri puuttuu!", msg, true)
end
function suite:testPeruslinkkiVaihtoehtoinenTapa()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.linkki{ kieli = "fi",
kohde = "kohde",
teksti = "teksti"
}
)
self:assertEquals('<span class="Zzzz linkki" lang="es">[[kohde#Espanja|kohde]]</span>',
m.linkki{ kieli = "es",
kohde = "kohde"
}
)
self:assertEquals('<span class="Jpan linkki" lang="ja">[[良い#Japani|良い]]</span>',
m.linkki{
kieli = "ja",
kohde = "良い"
}
)
end
------------------------------------------------------------------------
-- Test linkki_tai_nil-funktio, peruskäyttö
------------------------------------------------------------------------
function suite:testLinkkiTaiNil()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.linkki_tai_nil("fi", "kohde", "teksti"))
self:assertEquals('<span class="Zzzz linkki" lang="es">[[kohde#Espanja|kohde]]</span>',
m.linkki_tai_nil("es", "kohde"))
self:assertEquals('<span class="Jpan linkki" lang="ja">[[良い#Japani|良い]]</span>',
m.linkki_tai_nil("ja", "良い"))
self:assertTrue(m.linkki_tai_nil("fi") == nil)
end
------------------------------------------------------------------------
-- Test linkki-funktio, lisäparametri elem
------------------------------------------------------------------------
function suite:testLisaparametritElem()
local m = self:module()
self:assertEquals('<b class="Zzzz linkki" lang="fi">[[kohde#Suomi|teksti]]</b>',
m.linkki{
kieli = "fi",
kohde = "kohde",
teksti = "teksti",
elem = "b"
}
)
end
------------------------------------------------------------------------
-- Test linkki-funktio, lisäparametri class
------------------------------------------------------------------------
function suite:testLisaparametritClass()
local m = self:module()
self:assertEquals('<span class="Zzzz kaannos" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.linkki{
kieli = "fi",
kohde = "kohde",
teksti = "teksti",
class = "kaannos"
}
)
self:assertEquals('<span class="Zzzz kaannos xxxxxx" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.linkki{
kieli = "fi",
kohde = "kohde",
teksti = "teksti",
class = "kaannos xxxxxx"
}
)
end
------------------------------------------------------------------------
-- Test linkki-funktio, lisäparametri kuvaus
------------------------------------------------------------------------
function suite:testLisaparametritKuvaus()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="fi" data-kuvaus="fi-subs-gen">[[kohde#Suomi|kohteen]]</span>',
m.linkki{
kieli = "fi",
kohde = "kohde",
teksti = "kohteen",
kuvaus = "fi-subs-gen"
}
)
end
------------------------------------------------------------------------
-- Test linkki-funktio, lisäparametri kuvaus-param
------------------------------------------------------------------------
function suite:testLisaparametritKuvausParam()
local m = self:module()
local p = {
kieli = "ja",
kohde = "日本語",
teksti = "nihongo",
kuvaus = "ja-transkriptio",
["kuvaus-param"] = { [4] = "nihongo" }
}
local odotettu = '<span class="Jpan linkki" '
.. 'lang="ja" '
.. 'data-kuvaus="ja-transkriptio" '
.. 'data-kuvaus-param="{&quot;4&quot;:&quot;nihongo&quot;}">'
.. '[[日本語#Japani|nihongo]]'
.. '</span>'
self:assertEquals(odotettu, m.linkki(p))
end
------------------------------------------------------------------------
-- Test linkki-funktio, automaattinen linkki
------------------------------------------------------------------------
function suite:testAutomaattilinkki()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="sr">[[oko#Serbia|ȍko]]</span>',
m.linkki{
kieli = "sr",
kohde = "ȍko",
autolinkki = true
}
)
self:assertEquals('<span class="Arab linkki" lang="ar">[[بطة#Arabia|بَطَّة]]</span>',
m.linkki{
kieli = "ar",
kohde = "بَطَّة",
autolinkki = true
}
)
end
------------------------------------------------------------------------
-- Test #invoke-testit
------------------------------------------------------------------------
------------------------------------------------------------------------
-- Test Linkki-funktio, peruskäyttö
------------------------------------------------------------------------
function suite:testPeruslinkkiInvoke()
local m = self:module()
local TITLE = mw.title.getCurrentTitle().fullText
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[kohde#Suomi|teksti]]</span>',
m.Linkki({ args = { "fi", "kohde", "teksti" } }))
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[kohde#Suomi|kohde]]</span>',
m.Linkki({ args = { "fi", "kohde" } }))
-- Jos kohdetta ei anneta, käytetään samaa sivua.
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[' .. TITLE .. '#Suomi|teksti]]</span>',
m.Linkki({ args = { "fi", nil, "teksti" } }))
-- Ilman kohdetta ja tekstiä, käytetään samaa sivua.
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[' .. TITLE .. '#Suomi|' .. TITLE .. ']]</span>',
m.Linkki({ args = { "fi" } }))
-- Ilman parametreja suomi ja sama sivu.
self:assertEquals('<span class="Zzzz linkki" lang="fi">[[' .. TITLE .. '#Suomi|' .. TITLE .. ']]</span>',
m.Linkki({ args = { } }))
end
------------------------------------------------------------------------
-- Test Linkki-funktio, automaattinen linkki
------------------------------------------------------------------------
function suite:testAutomaattilinkkiInvoke()
local m = self:module()
self:assertEquals('<span class="Zzzz linkki" lang="sr">[[oko#Serbia|ȍko]]</span>',
m.Linkki({ args = { "sr", "ȍko", nil, ["autolinkki"] = "1" } }))
self:assertEquals('<span class="Arab linkki" lang="ar">[[بطة#Arabia|بَطَّة]]</span>',
m.Linkki({ args = { "ar", "بَطَّة", nil, ["autolinkki"] = "1" } }))
self:assertEquals('<span class="Zzzz linkki" lang="sr">[[oko#Serbia|DÖKÖ]]</span>',
m.Linkki({ args = { "sr", "ȍko", "DÖKÖ", ["autolinkki"] = "1" } }))
end
return suite