Difference between revisions of "Module:Lang/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Trappist the monk
blackwiki>Trappist the monk
Line 99: Line 99:
  
 
function p:test_lang_xx_italic()
 
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=', '}}',
+
     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'},
 
     {'yes'}, {'no'}, {''}, {'whatever'},
Line 120: Line 120:
  
 
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|code=ar|text|italic=yes|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|italic=yes|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'},
 
     {'arab'}, {'latn'},
 
     }, {nowiki=1})
 
     }, {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=', '}}',
+
     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'},
 
     {'arab'}, {'latn'},
Line 144: Line 144:
  
 
function p:test_lang_xx_script()
 
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=', '}}',
+
     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'},
 
     {'arab'}, {'latn'},
 
     }, {nowiki=1})
 
     }, {nowiki=1})
     self:preprocess_equals_preprocess_many('{{#invoke:lang/sandbox|lang_xx|code=ar|text|script=', '}}', '{{#invoke:lang|lang_xx|code=ar|text|script=', '}}',
+
     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'},
 
     {'arab'}, {'latn'},
Line 165: Line 165:
  
 
function p:test_lang_xx_rtl()
 
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=', '}}',
+
     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'},
 
     {'yes'}, {'no'}, {''}, {'whatever'},

Revision as of 13:44, 26 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;


--[[==========================<< 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