nokogiri 1.9.0.rc1-java → 1.9.1-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nokogiri/css/parser.rb +61 -61
  3. data/lib/nokogiri/nokogiri.jar +0 -0
  4. data/lib/nokogiri/version.rb +1 -1
  5. data/lib/nokogiri/xml/document_fragment.rb +1 -1
  6. metadata +4 -146
  7. data/.autotest +0 -22
  8. data/.cross_rubies +0 -8
  9. data/.editorconfig +0 -17
  10. data/.gemtest +0 -0
  11. data/.travis.yml +0 -63
  12. data/CHANGELOG.md +0 -1402
  13. data/CONTRIBUTING.md +0 -42
  14. data/C_CODING_STYLE.rdoc +0 -33
  15. data/Gemfile +0 -23
  16. data/Gemfile-libxml-ruby +0 -3
  17. data/Manifest.txt +0 -371
  18. data/ROADMAP.md +0 -111
  19. data/Rakefile +0 -358
  20. data/SECURITY.md +0 -19
  21. data/STANDARD_RESPONSES.md +0 -47
  22. data/Y_U_NO_GEMSPEC.md +0 -155
  23. data/appveyor.yml +0 -29
  24. data/build_all +0 -48
  25. data/patches/sort-patches-by-date +0 -25
  26. data/suppressions/README.txt +0 -1
  27. data/suppressions/nokogiri_ruby-2.supp +0 -10
  28. data/tasks/test.rb +0 -100
  29. data/test/css/test_nthiness.rb +0 -226
  30. data/test/css/test_parser.rb +0 -386
  31. data/test/css/test_tokenizer.rb +0 -215
  32. data/test/css/test_xpath_visitor.rb +0 -96
  33. data/test/decorators/test_slop.rb +0 -23
  34. data/test/files/2ch.html +0 -108
  35. data/test/files/GH_1042.html +0 -18
  36. data/test/files/address_book.rlx +0 -12
  37. data/test/files/address_book.xml +0 -10
  38. data/test/files/atom.xml +0 -344
  39. data/test/files/bar/bar.xsd +0 -4
  40. data/test/files/bogus.xml +0 -0
  41. data/test/files/dont_hurt_em_why.xml +0 -422
  42. data/test/files/encoding.html +0 -82
  43. data/test/files/encoding.xhtml +0 -84
  44. data/test/files/exslt.xml +0 -8
  45. data/test/files/exslt.xslt +0 -35
  46. data/test/files/foo/foo.xsd +0 -4
  47. data/test/files/metacharset.html +0 -10
  48. data/test/files/namespace_pressure_test.xml +0 -1684
  49. data/test/files/noencoding.html +0 -47
  50. data/test/files/po.xml +0 -32
  51. data/test/files/po.xsd +0 -66
  52. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  53. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  54. data/test/files/saml/xenc_schema.xsd +0 -146
  55. data/test/files/saml/xmldsig_schema.xsd +0 -318
  56. data/test/files/shift_jis.html +0 -10
  57. data/test/files/shift_jis.xml +0 -5
  58. data/test/files/shift_jis_no_charset.html +0 -9
  59. data/test/files/slow-xpath.xml +0 -25509
  60. data/test/files/snuggles.xml +0 -3
  61. data/test/files/staff.dtd +0 -10
  62. data/test/files/staff.xml +0 -59
  63. data/test/files/staff.xslt +0 -32
  64. data/test/files/test_document_url/bar.xml +0 -2
  65. data/test/files/test_document_url/document.dtd +0 -4
  66. data/test/files/test_document_url/document.xml +0 -6
  67. data/test/files/tlm.html +0 -851
  68. data/test/files/to_be_xincluded.xml +0 -2
  69. data/test/files/valid_bar.xml +0 -2
  70. data/test/files/xinclude.xml +0 -4
  71. data/test/helper.rb +0 -271
  72. data/test/html/sax/test_parser.rb +0 -168
  73. data/test/html/sax/test_parser_context.rb +0 -46
  74. data/test/html/sax/test_parser_text.rb +0 -163
  75. data/test/html/sax/test_push_parser.rb +0 -87
  76. data/test/html/test_attributes.rb +0 -85
  77. data/test/html/test_builder.rb +0 -164
  78. data/test/html/test_document.rb +0 -722
  79. data/test/html/test_document_encoding.rb +0 -143
  80. data/test/html/test_document_fragment.rb +0 -310
  81. data/test/html/test_element_description.rb +0 -105
  82. data/test/html/test_named_characters.rb +0 -14
  83. data/test/html/test_node.rb +0 -212
  84. data/test/html/test_node_encoding.rb +0 -91
  85. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  86. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  87. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  88. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  89. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  90. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  91. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  92. data/test/test_convert_xpath.rb +0 -135
  93. data/test/test_css_cache.rb +0 -47
  94. data/test/test_encoding_handler.rb +0 -48
  95. data/test/test_memory_leak.rb +0 -226
  96. data/test/test_nokogiri.rb +0 -138
  97. data/test/test_soap4r_sax.rb +0 -52
  98. data/test/test_xslt_transforms.rb +0 -314
  99. data/test/xml/node/test_save_options.rb +0 -28
  100. data/test/xml/node/test_subclass.rb +0 -44
  101. data/test/xml/sax/test_parser.rb +0 -402
  102. data/test/xml/sax/test_parser_context.rb +0 -115
  103. data/test/xml/sax/test_parser_text.rb +0 -202
  104. data/test/xml/sax/test_push_parser.rb +0 -265
  105. data/test/xml/test_attr.rb +0 -96
  106. data/test/xml/test_attribute_decl.rb +0 -86
  107. data/test/xml/test_builder.rb +0 -353
  108. data/test/xml/test_c14n.rb +0 -180
  109. data/test/xml/test_cdata.rb +0 -54
  110. data/test/xml/test_comment.rb +0 -40
  111. data/test/xml/test_document.rb +0 -982
  112. data/test/xml/test_document_encoding.rb +0 -31
  113. data/test/xml/test_document_fragment.rb +0 -312
  114. data/test/xml/test_dtd.rb +0 -187
  115. data/test/xml/test_dtd_encoding.rb +0 -31
  116. data/test/xml/test_element_content.rb +0 -56
  117. data/test/xml/test_element_decl.rb +0 -73
  118. data/test/xml/test_entity_decl.rb +0 -122
  119. data/test/xml/test_entity_reference.rb +0 -262
  120. data/test/xml/test_namespace.rb +0 -96
  121. data/test/xml/test_node.rb +0 -1379
  122. data/test/xml/test_node_attributes.rb +0 -115
  123. data/test/xml/test_node_encoding.rb +0 -75
  124. data/test/xml/test_node_inheritance.rb +0 -32
  125. data/test/xml/test_node_reparenting.rb +0 -661
  126. data/test/xml/test_node_set.rb +0 -828
  127. data/test/xml/test_parse_options.rb +0 -64
  128. data/test/xml/test_processing_instruction.rb +0 -30
  129. data/test/xml/test_reader.rb +0 -620
  130. data/test/xml/test_reader_encoding.rb +0 -134
  131. data/test/xml/test_relax_ng.rb +0 -60
  132. data/test/xml/test_schema.rb +0 -142
  133. data/test/xml/test_syntax_error.rb +0 -36
  134. data/test/xml/test_text.rb +0 -69
  135. data/test/xml/test_unparented_node.rb +0 -483
  136. data/test/xml/test_xinclude.rb +0 -83
  137. data/test/xml/test_xpath.rb +0 -470
  138. data/test/xslt/test_custom_functions.rb +0 -133
  139. data/test/xslt/test_exception_handling.rb +0 -37
@@ -1,115 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require "helper"
4
-
5
- module Nokogiri
6
- module XML
7
- module SAX
8
- class TestParserContext < Nokogiri::SAX::TestCase
9
- def setup
10
- @xml = '<hello>
11
-
12
- world
13
- <inter>
14
- <net>
15
- </net>
16
- </inter>
17
-
18
- </hello>'
19
- end
20
-
21
- class Counter < Nokogiri::XML::SAX::Document
22
- attr_accessor :context, :lines, :columns
23
- def initialize
24
- @context = nil
25
- @lines = []
26
- @columns = []
27
- end
28
-
29
- def start_element name, attrs = []
30
- @lines << [name, context.line]
31
- @columns << [name, context.column]
32
- end
33
- end
34
-
35
- def test_line_numbers
36
- sax_handler = Counter.new
37
-
38
- parser = Nokogiri::XML::SAX::Parser.new(sax_handler)
39
- parser.parse(@xml) do |ctx|
40
- sax_handler.context = ctx
41
- end
42
-
43
- assert_equal [["hello", 1], ["inter", 4], ["net", 5]],
44
- sax_handler.lines
45
- end
46
-
47
- def test_column_numbers
48
- sax_handler = Counter.new
49
-
50
- parser = Nokogiri::XML::SAX::Parser.new(sax_handler)
51
- parser.parse(@xml) do |ctx|
52
- sax_handler.context = ctx
53
- end
54
-
55
- assert_equal [["hello", 7], ["inter", 7], ["net", 9]],
56
- sax_handler.columns
57
- end
58
-
59
- def test_replace_entities
60
- pc = ParserContext.new StringIO.new('<root />'), 'UTF-8'
61
- pc.replace_entities = false
62
- assert_equal false, pc.replace_entities
63
-
64
- pc.replace_entities = true
65
- assert_equal true, pc.replace_entities
66
- end
67
-
68
- def test_recovery
69
- pc = ParserContext.new StringIO.new('<root />'), 'UTF-8'
70
- pc.recovery = false
71
- assert_equal false, pc.recovery
72
-
73
- pc.recovery = true
74
- assert_equal true, pc.recovery
75
- end
76
-
77
- def test_from_io
78
- ctx = ParserContext.new StringIO.new('fo'), 'UTF-8'
79
- assert ctx
80
- end
81
-
82
- def test_from_string
83
- assert ParserContext.new 'blah blah'
84
- end
85
-
86
- def test_parse_with
87
- ctx = ParserContext.new 'blah'
88
- assert_raises ArgumentError do
89
- ctx.parse_with nil
90
- end
91
- end
92
-
93
- def test_parse_with_sax_parser
94
- xml = "<root />"
95
- ctx = ParserContext.new xml
96
- parser = Parser.new Doc.new
97
- assert_nil ctx.parse_with parser
98
- end
99
-
100
- def test_from_file
101
- ctx = ParserContext.file XML_FILE
102
- parser = Parser.new Doc.new
103
- assert_nil ctx.parse_with parser
104
- end
105
-
106
- def test_parse_with_returns_nil
107
- xml = "<root />"
108
- ctx = ParserContext.new xml
109
- parser = Parser.new Doc.new
110
- assert_nil ctx.parse_with(parser)
111
- end
112
- end
113
- end
114
- end
115
- end
@@ -1,202 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require "helper"
3
-
4
- module Nokogiri
5
- module XML
6
- module SAX
7
- class TestParserText < Nokogiri::SAX::TestCase
8
- def setup
9
- super
10
- @doc = DocWithOrderedItems.new
11
- @parser = XML::SAX::Parser.new @doc
12
- end
13
-
14
- def test_texts_order
15
- xml = <<-eoxml
16
- <?xml version="1.0" ?>
17
- <root>
18
- text 0
19
- <p>
20
- text 1
21
- <span>text 2</span>
22
- text 3
23
- </p>
24
-
25
- text 4
26
- <!--
27
- text 5
28
- -->
29
-
30
- <p>
31
- <!-- text 6 -->
32
- <span><!-- text 7 --></span>
33
- <!-- text 8 -->
34
- </p>
35
-
36
- <!-- text 9 -->
37
- <![CDATA[ text 10 ]]>
38
-
39
- <p>
40
- <![CDATA[ text 11 ]]>
41
- <span><![CDATA[ text 12 ]]></span>
42
- <![CDATA[ text 13 ]]>
43
- </p>
44
- </root>
45
- eoxml
46
-
47
- @parser.parse xml
48
- items = @doc.items.get_root_content "root"
49
- items = items.select_methods [
50
- :start_element, :end_element,
51
- :characters, :comment, :cdata_block
52
- ]
53
- items.strip_text! [:characters, :comment, :cdata_block]
54
-
55
- assert_equal [
56
- [:characters, 'text 0'],
57
-
58
- [:start_element, 'p', []],
59
- [:characters, 'text 1'],
60
-
61
- [:start_element, 'span', []],
62
- [:characters, 'text 2'],
63
- [:end_element, 'span'],
64
-
65
- [:characters, 'text 3'],
66
- [:end_element, 'p'],
67
-
68
- [:characters, 'text 4'],
69
- [:comment, 'text 5'],
70
- [:characters, ''],
71
-
72
- [:start_element, 'p', []],
73
- [:characters, ''],
74
- [:comment, 'text 6'],
75
- [:characters, ''],
76
-
77
- [:start_element, 'span', []],
78
- [:comment, 'text 7'],
79
- [:end_element, 'span'],
80
- [:characters, ''],
81
-
82
- [:comment, 'text 8'],
83
- [:characters, ''],
84
- [:end_element, 'p'],
85
- [:characters, ''],
86
-
87
- [:comment, 'text 9'],
88
- [:characters, ''],
89
- [:cdata_block, 'text 10'],
90
- [:characters, ''],
91
-
92
- [:start_element, 'p', []],
93
- [:characters, ''],
94
- [:cdata_block, 'text 11'],
95
- [:characters, ''],
96
-
97
- [:start_element, 'span', []],
98
- [:cdata_block, 'text 12'],
99
- [:end_element, 'span'],
100
- [:characters, ''],
101
-
102
- [:cdata_block, 'text 13'],
103
- [:characters, ''],
104
-
105
- [:end_element, 'p'],
106
- [:characters, '']
107
- ], items
108
-
109
- nil
110
- end
111
-
112
- def text_whitespace
113
- xml = <<-eoxml
114
- <?xml version="1.0" ?>
115
- <root>
116
- <p>
117
- <span></span>
118
- <span> </span>
119
- <span>
120
-
121
- </span>
122
- </p>
123
- <p>
124
- <!---->
125
- <!-- -->
126
- <!--
127
-
128
- -->
129
- </p>
130
- <p>
131
- <![CDATA[]]>
132
- <![CDATA[ ]]>
133
- <![CDATA[
134
-
135
- ]]>
136
- </p>
137
- </root>
138
- eoxml
139
-
140
- @parser.parse xml
141
- items = @doc.items.get_root_content "root"
142
- items = items.select_methods [
143
- :start_element, :end_element,
144
- :characters, :comment, :cdata_block
145
- ]
146
- items.strip_text! [:characters, :comment, :cdata_block]
147
-
148
- assert_equal [
149
- [:characters, ''],
150
- [:start_element, 'p', []],
151
-
152
- [:characters, ''],
153
- [:start_element, 'span', []],
154
- [:end_element, 'span'],
155
- [:characters, ''],
156
-
157
- [:start_element, 'span', []],
158
- [:characters, ''],
159
- [:end_element, 'span'],
160
- [:characters, ''],
161
-
162
- [:start_element, 'span', []],
163
- [:characters, ''],
164
- [:end_element, 'span'],
165
- [:characters, ''],
166
-
167
- [:end_element, 'p'],
168
- [:characters, ''],
169
-
170
- [:start_element, 'p', []],
171
- [:characters, ''],
172
-
173
- [:comment, ''],
174
- [:characters, ''],
175
- [:comment, ''],
176
- [:characters, ''],
177
- [:comment, ''],
178
- [:characters, ''],
179
-
180
- [:end_element, 'p'],
181
- [:characters, ''],
182
-
183
- [:start_element, 'p', []],
184
- [:characters, ''],
185
-
186
- [:cdata_block, ''],
187
- [:characters, ''],
188
- [:cdata_block, ''],
189
- [:characters, ''],
190
- [:cdata_block, ''],
191
- [:characters, ''],
192
-
193
- [:end_element, 'p'],
194
- [:characters, '']
195
- ], items
196
-
197
- nil
198
- end
199
- end
200
- end
201
- end
202
- end
@@ -1,265 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- require "helper"
4
-
5
- module Nokogiri
6
- module XML
7
- module SAX
8
- class TestPushParser < Nokogiri::SAX::TestCase
9
- def setup
10
- super
11
- @parser = XML::SAX::PushParser.new(Doc.new)
12
- end
13
-
14
- def test_exception
15
- assert_raises(SyntaxError) do
16
- @parser << "<foo /><foo />"
17
- end
18
-
19
- assert_raises(SyntaxError) do
20
- @parser << nil
21
- end
22
- end
23
-
24
- def test_early_finish
25
- @parser << "<foo>"
26
- assert_raises(SyntaxError) do
27
- @parser.finish
28
- end
29
- end
30
-
31
- def test_write_last_chunk
32
- @parser << "<foo>"
33
- @parser.write "</foo>", true
34
- assert_equal [["foo", []]], @parser.document.start_elements
35
- assert_equal [["foo"]], @parser.document.end_elements
36
- end
37
-
38
- def test_empty_doc
39
- @parser.options |= XML::ParseOptions::RECOVER
40
- @parser.write "", true
41
- assert_nil @parser.document.start_elements
42
- assert_nil @parser.document.end_elements
43
- end
44
-
45
-
46
- def test_finish_should_rethrow_last_error
47
- begin
48
- @parser << "</foo>"
49
- rescue => e
50
- expected = e
51
- end
52
-
53
- begin
54
- @parser.finish
55
- rescue => e
56
- actual = e
57
- end
58
-
59
- assert_equal actual.message, expected.message
60
- end
61
-
62
- def test_should_throw_error_returned_by_document
63
- doc = Doc.new
64
- class << doc
65
- def error msg
66
- raise "parse error"
67
- end
68
- end
69
-
70
- @parser = XML::SAX::PushParser.new(doc)
71
- begin
72
- @parser << "</foo>"
73
- rescue => e
74
- actual = e
75
- end
76
-
77
- assert_equal actual.message, "parse error"
78
- end
79
-
80
- def test_writing_nil
81
- assert_equal @parser.write(nil), @parser
82
- end
83
-
84
- def test_end_document_called
85
- @parser.<<(<<-eoxml)
86
- <p id="asdfasdf">
87
- <!-- This is a comment -->
88
- Paragraph 1
89
- </p>
90
- eoxml
91
- assert ! @parser.document.end_document_called
92
- @parser.finish
93
- assert @parser.document.end_document_called
94
- end
95
-
96
- def test_start_element
97
- @parser.<<(<<-eoxml)
98
- <p id="asdfasdf">
99
- eoxml
100
-
101
- assert_equal [["p", [["id", "asdfasdf"]]]],
102
- @parser.document.start_elements
103
-
104
- @parser.<<(<<-eoxml)
105
- <!-- This is a comment -->
106
- Paragraph 1
107
- </p>
108
- eoxml
109
- assert_equal [' This is a comment '], @parser.document.comments
110
- @parser.finish
111
- end
112
-
113
- def test_start_element_with_namespaces
114
- @parser.<<(<<-eoxml)
115
- <p xmlns:foo="http://foo.example.com/">
116
- eoxml
117
-
118
- assert_equal [["p", [["xmlns:foo", "http://foo.example.com/"]]]],
119
- @parser.document.start_elements
120
-
121
- @parser.<<(<<-eoxml)
122
- <!-- This is a comment -->
123
- Paragraph 1
124
- </p>
125
- eoxml
126
- assert_equal [' This is a comment '], @parser.document.comments
127
- @parser.finish
128
- end
129
-
130
- def test_start_element_ns
131
- @parser.<<(<<-eoxml)
132
- <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' size='large'></stream:stream>
133
- eoxml
134
-
135
- assert_equal 1, @parser.document.start_elements_namespace.length
136
- el = @parser.document.start_elements_namespace.first
137
-
138
- assert_equal 'stream', el.first
139
- assert_equal 2, el[1].length
140
- assert_equal [['version', '1.0'], ['size', 'large']],
141
- el[1].map { |x| [x.localname, x.value] }
142
-
143
- assert_equal 'stream', el[2]
144
- assert_equal 'http://etherx.jabber.org/streams', el[3]
145
- @parser.finish
146
- end
147
-
148
- def test_end_element_ns
149
- @parser.<<(<<-eoxml)
150
- <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'></stream:stream>
151
- eoxml
152
-
153
- assert_equal [['stream', 'stream', 'http://etherx.jabber.org/streams']],
154
- @parser.document.end_elements_namespace
155
- @parser.finish
156
- end
157
-
158
- def test_chevron_partial_xml
159
- @parser.<<(<<-eoxml)
160
- <p id="asdfasdf">
161
- eoxml
162
-
163
- @parser.<<(<<-eoxml)
164
- <!-- This is a comment -->
165
- Paragraph 1
166
- </p>
167
- eoxml
168
- assert_equal [' This is a comment '], @parser.document.comments
169
- @parser.finish
170
- end
171
-
172
- def test_chevron
173
- @parser.<<(<<-eoxml)
174
- <p id="asdfasdf">
175
- <!-- This is a comment -->
176
- Paragraph 1
177
- </p>
178
- eoxml
179
- @parser.finish
180
- assert_equal [' This is a comment '], @parser.document.comments
181
- end
182
-
183
- def test_default_options
184
- assert_equal 0, @parser.options
185
- end
186
-
187
- def test_recover
188
- @parser.options |= XML::ParseOptions::RECOVER
189
- @parser.<<(<<-eoxml)
190
- <p>
191
- Foo
192
- <bar>
193
- Bar
194
- </p>
195
- eoxml
196
- @parser.finish
197
- assert(@parser.document.errors.size >= 1)
198
- assert_equal [["p", []], ["bar", []]], @parser.document.start_elements
199
- assert_equal "FooBar", @parser.document.data.map { |x|
200
- x.gsub(/\s/, '')
201
- }.join
202
- end
203
-
204
- def test_broken_encoding
205
- skip("ultra hard to fix for pure Java version") if Nokogiri.jruby?
206
- @parser.options |= XML::ParseOptions::RECOVER
207
- # This is ISO_8859-1:
208
- @parser.<< "<?xml version='1.0' encoding='UTF-8'?><r>Gau\337</r>"
209
- @parser.finish
210
- assert(@parser.document.errors.size >= 1)
211
- assert_equal "Gau\337", @parser.document.data.join
212
- assert_equal [["r"]], @parser.document.end_elements
213
- end
214
-
215
- def test_replace_entities_attribute_behavior
216
- if Nokogiri.uses_libxml?
217
- # initially false
218
- assert_equal false, @parser.replace_entities
219
-
220
- # can be set to true
221
- @parser.replace_entities = true
222
- assert_equal true, @parser.replace_entities
223
-
224
- # can be set to false
225
- @parser.replace_entities = false
226
- assert_equal false, @parser.replace_entities
227
- else
228
- # initially true
229
- assert_equal true, @parser.replace_entities
230
-
231
- # ignore attempts to set to false
232
- @parser.replace_entities = false # TODO: should we raise an exception here?
233
- assert_equal true, @parser.replace_entities
234
- end
235
- end
236
-
237
- def test_untouched_entities
238
- skip("entities are always replaced in pure Java version") if Nokogiri.jruby?
239
- @parser.<<(<<-eoxml)
240
- <p id="asdf&amp;asdf">
241
- <!-- This is a comment -->
242
- Paragraph 1 &amp; 2
243
- </p>
244
- eoxml
245
- @parser.finish
246
- assert_equal [["p", [["id", "asdf&#38;asdf"]]]], @parser.document.start_elements
247
- assert_equal "Paragraph 1 & 2", @parser.document.data.join.strip
248
- end
249
-
250
- def test_replaced_entities
251
- @parser.replace_entities = true
252
- @parser.<<(<<-eoxml)
253
- <p id="asdf&amp;asdf">
254
- <!-- This is a comment -->
255
- Paragraph 1 &amp; 2
256
- </p>
257
- eoxml
258
- @parser.finish
259
- assert_equal [["p", [["id", "asdf&asdf"]]]], @parser.document.start_elements
260
- assert_equal "Paragraph 1 & 2", @parser.document.data.join.strip
261
- end
262
- end
263
- end
264
- end
265
- end