-- Unit tests for [[Module:Error]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_error()
self:preprocess_equals_sandbox_many('{{#invoke:Error', 'error', {
-- Minimal parameter input
{'', '<strong class="error"></strong>'},
{'', '<strong class="error"></strong>', {nowiki = 'yes'}},
{' ', '<strong class="error"> </strong>'},
{' ', '<strong class="error"> </strong>'},
{'{{!}}', '<strong class="error">|</strong>'},
{'|tag=p', '<p class="error"></p>', {nowiki = 'yes'}},
{'|message=', '<strong class="error"></strong>'},
{'|message=', '<strong class="error"></strong>', {nowiki = 'yes'}},
{'|message=|tag=p', '<p class="error"></p>', {nowiki = 'yes'}},
{'|1', '<strong class="error"></strong>'},
{'1=', '<strong class="error"></strong>', {nowiki = 'yes'}},
{'1=|tag=p', '<p class="error"></p>'},
-- Plain message
{'|Example error message', '<strong class="error"></strong>'},
{'| Example error message ', '<strong class="error"></strong>'},
{'|message=Example error message', '<strong class="error">Example error message</strong>'},
{'|message = Example error message ', '<strong class="error">Example error message</strong>'},
-- tag
{'|Example error message|tag=p', '<p class="error"></p>'},
{'|tag=p', '<p class="error"></p>'}, -- no message
{'|Example error message| tag = p', '<p class="error"></p>', {nowiki = 'yes'}},
{'|Example error message|tag=div', '<div class="error"></div>'},
{'|Example error message|tag=div', '<div class="error"></div>'},
{'|Example error message|tag=span', '<span class="error"></span>'},
{'|Example error message|tag=adsf', '<strong class="error"></strong>'},
{'|Example error message|tag=strong', '<strong class="error"></strong>'},
{'|Example error message|tag=�', '<strong class="error"></strong>'}, -- ASCII nul
{'|Example error message|tag= ', '<strong class="error"></strong>'}, -- nbsp
{'|Example error message|tag={{!}}', '<strong class="error"></strong>'},
-- Use numbered parameter
{'1=Example error message', '<strong class="error">Example error message</strong>'},
{'1= Example error message ', '<strong class="error">Example error message</strong>'},
{'|Example = message', '<strong class="error"></strong>'},
{'1= Example = message ', '<strong class="error">Example = message</strong>'},
-- More extreme input options
{'| ', '<strong class="error"></strong>'}, -- nbsp
{'|<br/>', '<strong class="error"></strong>'},
{'|\n', '<strong class="error"></strong>', {nowiki = 'yes'}},
{'|�', '<strong class="error"></strong>'}, -- ASCII nul
-- Tricky input options
{'|0', '<strong class="error"></strong>'}, -- nbsp
{'|false', '<strong class="error"></strong>'},
{'|tag=tag', '<strong class="error"></strong>'},
{'|1', '<strong class="error"></strong>'},
{'|true', '<strong class="error"></strong>'},
}, {nowiki=1})
end
return p