nokogiri 1.9.0.rc1 → 1.9.0

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nokogiri/css/parser.rb +61 -61
  3. data/lib/nokogiri/version.rb +1 -1
  4. metadata +4 -146
  5. data/.autotest +0 -22
  6. data/.cross_rubies +0 -8
  7. data/.editorconfig +0 -17
  8. data/.gemtest +0 -0
  9. data/.travis.yml +0 -63
  10. data/CHANGELOG.md +0 -1402
  11. data/CONTRIBUTING.md +0 -42
  12. data/C_CODING_STYLE.rdoc +0 -33
  13. data/Gemfile +0 -23
  14. data/Gemfile-libxml-ruby +0 -3
  15. data/Manifest.txt +0 -371
  16. data/ROADMAP.md +0 -111
  17. data/Rakefile +0 -358
  18. data/SECURITY.md +0 -19
  19. data/STANDARD_RESPONSES.md +0 -47
  20. data/Y_U_NO_GEMSPEC.md +0 -155
  21. data/appveyor.yml +0 -29
  22. data/build_all +0 -48
  23. data/patches/sort-patches-by-date +0 -25
  24. data/suppressions/README.txt +0 -1
  25. data/suppressions/nokogiri_ruby-2.supp +0 -10
  26. data/tasks/test.rb +0 -100
  27. data/test/css/test_nthiness.rb +0 -226
  28. data/test/css/test_parser.rb +0 -386
  29. data/test/css/test_tokenizer.rb +0 -215
  30. data/test/css/test_xpath_visitor.rb +0 -96
  31. data/test/decorators/test_slop.rb +0 -23
  32. data/test/files/2ch.html +0 -108
  33. data/test/files/GH_1042.html +0 -18
  34. data/test/files/address_book.rlx +0 -12
  35. data/test/files/address_book.xml +0 -10
  36. data/test/files/atom.xml +0 -344
  37. data/test/files/bar/bar.xsd +0 -4
  38. data/test/files/bogus.xml +0 -0
  39. data/test/files/dont_hurt_em_why.xml +0 -422
  40. data/test/files/encoding.html +0 -82
  41. data/test/files/encoding.xhtml +0 -84
  42. data/test/files/exslt.xml +0 -8
  43. data/test/files/exslt.xslt +0 -35
  44. data/test/files/foo/foo.xsd +0 -4
  45. data/test/files/metacharset.html +0 -10
  46. data/test/files/namespace_pressure_test.xml +0 -1684
  47. data/test/files/noencoding.html +0 -47
  48. data/test/files/po.xml +0 -32
  49. data/test/files/po.xsd +0 -66
  50. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  51. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  52. data/test/files/saml/xenc_schema.xsd +0 -146
  53. data/test/files/saml/xmldsig_schema.xsd +0 -318
  54. data/test/files/shift_jis.html +0 -10
  55. data/test/files/shift_jis.xml +0 -5
  56. data/test/files/shift_jis_no_charset.html +0 -9
  57. data/test/files/slow-xpath.xml +0 -25509
  58. data/test/files/snuggles.xml +0 -3
  59. data/test/files/staff.dtd +0 -10
  60. data/test/files/staff.xml +0 -59
  61. data/test/files/staff.xslt +0 -32
  62. data/test/files/test_document_url/bar.xml +0 -2
  63. data/test/files/test_document_url/document.dtd +0 -4
  64. data/test/files/test_document_url/document.xml +0 -6
  65. data/test/files/tlm.html +0 -851
  66. data/test/files/to_be_xincluded.xml +0 -2
  67. data/test/files/valid_bar.xml +0 -2
  68. data/test/files/xinclude.xml +0 -4
  69. data/test/helper.rb +0 -271
  70. data/test/html/sax/test_parser.rb +0 -168
  71. data/test/html/sax/test_parser_context.rb +0 -46
  72. data/test/html/sax/test_parser_text.rb +0 -163
  73. data/test/html/sax/test_push_parser.rb +0 -87
  74. data/test/html/test_attributes.rb +0 -85
  75. data/test/html/test_builder.rb +0 -164
  76. data/test/html/test_document.rb +0 -722
  77. data/test/html/test_document_encoding.rb +0 -143
  78. data/test/html/test_document_fragment.rb +0 -310
  79. data/test/html/test_element_description.rb +0 -105
  80. data/test/html/test_named_characters.rb +0 -14
  81. data/test/html/test_node.rb +0 -212
  82. data/test/html/test_node_encoding.rb +0 -91
  83. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  84. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  85. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  86. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  87. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  88. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  89. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  90. data/test/test_convert_xpath.rb +0 -135
  91. data/test/test_css_cache.rb +0 -47
  92. data/test/test_encoding_handler.rb +0 -48
  93. data/test/test_memory_leak.rb +0 -226
  94. data/test/test_nokogiri.rb +0 -138
  95. data/test/test_soap4r_sax.rb +0 -52
  96. data/test/test_xslt_transforms.rb +0 -314
  97. data/test/xml/node/test_save_options.rb +0 -28
  98. data/test/xml/node/test_subclass.rb +0 -44
  99. data/test/xml/sax/test_parser.rb +0 -402
  100. data/test/xml/sax/test_parser_context.rb +0 -115
  101. data/test/xml/sax/test_parser_text.rb +0 -202
  102. data/test/xml/sax/test_push_parser.rb +0 -265
  103. data/test/xml/test_attr.rb +0 -96
  104. data/test/xml/test_attribute_decl.rb +0 -86
  105. data/test/xml/test_builder.rb +0 -353
  106. data/test/xml/test_c14n.rb +0 -180
  107. data/test/xml/test_cdata.rb +0 -54
  108. data/test/xml/test_comment.rb +0 -40
  109. data/test/xml/test_document.rb +0 -982
  110. data/test/xml/test_document_encoding.rb +0 -31
  111. data/test/xml/test_document_fragment.rb +0 -312
  112. data/test/xml/test_dtd.rb +0 -187
  113. data/test/xml/test_dtd_encoding.rb +0 -31
  114. data/test/xml/test_element_content.rb +0 -56
  115. data/test/xml/test_element_decl.rb +0 -73
  116. data/test/xml/test_entity_decl.rb +0 -122
  117. data/test/xml/test_entity_reference.rb +0 -262
  118. data/test/xml/test_namespace.rb +0 -96
  119. data/test/xml/test_node.rb +0 -1379
  120. data/test/xml/test_node_attributes.rb +0 -115
  121. data/test/xml/test_node_encoding.rb +0 -75
  122. data/test/xml/test_node_inheritance.rb +0 -32
  123. data/test/xml/test_node_reparenting.rb +0 -661
  124. data/test/xml/test_node_set.rb +0 -828
  125. data/test/xml/test_parse_options.rb +0 -64
  126. data/test/xml/test_processing_instruction.rb +0 -30
  127. data/test/xml/test_reader.rb +0 -620
  128. data/test/xml/test_reader_encoding.rb +0 -134
  129. data/test/xml/test_relax_ng.rb +0 -60
  130. data/test/xml/test_schema.rb +0 -142
  131. data/test/xml/test_syntax_error.rb +0 -36
  132. data/test/xml/test_text.rb +0 -69
  133. data/test/xml/test_unparented_node.rb +0 -483
  134. data/test/xml/test_xinclude.rb +0 -83
  135. data/test/xml/test_xpath.rb +0 -470
  136. data/test/xslt/test_custom_functions.rb +0 -133
  137. 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