# File tests/tokenizertester.rb, line 221 def test_param_entities toker = NQXML::Tokenizer.new('<?xml version="1.0"?> <!DOCTYPE test [ <!ENTITY % xx \%zz;\> <!ENTITY % zz \<!ENTITY tricky "error-prone" >\ > <!ENTITY % yy \%zz;\ > %xx; ]> <test>This sample shows a &tricky; method.</test>' ) newline = NQXML::Text.new("\n", "\n") xx = NQXML::ParameterEntityTag.new('xx', '%zz;', nil, '<!ENTITY % xx \%zz;\>') zzSrc = '<!ENTITY % zz \<!ENTITY tricky "error-prone" >\ >' zz = NQXML::ParameterEntityTag.new('zz', '<!ENTITY tricky "error-prone" >', nil, zzSrc) yySrc = '<!ENTITY % yy \%zz;\ >' yy = NQXML::ParameterEntityTag.new('yy', '<!ENTITY tricky "error-prone" >', nil, yySrc) tricky = NQXML::GeneralEntityTag.new('tricky', 'error-prone', nil, nil, '<!ENTITY tricky "error-prone" >') doctype = NQXML::Doctype.new('test', nil, [xx, zz, yy, tricky], '<!DOCTYPE test [ <!ENTITY % xx \%zz;\> <!ENTITY % zz \<!ENTITY tricky "error-prone" >\ > <!ENTITY % yy \%zz;\ > %xx; ]>' ) expected = [ NQXML::XMLDecl.new('xml', {'version'=>'1.0'}, '<?xml version="1.0"?>'), newline, doctype, newline, NQXML::Tag.new('test', {}, false, '<test>'), NQXML::Text.new('This sample shows a error-prone method.'), NQXML::Tag.new('test', nil, true, '</test>') ] i = 0 toker.each { | entity | assert_equal(expected[i], entity) if entity.instance_of?(NQXML::Doctype) assert_equal(4, entity.entities.length) assert_equal(xx, entity.entities[0]) assert_equal(zz, entity.entities[1]) assert_equal(yy, entity.entities[2]) assert_equal(tricky, entity.entities[3]) end i += 1 } end