Jump to content

Module:WikitextParser/testcases

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Sophivorus (talk | contribs) at 15:17, 22 February 2024 (Fix testTables). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local P = require( 'Module:WikitextParser' )
local testpage = mw.title.new( 'Module:WikitextParser/testpage' )
local wikitext = 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>' ) )
	self:assertDeepEquals( {'<span>a</span>'}, P.getTags( '<div><div><span>a</span></div></div>', 'span' ) )
	self:assertDeepEquals( {'<div><div><span>a</span></div></div>','<div><span>a</span></div>'}, P.getTags( '<div><div><span>a</span></div></div>', '-span' ) )
end

function Suite:testTables()
	self:assertDeepEquals( {'{|\n!b\n|}','{|\n|d\n|}','{|id="e"\n|e\n|}'}, P.getTables( wikitext ) )
	self:assertDeepEquals( {'{|\n!b\n|}'}, P.getTables( wikitext, '1' ) )
	self:assertDeepEquals( {'{|\n|d\n|}'}, P.getTables( wikitext, 2 ) )
	self:assertDeepEquals( {'{|\n!b\n|}','{|id="e"\n|e\n|}'}, P.getTables( wikitext, '1,3' ) )
	self:assertDeepEquals( {'{|\n|d\n|}','{|id="e"\n|e\n|}'}, P.getTables( wikitext, '2-3' ) )
	self:assertDeepEquals( {'{|id="e"\n|e\n|}'}, P.getTables( wikitext, 'e' ) )
end

return Suite