Jump to content

Module:Lang/testcases

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Trappist the monk (talk | contribs) at 14:23, 18 November 2017 (create;). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
local p = require('Module:UnitTests')

--[[--------------------------< 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|code=ar|text|italic=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|italic=', '}}',
    	{
    	{'yes'}, {'no'}, {''}, {'whatever'},
    	}, {nowiki=1})
    self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx|code=ar|text}}', '{{#invoke:lang|lang_xx|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

]]

function p:test_lang_xx_italic_with_script()
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|italic=yes|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|italic=yes|script=', '}}',
    	{
    	{'arab'}, {'latn'},
    	}, {nowiki=1})
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|italic=no|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|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

]]

function p:test_lang_xx_script()
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|italic=|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|italic=|script=', '}}',
    	{
    	{'arab'}, {'latn'},
    	}, {nowiki=1})
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|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 &lrm; marker

]]

function p:test_lang_xx_rtl()
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|rtl=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|rtl=', '}}',
    	{
    	{'yes'}, {'no'}, {''}, {'whatever'},
    	}, {nowiki=1})
    self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang_xx|code=ar|text}}', '{{#invoke:lang|lang_xx|code=ar|text}}',
		{nowiki=1})
end;


return p