Module:WikitextParser/testcases
Appearance
![]() | This is the test cases page for the module Module:WikitextParser. Results of the test cases. |
local P = require( 'Module:WikitextParser' )
local testpage = mw.title.new( 'Module:WikitextParser/testpage' ):getContent()
local ScribuntoUnit = require( 'Module:ScribuntoUnit' )
local Suite = ScribuntoUnit:new()
function Suite:testTags()
self:assertDeepEquals( {}, P.getTags( 'a' ) ) -- no tags
self:assertDeepEquals( {'<div>a'}, P.getTags( '<div>a' ) ) -- unclosed tag
self:assertDeepEquals( {'<div></div>'}, P.getTags( '<div></div>' ) ) -- empty tag
self:assertDeepEquals( {'<div></div>'}, P.getTags( 'a<div></div>b' ) )
self:assertDeepEquals( {'<div>a</div>'}, P.getTags( '<div>a</div>' ) ) -- simple case
self:assertDeepEquals( {'<div>b</div>'}, P.getTags( 'a<div>b</div>c' ) )
self:assertDeepEquals( {'< div >a</ div >'}, P.getTags( '< div >a</ div >' ) ) -- weird spacing
self:assertDeepEquals( {'<div class="a">b</div>'}, P.getTags( '<div class="a">b</div>' ) ) -- attributes
-- Nested tags
self:assertDeepEquals( {'<div><div></div></div>','<div></div>'}, P.getTags( '<div><div></div></div>' ) )
self:assertDeepEquals( {'<div>b<div>c</div>d</div>','<div>c</div>'}, P.getTags( 'a<div>b<div>c</div>d</div>e' ) )
self:assertDeepEquals( {'<div><div><span>a</span></div></div>','<div><span>a</span></div>','<span>a</span>'}, P.getTags( '<div><div><span>a</span></div></div>' ) )
-- Test page
self:assertDeepEquals( {
'<gallery>\nFile:A.png|g<ref>g</ref>\nFile:B.png\n</gallery>',
'<ref>g</ref>',
'<br>',
'<br />',
'<hr>',
'<div>a<div>b</div></div>',
'<div>b</div>',
'<span class="a">b<span id="c">d</span></span>',
'<span id="c">d</span>',
'<section begin="a" />',
'<section end="a" />',
'<section begin="b" />',
'<section end="b" />',
'<section begin="c" />',
'<section end="c" />',
'<ref>b</ref>',
'<ref name="d">e</ref>',
'<ref name="d" />',
'<ref name="h" group="i">j</ref>',
'<ref name="l" />',
'<ref name="l">m</ref>',
'<noinclude>b</noinclude>',
}, P.getTags( testpage ) )
end
function Suite:testTables()
self:assertDeepEquals( {}, P.getTables( 'a' ) ) -- no tables
self:assertDeepEquals( {'{|\n!b\n|}'}, P.getTables( 'a\n{|\n!b\n|}\nc' ) ) -- one table
self:assertDeepEquals( {'{|\n!b\n|}','{|\n|d\n|}','{|id="e"\n|e\n|}'}, P.getTables( 'a\n{|\n!b\n|}\nc\n{|\n|d\n|}\n{|id="e"\n|e\n|}f' ) ) -- many tables
-- Test page
self:assertDeepEquals( {
'{|\n!b\n|}',
'{|\n|d\n|}',
'{|id="e"\n|e\n|}',
'{|\n!c\n|}',
'{|\n|X2\n|}',
'{|\n|e\n|}',
'{|\n|k\n|}',
'{|\n|e\n|}',
'{|\n|k\n|}',
}, P.getTables( testpage ) )
end
function Suite:testLinks()
self:assertDeepEquals( {}, P.getLinks( 'a' ) ) -- no links
self:assertDeepEquals( {'[[a]]'}, P.getLinks( '[[a]]' ) )
self:assertDeepEquals( {'[[a|b]]'}, P.getLinks( '[[a|b]]' ) )
self:assertDeepEquals( {'[[b]]'}, P.getLinks( 'a[[b]]c' ) )
self:assertDeepEquals( {'[[b]]','[[d]]'}, P.getLinks( 'a[[b]]c[[d]]e' ) )
self:assertDeepEquals( {
'[[Module:WikitextParser/testcases]]',
'[[link]]',
'[[File:Name.jpg|thumb|X1]]',
'[[File:A.png]]',
'[[File:C.png]]',
'[[b]]',
'[[d]]',
'[[Module talk:Transcluder/testcases]]',
'[[module talk:Transcluder/testcases]]',
'[[Module talk:Transcluder/testcases|a]]',
'[[module talk:Transcluder/testcases|a]]',
'[[File:A.png]]',
'[[File:f.png]]',
'[[File:A.png]]',
'[[File:f.png]]',
'[[Category:X1]]',
'[[Category:X2]]',
'[[Category:X3]]',
}, P.getLinks( testpage ) )
end
return Suite