@@ -99,6 +99,52 @@ def test_sax2
9999 end
100100 end
101101
102+ def test_without_namespace
103+ xml = <<-XML
104+ <root >
105+ <a att1='1' att2='2' att3='<'>
106+ <b />
107+ </a>
108+ </root>
109+ XML
110+
111+ parser = REXML ::Parsers ::SAX2Parser . new ( xml )
112+ elements = [ ]
113+ parser . listen ( :start_element ) do |uri , localname , qname , attrs |
114+ elements << [ uri , localname , qname , attrs ]
115+ end
116+ parser . parse
117+ assert_equal ( [
118+ [ nil , "root" , "root" , { } ] ,
119+ [ nil , "a" , "a" , { "att1" => "1" , "att2" => "2" , "att3" => "<" } ] ,
120+ [ nil , "b" , "b" , { } ]
121+ ] , elements )
122+ end
123+
124+ def test_with_namespace
125+ xml = <<-XML
126+ <root xmlns="http://example.org/default"
127+ xmlns:foo="http://example.org/foo"
128+ xmlns:bar="http://example.org/bar">
129+ <a foo:att='1' bar:att='2' att='<'>
130+ <bar:b />
131+ </a>
132+ </root>
133+ XML
134+
135+ parser = REXML ::Parsers ::SAX2Parser . new ( xml )
136+ elements = [ ]
137+ parser . listen ( :start_element ) do |uri , localname , qname , attrs |
138+ elements << [ uri , localname , qname , attrs ]
139+ end
140+ parser . parse
141+ assert_equal ( [
142+ [ "http://example.org/default" , "root" , "root" , { "xmlns" => "http://example.org/default" , "xmlns:bar" => "http://example.org/bar" , "xmlns:foo" => "http://example.org/foo" } ] ,
143+ [ "http://example.org/default" , "a" , "a" , { "att" => "<" , "bar:att" => "2" , "foo:att" => "1" } ] ,
144+ [ "http://example.org/bar" , "b" , "bar:b" , { } ]
145+ ] , elements )
146+ end
147+
102148 class EntityExpansionLimitTest < Test ::Unit ::TestCase
103149 class GeneralEntityTest < self
104150 def test_have_value
0 commit comments