Sha256: 46e3132e1d86d831fa7213dc2403886833bdefe1d7b0063ffc31d37fefcd5581

Contents?: true

Size: 1.5 KB

Versions: 7

Compression:

Stored size: 1.5 KB

Contents

require File.join(File.dirname(__FILE__), '..', 'test_helper')

class TestXMLNamespaces < Test::Unit::TestCase
  def setup
    @book = BookWithContributions.from_xml(fixture(:book_with_default_namespace))
  end

  def test_default_namespace_doesnt_interfere_with_normal_operation
    assert_equal("Programming Ruby - 2nd Edition", @book.title)
  end

  def test_default_namespace_is_applied_to_in_element
    expected_authors = ["David Thomas","Andrew Hunt","Chad Fowler"]
    assert !@book.contributions.empty?
    @book.contributions.each do |contributor|
      assert expected_authors.include?(contributor.name)
    end
  end

  def test_that_rexml_follows_nameless_default_namespace
    require 'rexml/document'
    xml = REXML::Document.new(
      '<container xmlns="http://fakenamespace.org"><node>Yeah, content</node></container>')

    assert_equal "Yeah, content", xml.root.get_elements('node').first.text
  end

  def test_default_namespace_on_root_node_should_be_found
    require 'libxml'
    xml = LibXML::XML::Parser.string(
      '<container xmlns="http://defaultnamespace.org"><node>Yeah, content</node><node><subnode>Another</subnode></node></container>').parse

    assert_equal nil, xml.find_first('node')
    assert_equal "Yeah, content", xml.find_first('ns:node', 'ns:http://defaultnamespace.org').content
    assert_equal nil, xml.find_first('ns:node/subnode', 'ns:http://defaultnamespace.org')
    assert_equal "Another", xml.find_first('ns:node/ns:subnode', 'ns:http://defaultnamespace.org').content
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
Empact-roxml-2.3.0 test/unit/xml_namespace_test.rb
Empact-roxml-2.3.1 test/unit/xml_namespace_test.rb
Empact-roxml-2.4.0 test/unit/xml_namespace_test.rb
Empact-roxml-2.4.1 test/unit/xml_namespace_test.rb
roxml-2.3.2 test/unit/xml_namespace_test.rb
roxml-2.4.0 test/unit/xml_namespace_test.rb
roxml-2.4.1 test/unit/xml_namespace_test.rb