8000 add namespace test case for SAX2Parser · ruby/rexml@b9a8af2 · GitHub
[go: up one dir, main page]

Skip to content

Commit b9a8af2

Browse files
committed
add namespace test case for SAX2Parser
1 parent 35ee73e commit b9a8af2

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

test/test_sax.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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='&lt;'>
106+
<b />
107+
</a>
108+
</root>
109+
XML
110+
111+
parser = REXML::Parsers::SAX2Parser.new(xml)
112+
elements = []
113+
parser.listen(:start_element){|uri, localname, qname, attrs|
114+
elements << [uri, localname, qname, attrs]
115+
}
116+
parser.parse
117+
assert_equal([
118+
[nil, "root", "root", {}],
119+
[nil, "a", "a", {"att1"=>"1", "att2"=>"2", "att3"=>"&lt;"}],
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='&lt;'>
130+
<bar:b />
131+
</a>
132+
</root>
133+
XML
134+
135+
parser = REXML::Parsers::SAX2Parser.new(xml)
136+
elements = []
137+
parser.listen(:start_element){|uri, localname, qname, attrs|
138+
elements << [uri, localname, qname, attrs]
139+
}
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"=>"&lt;", "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

Comments
 (0)
0