Difference between revisions of "Module:Lang/testcases"
Jump to navigation
Jump to search
blackwiki>Trappist the monk |
m (8 revisions imported) |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 12: | Line 12: | ||
function p:test_lang_italic() | function p:test_lang_italic() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=', '}}', | |
| − | + | { | |
| − | + | {'yes'}, {'no'}, {''}, {'whatever'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}', | |
{nowiki=1}) | {nowiki=1}) | ||
end; | end; | ||
| Line 33: | Line 33: | ||
function p:test_lang_italic_with_script() | function p:test_lang_italic_with_script() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=yes|script=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=yes|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=no|script=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=no|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
end; | end; | ||
| Line 78: | Line 54: | ||
function p:test_lang_rtl() | function p:test_lang_rtl() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|rtl=', '}}', '{{#invoke:lang|lang|code=ar|text=text|rtl=', '}}', | |
| − | + | { | |
| − | + | {'yes'}, {'no'}, {''}, {'whatever'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}', | |
{nowiki=1}) | {nowiki=1}) | ||
end; | end; | ||
| Line 95: | Line 71: | ||
function p:test_lang_ietf() | function p:test_lang_ietf() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|text=text|code=', '}}', '{{#invoke:lang|lang|text=text|code=', '}}', | |
| − | + | { | |
| − | + | {'de'}, -- code | |
| − | + | {'nav'}, -- code | |
| − | + | {'1ca'}, -- non-standard code | |
| − | + | {'cmn-Latn'}, -- code-script; shall italicize text | |
| − | + | {'he-hebr'}, -- code-script; shall insert rtl | |
| − | + | {'de-ch'}, -- code-region | |
| − | + | {'de-1901'}, -- code-numeric variant | |
| + | {'ru-petr1708'}, -- code-alnum variant | ||
{'ca-valencia'}, -- code-alpha variant | {'ca-valencia'}, -- code-alpha variant | ||
| − | + | {'ru-ru-petr1708'}, -- code-region-variant | |
| − | + | {'es-419'}, -- code-numeric region | |
{'ru-Cyrl-RU'}, -- code-script-region | {'ru-Cyrl-RU'}, -- code-script-region | ||
{'ca-419-valencia'}, -- code-numeric reigion-variant | {'ca-419-valencia'}, -- code-numeric reigion-variant | ||
| Line 125: | Line 102: | ||
function p:test_lang_xx_italic() | function p:test_lang_xx_italic() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=', '}}', | |
| − | + | { | |
| − | + | {'yes'}, {'no'}, {''}, {'whatever'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text}}', | |
{nowiki=1}) | {nowiki=1}) | ||
end; | end; | ||
| Line 146: | Line 123: | ||
function p:test_lang_xx_italic_with_script() | function p:test_lang_xx_italic_with_script() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=yes|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=yes|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=no|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=no|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
end; | end; | ||
| Line 166: | Line 143: | ||
The value assigned to |script= shall be appended to the language code; for |script=arab the module shall add | The value assigned to |script= shall be appended to the language code; for |script=arab the module shall add | ||
dir="rtl" to the text's enclosing <span> and insert the ‎ marker | dir="rtl" to the text's enclosing <span> and insert the ‎ marker | ||
| + | |||
| + | There is no {{lang}} version of this test because {{lang}} has not need for separate |script=, |region=, and |variant= | ||
| + | parameters - those subtags can all be added to the IETF language code in the template's first positional parameter ({{{1}}}). | ||
]] | ]] | ||
function p:test_lang_xx_script() | function p:test_lang_xx_script() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|script=', '}}', | |
| − | + | { | |
| − | + | {'arab'}, {'latn'}, | |
| − | + | }, {nowiki=1}) | |
end; | end; | ||
| Line 191: | Line 171: | ||
function p:test_lang_xx_rtl() | function p:test_lang_xx_rtl() | ||
| − | + | self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|rtl=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|rtl=', '}}', | |
| − | + | { | |
| − | + | {'yes'}, {'no'}, {''}, {'whatever'}, | |
| − | + | }, {nowiki=1}) | |
| − | + | self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text}}', | |
{nowiki=1}) | {nowiki=1}) | ||
end; | end; | ||
return p | return p | ||
Latest revision as of 05:53, 27 September 2020
Documentation for this module may be created at Module:Lang/testcases/doc
local p = require('Module:UnitTests')
--[[==========================<< L A N G T E S T S=========================================================]]
--[[--------------------------< I T A L I C >------------------------------------------------------------------
Tests module parameter |italic= with values 'yes', 'no', present but not set, and the invalid 'whatever'. There
is a separate test for the parameter not present.
|italic=yes or |italic=no overrides every other parameter that might set the rendered text's font.
]]
function p:test_lang_italic()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=', '}}',
{
{'yes'}, {'no'}, {''}, {'whatever'},
}, {nowiki=1})
self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}',
{nowiki=1})
end;
--[[--------------------------< I T A L I C W I T H S C R I P T >------------------------------------------
Tests module parameter |italic=yes when |script=arab or |script=latn
|italic=yes should override whatever |script= might say
The value assigned to |script= shall be appended to the language code; for |script=arab the module shall add
dir="rtl" to the text's enclosing <span> and insert the ‎ marker
]]
function p:test_lang_italic_with_script()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=yes|script=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=yes|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=no|script=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=no|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
end;
--[[--------------------------< R T L >------------------------------------------------------------------------
Tests module parameter |rtl= with values 'yes', 'no', present but not set, and the invalid 'whatever'. There
is a separate test for the parameter not present.
|rtl=yes adds dir="rtl" to the text's enclosing <span> and inserts the ‎ marker
]]
function p:test_lang_rtl()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|rtl=', '}}', '{{#invoke:lang|lang|code=ar|text=text|rtl=', '}}',
{
{'yes'}, {'no'}, {''}, {'whatever'},
}, {nowiki=1})
self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}',
{nowiki=1})
end;
--[[--------------------------< I E T F D E C O D I N G >----------------------------------------------------
Tests module parameter |code= with values that should not produce error messages:
'de', 'de-ch', 'de-CH-1901', 'ru-RU-petr1708', '1ca', es-419.
]]
function p:test_lang_ietf()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|text=text|code=', '}}', '{{#invoke:lang|lang|text=text|code=', '}}',
{
{'de'}, -- code
{'nav'}, -- code
{'1ca'}, -- non-standard code
{'cmn-Latn'}, -- code-script; shall italicize text
{'he-hebr'}, -- code-script; shall insert rtl
{'de-ch'}, -- code-region
{'de-1901'}, -- code-numeric variant
{'ru-petr1708'}, -- code-alnum variant
{'ca-valencia'}, -- code-alpha variant
{'ru-ru-petr1708'}, -- code-region-variant
{'es-419'}, -- code-numeric region
{'ru-Cyrl-RU'}, -- code-script-region
{'ca-419-valencia'}, -- code-numeric reigion-variant
}, {nowiki=1})
end;
--[[==========================<< L A N G _ X X T E S T S===================================================]]
--[[--------------------------< I T A L I C >------------------------------------------------------------------
Tests module parameter |italic= with values 'yes', 'no', present but not set, and the invalid 'whatever'. There
is a separate test for the parameter not present.
|italic=yes or |italic=no overrides every other parameter that might set the rendered text's font.
]]
function p:test_lang_xx_italic()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=', '}}',
{
{'yes'}, {'no'}, {''}, {'whatever'},
}, {nowiki=1})
self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text}}',
{nowiki=1})
end;
--[[--------------------------< I T A L I C W I T H S C R I P T >------------------------------------------
Tests module parameter |italic=yes when |script=arab or |script=latn
|italic=yes should override whatever |script= might say
The value assigned to |script= shall be appended to the language code; for |script=arab the module shall add
dir="rtl" to the text's enclosing <span> and insert the ‎ marker
]]
function p:test_lang_xx_italic_with_script()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=yes|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=yes|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=no|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=no|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
end;
--[[--------------------------< S C R I P T >------------------------------------------------------------------
Tests module parameter |script=arab and |script=latn with |italic= preset but not set and |italic= not present
|script=arab shall not italicize text
|script=latn shall italicize text
The value assigned to |script= shall be appended to the language code; for |script=arab the module shall add
dir="rtl" to the text's enclosing <span> and insert the ‎ marker
There is no {{lang}} version of this test because {{lang}} has not need for separate |script=, |region=, and |variant=
parameters - those subtags can all be added to the IETF language code in the template's first positional parameter ({{{1}}}).
]]
function p:test_lang_xx_script()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|italic=|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|italic=|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|script=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|script=', '}}',
{
{'arab'}, {'latn'},
}, {nowiki=1})
end;
--[[--------------------------< R T L >------------------------------------------------------------------------
Tests module parameter |rtl= with values 'yes', 'no', present but not set, and the invalid 'whatever'. There
is a separate test for the parameter not present.
|rtl=yes adds dir="rtl" to the text's enclosing <span> and inserts the ‎ marker
]]
function p:test_lang_xx_rtl()
self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text=text|rtl=', '}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text=text|rtl=', '}}',
{
{'yes'}, {'no'}, {''}, {'whatever'},
}, {nowiki=1})
self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx_inherit|code=ar|text}}', '{{#invoke:lang|lang_xx_inherit|code=ar|text}}',
{nowiki=1})
end;
return p