require "libxml" require 'test/unit' class TC_XML_Document_Write3 < Test::Unit::TestCase def setup() @doc = XML::Document.new('1.0') assert_instance_of(XML::Document, @doc) @doc.root = XML::Node.new('rubynet') end def teardown() @doc = nil end def test_ruby_xml_document_write_child() xml = "\n\n \n\n" @doc.root.child = XML::Node.new('pkg') assert_equal(xml, @doc.to_s) end def test_ruby_xml_document_write_content_append() xml = "\n" xml << "\n" xml << " \n" xml << " \n" xml << " libxml\n" xml << " \n" xml << " \n" xml << "\n" pkg = @doc.root.child = XML::Node.new('pkg') meta = pkg.child = XML::Node.new('meta') assert_equal meta, meta << (pkgname = XML::Node.new('pkgname')) pkgname << 'libxml' assert_equal(xml, @doc.to_s) end def test_ruby_xml_document_write_node_search_href() prefix = 'xlink' uri = 'http://www.rubynet.org' xml = "\n" xml << "\n" xml << " \n" xml << "\n" @doc = XML::Parser.string(xml).parse assert_equal(xml, @doc.to_s) ns = @doc.root.search_href(uri) assert_instance_of(XML::NS, ns) assert_equal(uri, ns.href) assert_equal(prefix, ns.prefix) end def test_ruby_xml_document_write_sibling() xml = "\n\n \n \n\n" child = @doc.root.child = XML::Node.new('pkg') assert_instance_of(XML::Node, child) child.sibling = XML::Node.new('pkg2') assert_equal(xml, @doc.to_s) end def test_ruby_xml_document_write_set_doc_property() xml = "\n" xml << "\n" xml << " \n" xml << "\n" @doc.root['xmlns:xlink'] = "http://www.w3.org/1999/xlink" pkg = @doc.root.child = XML::Node.new('pkg') assert_equal(xml, @doc.to_s) end def test_ruby_xml_document_write_set_node_base() xml = "\n" xml << "\n" xml << " \n" xml << "\n" pkg = @doc.root.child = XML::Node.new('pkg') pkg.base = 'http://www.rubynet.org/' assert_equal(xml, @doc.to_s) end def test_ruby_xml_document_write_set_node_property() xml = "\n" xml << "\n" xml << " \n" xml << " \n" xml << " libxml\n" xml << " \n" xml << " \n" xml << "\n" @doc.root['xmlns:xlink'] = "http://www.w3.org/1999/xlink" pkg = @doc.root.child = XML::Node.new('pkg') pkg['version'] = '1.0' meta = pkg.child = XML::Node.new('meta') pkgname = meta.child = XML::Node.new('pkgname', 'libxml') assert_equal(xml, @doc.to_s) end end