# File tests/streamingparsertester.rb, line 14 def test_parser # Build expected entities expectedEntities = [ @rsrc.xmlDecl, @rsrc.newlineTok, @rsrc.piWithArgs, @rsrc.newlineTok, @rsrc.piNoArgs, @rsrc.newlineTok, @rsrc.doctype, @rsrc.entityTag, @rsrc.externalTag, @rsrc.element, @rsrc.attlist, @rsrc.notation, @rsrc.newlineTok, @rsrc.comment, @rsrc.newlineTok, @rsrc.outerStart, @rsrc.textDataWithSub, @rsrc.simpleTagStart, @rsrc.simpleTextData, @rsrc.simpleTagEnd, @rsrc.newlineTok, @rsrc.innerTagStart, @rsrc.innerTagEnd, @rsrc.cdata, @rsrc.newlineTok, @rsrc.pTagStart, @rsrc.textText, @rsrc.bTagStart, @rsrc.boldText, @rsrc.bTagEnd, @rsrc.moreTextText, @rsrc.pTagEnd, @rsrc.newlineTok, @rsrc.outerEnd, @rsrc.newlineTok ] parser = NQXML::StreamingParser.new(@rsrc.xml) i = 0 prevTagNameStack = Array.new() begin parser.each { | entity | resultTok = expectedEntities[i] i += 1 assert_equal(resultTok, entity) } assert(parser.eof?()) assert(i == expectedEntities.length, 'more expected results than XML data;' + " i == #{i}, results length = #{expectedEntities.length};" + " wanted to see #{expectedEntities[i].class}") rescue NQXML::ParserError => ex assert_fail("unexpected parser error on line #{ex.line}: #{$!}") end end