require "xml"
require 'test/unit'
class TC_XML_Document < Test::Unit::TestCase
def setup
xp = XML::Parser.new
assert_instance_of(XML::Parser, xp)
str = 'onetwo'
assert_equal(str, xp.string = str)
@doc = xp.parse
assert_instance_of(XML::Document, @doc)
end
def teardown
@doc = nil
end
def test_libxml_document_find
set = @doc.find('/ruby_array/fixnum')
assert_instance_of(XML::XPath::Object, set)
assert_raise(NoMethodError) {
xpt = set.xpath
}
end
# FIXME XML::Parser::enabled_zlib? zlib support
# def test_ruby_xml_document_compression
# if XML::Parser::enabled_zlib?
# 0.upto(9) do |i|
# assert_equal(i, @doc.compression = i)
# assert_equal(i, @doc.compression)
# end
#
# 9.downto(0) do |i|
# assert_equal(i, @doc.compression = i)
# assert_equal(i, @doc.compression)
# end
#
# 10.upto(20) do |i|
# # assert_equal(9, @doc.compression = i)
# assert_equal(i, @doc.compression = i) # This works around a bug in Ruby 1.8
# assert_equal(9, @doc.compression)
# end
#
# -1.downto(-10) do |i|
# # assert_equal(0, @doc.compression = i)
# assert_equal(i, @doc.compression = i) # FIXME This bug should get fixed ASAP
# assert_equal(0, @doc.compression)
# end
# end
# end
# FIXME Document#save
# def test_save
# filename = 'test_write'
# bytes = @doc.save(filename)
# assert_equal(110, bytes)
# contents = File.read(filename)
#
# expected =<<-EOS
#
# onetwo
# EOS
# assert_equal(expected, contents)
# ensure
# File.delete(filename)
# end
# FIXME Document#save
# def test_save_formatted
# filename = 'test_write'
# bytes = @doc.save(filename, true)
# assert_equal(117, bytes)
# contents = File.read(filename)
#
# expected =<<-EOS
#
#
# one
# two
#
# EOS
# assert_equal(expected, contents)
# ensure
# File.delete(filename)
# end
# FIXME Document#save
# def test_save_formatted_invalid
# filename = 'test_write'
#
# assert_raise(ArgumentError) do
# @doc.save(filename, 1)
# end
# end
end