Content deleted Content added
Sophivorus (talk | contribs) No edit summary Tag: Reverted |
Sophivorus (talk | contribs) No edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1:
local
local testpage = mw.title.new( 'Module:WikitextParser/testpage' ):getContent()
local ScribuntoUnit = require( 'Module:ScribuntoUnit' )
local Suite = ScribuntoUnit:new()
function Suite:testReplaceElements()▼
self:assertEquals( '@@@0@@@', W.replaceElements( 'a', { 'a' } ) )▼
self:assertEquals( '@@@1@@@b@@@2@@@', W.replaceElements( 'abc', { 'a', 'c' } ) )▼
end▼
function Suite:testRestoreElements()▼
self:assertEquals( 'a', W.restoreElements( '@@@0@@@' ) )▼
--self:assertEquals( 'abc', W.restoreElements( '@@@1@@@b@@@2@@@' ) )▼
end▼
function Suite:testLead()
self:assertEquals( '',
self:assertEquals( '',
self:assertEquals( 'a',
self:assertEquals( 'a',
self:assertEquals( 'This test page interacts with [[Module:WikitextParser/testcases]].',
end
function Suite:testSection()
self:assertEquals( nil,
self:assertEquals( '',
self:assertEquals( 'b',
self:assertEquals( 'b',
self:assertEquals( 'b',
self:assertEquals( 'b\n===c===\nd',
self:assertEquals( 'd',
self:assertEquals( 'a\n===Subsection===\nb',
self:assertEquals( 'b',
end
function Suite:testSectionTag()
self:assertEquals( nil,
self:assertEquals( nil,
self:assertEquals( '',
self:assertEquals( 'c',
self:assertEquals( '',
self:assertEquals( 'b',
self:assertEquals( '{|\n!c\n|}',
self:assertEquals( nil,
end
function Suite:testSections()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { ['a']='' },
self:assertDeepEquals( { ['b']='' },
self:assertDeepEquals( { ['a']='', ['b']='' },
self:assertDeepEquals( { ['a']='b' },
self:assertDeepEquals( { ['b']='c' },
self:assertDeepEquals( { ['b']='c', ['d']='e' },
end
function Suite:testLists()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { '*a' },
self:assertDeepEquals( { '*a\n*b' },
self:assertDeepEquals( { '*b\n*c' },
self:assertDeepEquals( { '*b\n*c', '#e\n#f' },
self:assertDeepEquals( {
'*b\n*c',
Line 70 ⟶ 60:
'*c\n*d',
'#h\n#i',
},
end
function Suite:testParagraphs()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { 'a' },
self:assertDeepEquals( { 'a{{b}}' },
self:assertDeepEquals( { '{{a}}b' },
self:assertDeepEquals( { 'a' },
self:assertDeepEquals( { 'b' },
self:assertDeepEquals( { '{{a}}b{{c}}' },
self:assertDeepEquals( { 'a', 'b', 'c' },
self:assertDeepEquals( { 'a', 'c' },
self:assertDeepEquals( {
'X1',
'{{X2}} X3 {{X4}}',
},
end
function Suite:testTemplates()
self:assertDeepEquals( {},
self:assertDeepEquals( { '{{a}}' },
self:assertDeepEquals( { '{{b}}' },
self:assertDeepEquals( { '{{a|b=c}}' },
self:assertDeepEquals( { '{{a\n|b=c\n}}' },
self:assertDeepEquals( { '{{b}}', '{{d}}' },
self:assertDeepEquals( { '{{b}}', '{{d}}' },
self:assertDeepEquals( { '{{a|b={{c}}}}' },
self:assertDeepEquals( {
'{{X2}}',
Line 114 ⟶ 104:
'{{reflist|group=i}}',
'{{Infobox\n|a=1\n|b=2\n|d=4\n|c=3\n}}'
},
end
function Suite:testTemplate()
self:assertEquals( '{{a}}',
self:assertEquals( '{{a|b=c}}',
self:assertEquals( '{{a|b=c}}',
self:assertEquals( '{{Infobox\n|a=1\n|b=2\n|d=4\n|c=3\n}}',
end
function Suite:
self:assertDeepEquals( { [1]='b' },
--self:assertDeepEquals( { [1]='b' },
self:assertDeepEquals( { [1]='b',['c']='1' },
self:assertDeepEquals( { [1]='b',['c']='d' },
self:assertDeepEquals( { ['b']='c' },
self:assertDeepEquals( { ['b']='c', ['d']='e' },
end
function Suite:testTags()
self:assertDeepEquals( {},
self:assertDeepEquals( {
self:assertDeepEquals( { '<div>
self:assertDeepEquals( { '<div></div>' },
self:assertDeepEquals( { '<div>
self:assertDeepEquals( { '<div>
self:assertDeepEquals( { '<
self:assertDeepEquals( { '< div
self:assertDeepEquals( { '<div
self:assertDeepEquals( { '<div>
self:assertDeepEquals( { '<div>b<div>
self:assertDeepEquals( { '<div><div><span>a</span></div></div>', '<div><span>a</span></div>', '<span>a</span>' }, parser.getTags( '<div><div><span>a</span></div></div>' ) )
self:assertDeepEquals( {
'<gallery>\nFile:A.png|g<ref>g</ref>\nFile:B.png\n</gallery>',
Line 168 ⟶ 159:
'<ref name="l">m</ref>',
'<noinclude>b</noinclude>',
},
▲end
self:assertEquals( nil, parser.getTagName( 'abc' ) )
self:assertEquals( 'ref', parser.getTagName( '< ref name="a" />' ) )
▲
self:assertEquals( 'ref', parser.getTagName( '<ref name = a >b</ref>' ) )
▲end
self:assertEquals( nil, parser.getTagAttribute( '<ref>', 'name' ) )
▲ self:assertEquals( '
self:assertEquals( 'b', parser.getTagAttribute( '<ref name="b">', 'name' ) )
self:assertEquals( 'c', parser.getTagAttribute( '< ref name = "c" />', 'name' ) )
end
function Suite:testGalleries()
self:assertDeepEquals( {},
self:assertDeepEquals( { '<gallery>a</gallery>' },
self:assertDeepEquals( { '<gallery>b</gallery>' },
self:assertDeepEquals( { '<gallery>\nFile:A.png\nFile:B.png\n</gallery>' },
self:assertDeepEquals( { '<gallery>\nFile:A.png\nFile:B.png\n</gallery>' },
self:assertDeepEquals( {
'<gallery>\nFile:A.png|g<ref>g</ref>\nFile:B.png\n</gallery>',
},
end
function Suite:testReferences()
self:assertDeepEquals( {},
self:assertDeepEquals( { '<ref>a</ref>' },
self:assertDeepEquals( { '<ref>b</ref>' },
self:assertDeepEquals( { '<ref>b</ref>', '<ref>d</ref>' },
self:assertDeepEquals( { '<ref name="b">c</ref>', '<ref name="b" />' },
self:assertDeepEquals( {
'<ref>g</ref>',
Line 196 ⟶ 203:
'<ref name="l" />',
'<ref name="l">m</ref>',
},
end
function Suite:testTables()
self:assertDeepEquals( {},
self:assertDeepEquals( { '{|\n!b\n|}' },
self:assertDeepEquals( { '{|\n!b\n|}', '{|\n|d\n|}', '{|id="e"\n|e\n|}' },
self:assertDeepEquals( {
'{|\n!b\n|}',
Line 213 ⟶ 220:
'{|\n|e\n|}',
'{|\n|k\n|}',
},
end
function Suite:testTableAttribute()
self:assertEquals( nil, parser.getTableAttribute( '{|\n|a\n|}', 'id' ) )
self:assertEquals( 'a', parser.getTableAttribute( '{| id=a\n|a\n|}', 'id' ) )
self:assertEquals( 'b', parser.getTableAttribute( '{| id="b" class="foo"\n|a\n|}', 'id' ) )
self:assertEquals( 'c', parser.getTableAttribute( '{| class="foo" id="c" \n|a\n|}', 'id' ) )
end
function Suite:testLinks()
self:assertDeepEquals( {},
self:assertDeepEquals( { '[[a]]' },
self:assertDeepEquals( { '[[a|b]]' },
self:assertDeepEquals( { '[[b]]' },
self:assertDeepEquals( { '[[b]]', '[[d]]' },
self:assertDeepEquals( {
'[[Module:WikitextParser/testcases]]',
Line 241 ⟶ 255:
'[[Category:X2]]',
'[[Category:X3]]',
},
end
function Suite:testCategories()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { '[[Category:a]]' },
self:assertDeepEquals( { '[[ category : a ]]' },
self:assertDeepEquals( { '[[Category:b]]' },
self:assertDeepEquals( { '[[Category:b]]', '[[Category:c]]' },
self:assertDeepEquals( {
'[[Category:X1]]',
'[[Category:X2]]',
'[[Category:X3]]',
},
end
function Suite:testFiles()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { '[[File:a]]' },
self:assertDeepEquals( { '[[ file : a ]]' },
self:assertDeepEquals( { '[[File:b]]' },
self:assertDeepEquals( { '[[File:b]]', '[[File:c]]' },
self:assertDeepEquals( {
'[[File:Name.jpg|thumb|X1]]',
Line 273 ⟶ 287:
'[[File:A.png]]',
'[[File:f.png]]',
},
end
function Suite:testFileName()
self:assertEquals( 'Example.jpg', parser.getFileName( '[[File:Example.jpg]]' ) )
self:assertEquals( 'Example.jpg', parser.getFileName( '[[File:Example.jpg|thumb]]' ) )
self:assertEquals( 'Example.jpg', parser.getFileName( '[[ File : Example.jpg | thumb ]]' ) )
end
function Suite:testExternalLinks()
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( {},
self:assertDeepEquals( { '[//www.example.com]' },
self:assertDeepEquals( { '[http://www.example.com]' },
self:assertDeepEquals( { '[https://www.example.com]' },
self:assertDeepEquals( { '[//www.example.com example]' },
self:assertDeepEquals( { '[http://www.example.com example]' },
self:assertDeepEquals( { '[https://www.example.com example]' },
end
|