Difference between revisions of "Module:Lang/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Trappist the monk
blackwiki>Trappist the monk
Line 84: Line 84:
 
     self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}',
 
     self:preprocess_equals_preprocess('{{#invoke:lang/sandbox|lang|code=ar|text=text}}', '{{#invoke:lang|lang|code=ar|text=text}}',
 
{nowiki=1})
 
{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
 +
    {'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;
 
end;
  

Revision as of 01:16, 29 November 2017

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 &lrm; 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;


--[[--------------------------< 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 &lrm; marker

]]

function p:test_lang_script()
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|italic=|script=', '}}', '{{#invoke:lang|lang|code=ar|text=text|italic=|script=', '}}',
    	{
    	{'arab'}, {'latn'},
    	}, {nowiki=1})
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang|code=ar|text=text|script=', '}}', '{{#invoke:lang|lang|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 &lrm; 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
    	{'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|code=ar|text=text|italic=', '}}', '{{#invoke:lang|lang_xx|code=ar|text=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; for |script=arab the module shall add
dir="rtl" to the text's enclosing <span> and insert the &lrm; marker

]]

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

]]

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

]]

function p:test_lang_xx_rtl()
    self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text=text|rtl=', '}}', '{{#invoke:lang|lang_xx|code=ar|text=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