Sha256: 38effdee90a7b3638e32107f3a405a775723bd304fcf56e0d7c8e42ba6bd8f86

Contents?: true

Size: 1.61 KB

Versions: 6

Compression:

Stored size: 1.61 KB

Contents

require "helper"

module Nokogiri
  module XML
    class TestNodeAttributes < Nokogiri::TestCase
      def test_attribute_with_ns
        doc = Nokogiri::XML <<-eoxml
          <root xmlns:tlm='http://tenderlovemaking.com/'>
            <node tlm:foo='bar' foo='baz' />
          </root>
        eoxml

        node = doc.at('node')

        assert_equal 'bar',
          node.attribute_with_ns('foo', 'http://tenderlovemaking.com/').value
      end

      def test_prefixed_attributes
        doc = Nokogiri::XML "<root xml:lang='en-GB' />"

        node = doc.root

        assert_equal 'en-GB', node[:'xml:lang']
        assert_equal nil, node[:lang]
      end

      def test_namespace_key?
        doc = Nokogiri::XML <<-eoxml
          <root xmlns:tlm='http://tenderlovemaking.com/'>
            <node tlm:foo='bar' foo='baz' />
          </root>
        eoxml

        node = doc.at('node')

        assert node.namespaced_key?('foo', 'http://tenderlovemaking.com/')
        assert node.namespaced_key?('foo', nil)
        assert !node.namespaced_key?('foo', 'foo')
      end

      def test_set_attribute_frees_nodes # testing a segv
        skip("JRuby doesn't do GC.") if Nokogiri.jruby?
        document = Nokogiri::XML.parse("<foo></foo>")

        node = document.root
        node['visible'] = 'foo'
        attribute = node.attribute('visible')
        text = Nokogiri::XML::Text.new 'bar', document
        attribute.add_child(text)

        begin
          gc_previous = GC.stress
          GC.stress = true
          node['visible'] = 'attr'
        ensure
          GC.stress = gc_previous
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
nokogiri-1.5.6.rc2 test/xml/test_node_attributes.rb
nokogiri-1.5.6.rc2-x86-mswin32-60 test/xml/test_node_attributes.rb
nokogiri-1.5.6.rc2-x86-mingw32 test/xml/test_node_attributes.rb
nokogiri-1.5.6.rc2-java test/xml/test_node_attributes.rb
nokogiri-1.5.6.rc1 test/xml/test_node_attributes.rb
nokogiri-1.5.6.rc1-java test/xml/test_node_attributes.rb