Ticket #134: bad_markup_tests.diff

File bad_markup_tests.diff, 1.3 kB (added by rubys, 4 months ago)

updated test based on input from Jaques Distler

  • test/core_test.rb

     
    3030    EOL 
    3131  end 
    3232 
    33   def test_bad_markup_1 
    34     src="<pkg='version'> foo </pkg>" 
    35     assert_raises( ParseException, %Q{Test against "#{src}" should have failed!} )  { 
    36       Document.new(src) 
    37     } 
     33  def test_bad_markup 
     34    [ 
     35      "<pkg='version'> foo </pkg>", 
     36 
     37      # incomplete/invalid entities 
     38      '<a>&</a>', 
     39      '<a>&a</a>', 
     40      '<a>&a;</a>', 
     41 
     42      # duplicate attribute names 
     43      '<a a="1" a="2"/>', 
     44 
     45      # comments 
     46      '<a><!-- -- --></a>', 
     47      '<a><!-- ---></a>', 
     48 
     49      # invalid characters in an attribute 
     50      '<a a="<"/>', 
     51 
     52      # invalid characters in a name 
     53      '<0/>', 
     54      '<a 3=""/>', 
     55      '<a' + [160].pack('U') + ' />', 
     56      '<a a' + [160].pack('U') + '="" />', 
     57 
     58      # invalid XML characters 
     59      '<a>&#x00;</a>', 
     60      "<a>\000</a>", 
     61      "<a>\f</a>", 
     62      "<a a='\f' />", 
     63      '<a>' + [65535].pack('U') + '</a>', 
     64      '<a>&#xffe;</a>', 
     65      '<a>&#65535;</a>', 
     66    ].each do |src| 
     67      assert_raises( ParseException, %Q{Parse #{src.inspect} should have failed!} ) do 
     68        Document.new(src) 
     69      end 
     70    end 
    3871  end 
    3972 
    4073  def test_attribute