File: tc_xml_parser8.rb

package info (click to toggle)
libxml-ruby 0.5.2.0-3%2Blenny1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 652 kB
  • ctags: 875
  • sloc: ansic: 5,874; ruby: 1,524; xml: 144; makefile: 9
file content (32 lines) | stat: -rw-r--r-- 964 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# $Id: tc_xml_parser8.rb 67 2006-04-17 13:30:22Z roscopeco $
require "libxml_test"
require 'test/unit'

class TC_XML_Parser8 < Test::Unit::TestCase
  def test_ruby_xml_parser_error_handler  
    $stderr.puts "\nEXPECTING: TWO ERRORS:"
    # this will send message to stderr
    assert_raise(XML::Parser::ParseError) {
      d = XML::Parser.string('<foo><bar/></foz>').parse    
    }
  
    ary = []  
    assert_nil XML::Parser.register_error_handler(lambda { |msg| ary << msg })
    
    # this will use our error handler
    assert_raise(XML::Parser::ParseError) {
      d = XML::Parser.string('<foo><bar/></foz>').parse         
    }
    
    assert (first_len = ary.length) > 0

    assert_instance_of Proc, XML::Parser.register_error_handler(nil)
    
    # this will go to stderr again
    assert_raise(XML::Parser::ParseError) {
      d = XML::Parser.string('<foo><bar/></foz>').parse    
    }
      
    assert_equal first_len, ary.length    
  end
end