summaryrefslogtreecommitdiff
path: root/test/rexml/test_attributes.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rexml/test_attributes.rb')
-rw-r--r--test/rexml/test_attributes.rb342
1 files changed, 171 insertions, 171 deletions
diff --git a/test/rexml/test_attributes.rb b/test/rexml/test_attributes.rb
index fea4ee7..aea1d88 100644
--- a/test/rexml/test_attributes.rb
+++ b/test/rexml/test_attributes.rb
@@ -2,203 +2,203 @@ require 'test/unit/testcase'
require 'rexml/document'
module REXMLTests
-class AttributesTester < Test::Unit::TestCase
- include REXML
- def test_accessor
- doc = Document.new("<a xmlns:foo='a' xmlns:bar='b' foo:att='1' bar:att='2' att='3'/>")
- assert_equal '3', doc.root.attributes['att']
- assert_equal '2', doc.root.attributes['bar:att']
- doc.root.attributes['att'] = 5
- assert_equal '5', doc.root.attributes['att']
- end
-
- def test_each_attribute
- doc = Document.new('<a x="1" y="2"/>')
- doc.root.attributes.each_attribute {|attr|
- if attr.expanded_name == 'x'
- assert_equal '1', attr.value
- elsif attr.expanded_name == 'y'
- assert_equal '2', attr.value
- else
- assert_fail "No such attribute!!"
- end
- }
- end
+ class AttributesTester < Test::Unit::TestCase
+ include REXML
+ def test_accessor
+ doc = Document.new("<a xmlns:foo='a' xmlns:bar='b' foo:att='1' bar:att='2' att='3'/>")
+ assert_equal '3', doc.root.attributes['att']
+ assert_equal '2', doc.root.attributes['bar:att']
+ doc.root.attributes['att'] = 5
+ assert_equal '5', doc.root.attributes['att']
+ end
- def test_each
- doc = Document.new('<a x="1" y="2"/>')
- doc.root.attributes.each {|name, value|
- if name == 'x'
- assert_equal '1', value
- elsif name == 'y'
- assert_equal '2', value
- else
- assert_fail "No such attribute!!"
- end
- }
- end
+ def test_each_attribute
+ doc = Document.new('<a x="1" y="2"/>')
+ doc.root.attributes.each_attribute {|attr|
+ if attr.expanded_name == 'x'
+ assert_equal '1', attr.value
+ elsif attr.expanded_name == 'y'
+ assert_equal '2', attr.value
+ else
+ assert_fail "No such attribute!!"
+ end
+ }
+ end
- def test_get_attribute
- doc = Document.new('<a xmlns:x="a" x:foo="1" foo="2" bar="3"/>')
- assert_equal '2', doc.root.attributes.get_attribute("foo").value
- assert_equal '1', doc.root.attributes.get_attribute("x:foo").value
- end
+ def test_each
+ doc = Document.new('<a x="1" y="2"/>')
+ doc.root.attributes.each {|name, value|
+ if name == 'x'
+ assert_equal '1', value
+ elsif name == 'y'
+ assert_equal '2', value
+ else
+ assert_fail "No such attribute!!"
+ end
+ }
+ end
- def test_size
- doc = Document.new("<a xmlns:foo='a' x='1' y='2' foo:x='3'/>")
- assert_equal 4, doc.root.attributes.length
- end
+ def test_get_attribute
+ doc = Document.new('<a xmlns:x="a" x:foo="1" foo="2" bar="3"/>')
+ assert_equal '2', doc.root.attributes.get_attribute("foo").value
+ assert_equal '1', doc.root.attributes.get_attribute("x:foo").value
+ end
- def test_setter
- doc = Document.new("<a xmlns:x='a' x:foo='1' foo='3'/>")
- doc.root.attributes['y:foo'] = '2'
- assert_equal '2', doc.root.attributes['y:foo']
- doc.root.attributes['foo'] = '4'
- assert_equal '4', doc.root.attributes['foo']
- doc.root.attributes['x:foo'] = nil
- assert_equal 3, doc.root.attributes.size
- end
+ def test_size
+ doc = Document.new("<a xmlns:foo='a' x='1' y='2' foo:x='3'/>")
+ assert_equal 4, doc.root.attributes.length
+ end
- def test_delete
- doc = Document.new("<a xmlns:y='a' xmlns:x='b' xmlns:z='c' y:foo='0' x:foo='1' foo='3' z:foo='4'/>")
- doc.root.attributes.delete 'foo'
- assert_equal 6, doc.root.attributes.size
- assert_equal '1', doc.root.attributes['x:foo']
+ def test_setter
+ doc = Document.new("<a xmlns:x='a' x:foo='1' foo='3'/>")
+ doc.root.attributes['y:foo'] = '2'
+ assert_equal '2', doc.root.attributes['y:foo']
+ doc.root.attributes['foo'] = '4'
+ assert_equal '4', doc.root.attributes['foo']
+ doc.root.attributes['x:foo'] = nil
+ assert_equal 3, doc.root.attributes.size
+ end
- doc.root.attributes.delete 'x:foo'
- assert_equal 5, doc.root.attributes.size
+ def test_delete
+ doc = Document.new("<a xmlns:y='a' xmlns:x='b' xmlns:z='c' y:foo='0' x:foo='1' foo='3' z:foo='4'/>")
+ doc.root.attributes.delete 'foo'
+ assert_equal 6, doc.root.attributes.size
+ assert_equal '1', doc.root.attributes['x:foo']
- attr = doc.root.attributes.get_attribute('y:foo')
- doc.root.attributes.delete attr
- assert_equal 4, doc.root.attributes.size
+ doc.root.attributes.delete 'x:foo'
+ assert_equal 5, doc.root.attributes.size
- assert_equal '4', doc.root.attributes['z:foo']
- end
+ attr = doc.root.attributes.get_attribute('y:foo')
+ doc.root.attributes.delete attr
+ assert_equal 4, doc.root.attributes.size
- def test_prefixes
- doc = Document.new("<a xmlns='foo' xmlns:x='bar' xmlns:y='twee' z='glorp' x:k='gru'/>")
- prefixes = doc.root.attributes.prefixes
- assert_equal 2, prefixes.size
- assert_equal 0, (prefixes - ['x', 'y']).size
- end
+ assert_equal '4', doc.root.attributes['z:foo']
+ end
- # Contributed by Mike Stok
- def test_values_with_apostrophes
- doc = Document.new(%q#<tag h1="1'2'" h2='1"2'/>#)
- s = doc.to_s
- assert(s =~ /h1='1&apos;2&apos;'/)
- assert(s =~ /h2='1"2'/)
- end
+ def test_prefixes
+ doc = Document.new("<a xmlns='foo' xmlns:x='bar' xmlns:y='twee' z='glorp' x:k='gru'/>")
+ prefixes = doc.root.attributes.prefixes
+ assert_equal 2, prefixes.size
+ assert_equal 0, (prefixes - ['x', 'y']).size
+ end
- # Submitted by Kou
- def test_namespace_conflict
- assert_raise( ParseException,
- "Declaring two attributes with the same namespace should be an error" ) do
- REXML::Document.new <<-XML
- <x xmlns:n1="http://www.w3.org"
- xmlns:n2="http://www.w3.org" >
- <bad n1:a="1" n2:a="2" />
- </x>
- XML
+ # Contributed by Mike Stok
+ def test_values_with_apostrophes
+ doc = Document.new(%q#<tag h1="1'2'" h2='1"2'/>#)
+ s = doc.to_s
+ assert(s =~ /h1='1&apos;2&apos;'/)
+ assert(s =~ /h2='1"2'/)
end
- REXML::Document.new("<a xmlns:a='a' xmlns:b='a'></a>")
- end
+ # Submitted by Kou
+ def test_namespace_conflict
+ assert_raise( ParseException,
+ "Declaring two attributes with the same namespace should be an error" ) do
+ REXML::Document.new <<-XML
+ <x xmlns:n1="http://www.w3.org"
+ xmlns:n2="http://www.w3.org" >
+ <bad n1:a="1" n2:a="2" />
+ </x>
+ XML
+ end
- # Submitted by Kou
- def test_attribute_deletion
- e = REXML::Element.new
- e.add_namespace("a", "http://a/")
- e.add_namespace("b", "http://b/")
- e.add_attributes({"c" => "cc", "a:c" => "cC", "b:c" => "CC"})
+ REXML::Document.new("<a xmlns:a='a' xmlns:b='a'></a>")
+ end
- e.attributes.delete("c")
- assert_nil(e.attributes.get_attribute("c"))
+ # Submitted by Kou
+ def test_attribute_deletion
+ e = REXML::Element.new
+ e.add_namespace("a", "http://a/")
+ e.add_namespace("b", "http://b/")
+ e.add_attributes({"c" => "cc", "a:c" => "cC", "b:c" => "CC"})
- before_size = e.attributes.size
- e.attributes.delete("c")
- assert_nil(e.attributes.get_attribute("c"))
- assert_equal(before_size, e.attributes.size)
+ e.attributes.delete("c")
+ assert_nil(e.attributes.get_attribute("c"))
- e.attributes.delete(e.attributes.get_attribute("a:c"))
- assert_nil(e.attributes.get_attribute("a:c"))
+ before_size = e.attributes.size
+ e.attributes.delete("c")
+ assert_nil(e.attributes.get_attribute("c"))
+ assert_equal(before_size, e.attributes.size)
- e.attributes.delete("b:c")
- assert_nil(e.attributes.get_attribute("b:c"))
+ e.attributes.delete(e.attributes.get_attribute("a:c"))
+ assert_nil(e.attributes.get_attribute("a:c"))
- before_size = e.attributes.size
- e.attributes.delete(e.attributes.get_attribute("b:c"))
- assert_nil(e.attributes.get_attribute("b:c"))
- assert_equal(before_size, e.attributes.size)
+ e.attributes.delete("b:c")
+ assert_nil(e.attributes.get_attribute("b:c"))
- before_size = e.attributes.size
- e.attributes.delete("c")
- assert_nil(e.attributes.get_attribute("c"))
- assert_equal(before_size, e.attributes.size)
+ before_size = e.attributes.size
+ e.attributes.delete(e.attributes.get_attribute("b:c"))
+ assert_nil(e.attributes.get_attribute("b:c"))
+ assert_equal(before_size, e.attributes.size)
- e.add_attribute("c", "cc")
+ before_size = e.attributes.size
+ e.attributes.delete("c")
+ assert_nil(e.attributes.get_attribute("c"))
+ assert_equal(before_size, e.attributes.size)
- e.attributes.delete(e.attributes.get_attribute("c"))
- assert_nil(e.attributes.get_attribute("c"))
- end
+ e.add_attribute("c", "cc")
- # Submitted by Kou
- def test_element_usage
- attr = Attribute.new("name", "value")
- elem = Element.new("elem")
- a = Attribute.new(attr, elem)
- assert_equal(elem, a.element)
- end
+ e.attributes.delete(e.attributes.get_attribute("c"))
+ assert_nil(e.attributes.get_attribute("c"))
+ end
- def attr_test(attr_name,attr_value)
- a1 = REXML::Attribute.new(attr_name,attr_value)
+ # Submitted by Kou
+ def test_element_usage
+ attr = Attribute.new("name", "value")
+ elem = Element.new("elem")
+ a = Attribute.new(attr, elem)
+ assert_equal(elem, a.element)
+ end
- s1 = a1.value
- s2 = a1.value
+ def attr_test(attr_name,attr_value)
+ a1 = REXML::Attribute.new(attr_name,attr_value)
- #p s1
- #p s2
- assert_equal(s1,s2)
+ s1 = a1.value
+ s2 = a1.value
- a2 = REXML::Attribute.new(attr_name,attr_value)
+ #p s1
+ #p s2
+ assert_equal(s1,s2)
- a2.to_s # NB invocation of to_s
- s1 = a2.value
- s2 = a2.value
+ a2 = REXML::Attribute.new(attr_name,attr_value)
- #p s1
- #p s2
- assert_equal(s1,s2)
- end
+ a2.to_s # NB invocation of to_s
+ s1 = a2.value
+ s2 = a2.value
- def test_amp_attributes
- attr_test('name','value with &amp; ampersand only')
- end
+ #p s1
+ #p s2
+ assert_equal(s1,s2)
+ end
- def test_amp_and_lf_attributes
- attr_test('name','value with LF &#x000a; &amp; ampersand')
- end
+ def test_amp_attributes
+ attr_test('name','value with &amp; ampersand only')
+ end
- def test_quoting
- d = Document.new(%q{<a x='1' y="2"/>})
- assert_equal( %q{<a x='1' y='2'/>}, d.to_s )
- d.root.context[:attribute_quote] = :quote
- assert_equal( %q{<a x="1" y="2"/>}, d.to_s )
+ def test_amp_and_lf_attributes
+ attr_test('name','value with LF &#x000a; &amp; ampersand')
+ end
- d = Document.new(%q{<a x='1' y="2"><b z='3'/></a>})
- assert_equal( %q{<a x='1' y='2'><b z='3'/></a>}, d.to_s )
- d.root.context[:attribute_quote] = :quote
- assert_equal( %q{<a x="1" y="2"><b z="3"/></a>}, d.to_s )
- end
+ def test_quoting
+ d = Document.new(%q{<a x='1' y="2"/>})
+ assert_equal( %q{<a x='1' y='2'/>}, d.to_s )
+ d.root.context[:attribute_quote] = :quote
+ assert_equal( %q{<a x="1" y="2"/>}, d.to_s )
- def test_ticket_127
- doc = Document.new
- doc.add_element 'a', { 'v' => 'x & y' }
- assert doc.to_s.index(';')
- end
+ d = Document.new(%q{<a x='1' y="2"><b z='3'/></a>})
+ assert_equal( %q{<a x='1' y='2'><b z='3'/></a>}, d.to_s )
+ d.root.context[:attribute_quote] = :quote
+ assert_equal( %q{<a x="1" y="2"><b z="3"/></a>}, d.to_s )
+ end
+
+ def test_ticket_127
+ doc = Document.new
+ doc.add_element 'a', { 'v' => 'x & y' }
+ assert doc.to_s.index(';')
+ end
- def test_to_a_with_namespaces
- document = Document.new(<<-XML)
+ def test_to_a_with_namespaces
+ document = Document.new(<<-XML)
<root
xmlns:ns1="http://example.org/ns1"
xmlns:ns2="http://example.org/ns2">
@@ -209,14 +209,14 @@ class AttributesTester < Test::Unit::TestCase
other-attribute="other-value"/>
</root>
XML
- child = document.root.elements["child"]
- assert_equal([
- "attribute='no-ns'",
- "ns1:attribute='ns1'",
- "ns2:attribute='ns2'",
- "other-attribute='other-value'",
- ],
- child.attributes.to_a.collect(&:to_string).sort)
+ child = document.root.elements["child"]
+ assert_equal([
+ "attribute='no-ns'",
+ "ns1:attribute='ns1'",
+ "ns2:attribute='ns2'",
+ "other-attribute='other-value'",
+ ],
+ child.attributes.to_a.collect(&:to_string).sort)
+ end
end
end
-end