require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', "helper")) module Nokogiri module XML module SAX class TestParser < Nokogiri::SAX::TestCase def setup @parser = XML::SAX::Parser.new(Doc.new) end def test_parse File.open(XML_FILE, 'rb') { |f| @parser.parse(f) } @parser.parse(File.read(XML_FILE)) end def test_parse_io File.open(XML_FILE, 'rb') { |f| @parser.parse_io(f) } end def test_parse_file @parser.parse_file(XML_FILE) assert_raises(Errno::ENOENT) { @parser.parse_file('') } assert_raises(Errno::EISDIR) { @parser.parse_file(File.expand_path(File.dirname(__FILE__))) } end def test_ctag @parser.parse_memory(<<-eoxml)
Paragraph 1
eoxml assert_equal [' This is a comment '], @parser.document.cdata_blocks end def test_comment @parser.parse_memory(<<-eoxml)Paragraph 1
eoxml assert_equal [' This is a comment '], @parser.document.comments end def test_characters @parser.parse_memory(<<-eoxml)Paragraph 1
eoxml assert_equal ['Paragraph 1'], @parser.document.data end def test_end_document @parser.parse_memory(<<-eoxml)Paragraph 1
eoxml assert @parser.document.end_document_called end def test_end_element @parser.parse_memory(<<-eoxml)Paragraph 1
eoxml assert_equal [["p"]], @parser.document.end_elements end def test_start_element_attrs @parser.parse_memory(<<-eoxml)Paragraph 1
eoxml assert_equal [["p", ["id", "asdfasdf"]]], @parser.document.start_elements end def test_parse_document @parser.parse_memory(<<-eoxml)Paragraph 1
Paragraph 2
eoxml end end end end end