libxml-ruby 3.0.0 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +37 -0
  3. data/MANIFEST +34 -34
  4. data/README.rdoc +65 -36
  5. data/Rakefile +21 -3
  6. data/ext/libxml/extconf.rb +30 -26
  7. data/ext/libxml/ruby_libxml.h +0 -8
  8. data/ext/libxml/ruby_xml.c +40 -0
  9. data/ext/libxml/ruby_xml_document.c +1 -5
  10. data/ext/libxml/ruby_xml_dtd.c +6 -8
  11. data/ext/libxml/ruby_xml_encoding.c +1 -13
  12. data/ext/libxml/ruby_xml_encoding.h +0 -3
  13. data/ext/libxml/ruby_xml_error.c +1 -1
  14. data/ext/libxml/ruby_xml_error.h +1 -1
  15. data/ext/libxml/ruby_xml_io.c +14 -18
  16. data/ext/libxml/ruby_xml_io.h +1 -1
  17. data/ext/libxml/ruby_xml_node.c +16 -17
  18. data/ext/libxml/ruby_xml_parser_context.c +1 -1
  19. data/ext/libxml/ruby_xml_reader.c +7 -2
  20. data/ext/libxml/ruby_xml_schema.c +44 -66
  21. data/ext/libxml/ruby_xml_schema_element.c +15 -14
  22. data/ext/libxml/ruby_xml_schema_type.c +66 -93
  23. data/ext/libxml/ruby_xml_version.h +4 -4
  24. data/ext/libxml/ruby_xml_writer.c +189 -192
  25. data/lib/libxml/schema/element.rb +0 -8
  26. data/lib/libxml/schema/type.rb +0 -8
  27. data/lib/libxml/schema.rb +0 -19
  28. data/lib/libxml-ruby.rb +30 -0
  29. data/lib/libxml.rb +3 -28
  30. data/libxml-ruby.gemspec +5 -4
  31. data/setup.rb +0 -1
  32. data/test/model/cwm_1_0.xml +11336 -0
  33. data/test/{tc_attr.rb → test_attr.rb} +18 -18
  34. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +8 -8
  35. data/test/{tc_attributes.rb → test_attributes.rb} +10 -10
  36. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +35 -39
  37. data/test/test_deprecated_require.rb +12 -0
  38. data/test/{tc_document.rb → test_document.rb} +31 -24
  39. data/test/test_document_write.rb +146 -0
  40. data/test/{tc_dtd.rb → test_dtd.rb} +26 -25
  41. data/test/{tc_encoding.rb → test_encoding.rb} +20 -17
  42. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +3 -3
  43. data/test/test_error.rb +178 -0
  44. data/test/test_helper.rb +4 -11
  45. data/test/{tc_html_parser.rb → test_html_parser.rb} +31 -30
  46. data/test/test_html_parser_context.rb +23 -0
  47. data/test/test_namespace.rb +60 -0
  48. data/test/{tc_namespaces.rb → test_namespaces.rb} +29 -38
  49. data/test/{tc_node.rb → test_node.rb} +37 -31
  50. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +10 -10
  51. data/test/{tc_node_comment.rb → test_node_comment.rb} +6 -6
  52. data/test/{tc_node_copy.rb → test_node_copy.rb} +3 -4
  53. data/test/{tc_node_edit.rb → test_node_edit.rb} +20 -21
  54. data/test/{tc_node_pi.rb → test_node_pi.rb} +8 -10
  55. data/test/{tc_node_text.rb → test_node_text.rb} +8 -9
  56. data/test/{tc_node_write.rb → test_node_write.rb} +16 -26
  57. data/test/test_node_xlink.rb +28 -0
  58. data/test/{tc_parser.rb → test_parser.rb} +72 -75
  59. data/test/{tc_parser_context.rb → test_parser_context.rb} +38 -44
  60. data/test/{tc_properties.rb → test_properties.rb} +5 -5
  61. data/test/test_reader.rb +364 -0
  62. data/test/{tc_relaxng.rb → test_relaxng.rb} +11 -11
  63. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +38 -31
  64. data/test/{tc_schema.rb → test_schema.rb} +40 -33
  65. data/test/test_suite.rb +39 -40
  66. data/test/{tc_traversal.rb → test_traversal.rb} +4 -4
  67. data/test/{tc_writer.rb → test_writer.rb} +95 -74
  68. data/test/{tc_xinclude.rb → test_xinclude.rb} +3 -3
  69. data/test/test_xml.rb +263 -0
  70. data/test/{tc_xpath.rb → test_xpath.rb} +25 -25
  71. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +5 -5
  72. data/test/{tc_xpath_expression.rb → test_xpath_expression.rb} +7 -7
  73. data/test/{tc_xpointer.rb → test_xpointer.rb} +15 -15
  74. metadata +91 -102
  75. data/test/tc_deprecated_require.rb +0 -12
  76. data/test/tc_document_write.rb +0 -195
  77. data/test/tc_error.rb +0 -178
  78. data/test/tc_html_parser_context.rb +0 -23
  79. data/test/tc_namespace.rb +0 -61
  80. data/test/tc_node_xlink.rb +0 -28
  81. data/test/tc_reader.rb +0 -358
  82. data/test/tc_xml.rb +0 -225
@@ -1,47 +1,47 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
  require 'stringio'
5
5
 
6
6
  class TestParser < Minitest::Test
7
7
  def setup
8
- XML::Error.set_handler(&XML::Error::QUIET_HANDLER)
8
+ LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
9
9
  end
10
10
 
11
11
  # ----- Sources -------
12
12
  def test_document
13
13
  file = File.expand_path(File.join(File.dirname(__FILE__), 'model/bands.utf-8.xml'))
14
- parser = XML::Parser.file(file)
14
+ parser = LibXML::XML::Parser.file(file)
15
15
  doc = parser.parse
16
16
 
17
- parser = XML::Parser.document(doc)
17
+ parser = LibXML::XML::Parser.document(doc)
18
18
 
19
19
  doc = parser.parse
20
20
 
21
- assert_instance_of(XML::Document, doc)
22
- assert_instance_of(XML::Parser::Context, parser.context)
21
+ assert_instance_of(LibXML::XML::Document, doc)
22
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
23
23
  end
24
24
 
25
25
  def test_nil_document
26
26
  error = assert_raises(TypeError) do
27
- XML::Parser.document(nil)
27
+ LibXML::XML::Parser.document(nil)
28
28
  end
29
29
 
30
- assert_equal("Must pass an XML::Document object", error.to_s)
30
+ assert_equal("Must pass an LibXML::XML::Document object", error.to_s)
31
31
  end
32
32
 
33
33
  def test_file
34
34
  file = File.expand_path(File.join(File.dirname(__FILE__), 'model/rubynet.xml'))
35
35
 
36
- parser = XML::Parser.file(file)
36
+ parser = LibXML::XML::Parser.file(file)
37
37
  doc = parser.parse
38
- assert_instance_of(XML::Document, doc)
39
- assert_instance_of(XML::Parser::Context, parser.context)
38
+ assert_instance_of(LibXML::XML::Document, doc)
39
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
40
40
  end
41
41
 
42
42
  def test_noexistent_file
43
- error = assert_raises(XML::Error) do
44
- XML::Parser.file('i_dont_exist.xml')
43
+ error = assert_raises(LibXML::XML::Error) do
44
+ LibXML::XML::Parser.file('i_dont_exist.xml')
45
45
  end
46
46
 
47
47
  assert_equal('Warning: failed to load external entity "i_dont_exist.xml".', error.to_s)
@@ -49,7 +49,7 @@ class TestParser < Minitest::Test
49
49
 
50
50
  def test_nil_file
51
51
  error = assert_raises(TypeError) do
52
- XML::Parser.file(nil)
52
+ LibXML::XML::Parser.file(nil)
53
53
  end
54
54
 
55
55
  assert_match(/nil into String/, error.to_s)
@@ -57,15 +57,15 @@ class TestParser < Minitest::Test
57
57
 
58
58
  def test_file_encoding
59
59
  file = File.expand_path(File.join(File.dirname(__FILE__), 'model/bands.utf-8.xml'))
60
- parser = XML::Parser.file(file, :encoding => XML::Encoding::ISO_8859_1)
60
+ parser = LibXML::XML::Parser.file(file, :encoding => LibXML::XML::Encoding::ISO_8859_1)
61
61
 
62
- error = assert_raises(XML::Error) do
63
- doc = parser.parse
62
+ error = assert_raises(LibXML::XML::Error) do
63
+ parser.parse
64
64
  end
65
65
 
66
66
  assert(error.to_s.match(/Fatal error: Extra content at the end of the document/))
67
67
 
68
- parser = XML::Parser.file(file, :encoding => XML::Encoding::UTF_8)
68
+ parser = LibXML::XML::Parser.file(file, :encoding => LibXML::XML::Encoding::UTF_8)
69
69
  doc = parser.parse
70
70
  refute_nil(doc)
71
71
  end
@@ -73,23 +73,23 @@ class TestParser < Minitest::Test
73
73
  def test_file_base_uri
74
74
  file = File.expand_path(File.join(File.dirname(__FILE__), 'model/bands.utf-8.xml'))
75
75
 
76
- parser = XML::Parser.file(file)
76
+ parser = LibXML::XML::Parser.file(file)
77
77
  doc = parser.parse
78
78
  assert(doc.child.base_uri.match(/test\/model\/bands.utf-8.xml/))
79
79
 
80
- parser = XML::Parser.file(file, :base_uri => "http://libxml.org")
80
+ parser = LibXML::XML::Parser.file(file, :base_uri => "http://libxml.org")
81
81
  doc = parser.parse
82
82
  assert(doc.child.base_uri.match(/test\/model\/bands.utf-8.xml/))
83
83
  end
84
84
 
85
85
  def test_io
86
86
  File.open(File.join(File.dirname(__FILE__), 'model/rubynet.xml')) do |io|
87
- parser = XML::Parser.io(io)
88
- assert_instance_of(XML::Parser, parser)
87
+ parser = LibXML::XML::Parser.io(io)
88
+ assert_instance_of(LibXML::XML::Parser, parser)
89
89
 
90
90
  doc = parser.parse
91
- assert_instance_of(XML::Document, doc)
92
- assert_instance_of(XML::Parser::Context, parser.context)
91
+ assert_instance_of(LibXML::XML::Document, doc)
92
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
93
93
  end
94
94
  end
95
95
 
@@ -97,7 +97,7 @@ class TestParser < Minitest::Test
97
97
  # Test that the reader keeps a reference
98
98
  # to the io object
99
99
  file = File.open(File.join(File.dirname(__FILE__), 'model/rubynet.xml'))
100
- parser = XML::Parser.io(file)
100
+ parser = LibXML::XML::Parser.io(file)
101
101
  file = nil
102
102
  GC.start
103
103
  assert(parser.parse)
@@ -105,7 +105,7 @@ class TestParser < Minitest::Test
105
105
 
106
106
  def test_nil_io
107
107
  error = assert_raises(TypeError) do
108
- XML::Parser.io(nil)
108
+ LibXML::XML::Parser.io(nil)
109
109
  end
110
110
 
111
111
  assert_equal("Must pass in an IO object", error.to_s)
@@ -114,22 +114,22 @@ class TestParser < Minitest::Test
114
114
  def test_string_io
115
115
  data = File.read(File.join(File.dirname(__FILE__), 'model/rubynet.xml'))
116
116
  string_io = StringIO.new(data)
117
- parser = XML::Parser.io(string_io)
117
+ parser = LibXML::XML::Parser.io(string_io)
118
118
 
119
119
  doc = parser.parse
120
- assert_instance_of(XML::Document, doc)
121
- assert_instance_of(XML::Parser::Context, parser.context)
120
+ assert_instance_of(LibXML::XML::Document, doc)
121
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
122
122
  end
123
123
 
124
124
  def test_string_io_thread
125
125
  thread = Thread.new do
126
126
  data = File.read(File.join(File.dirname(__FILE__), 'model/rubynet.xml'))
127
127
  string_io = StringIO.new(data)
128
- parser = XML::Parser.io(string_io)
128
+ parser = LibXML::XML::Parser.io(string_io)
129
129
 
130
130
  doc = parser.parse
131
- assert_instance_of(XML::Document, doc)
132
- assert_instance_of(XML::Parser::Context, parser.context)
131
+ assert_instance_of(LibXML::XML::Document, doc)
132
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
133
133
  end
134
134
 
135
135
  thread.join
@@ -140,17 +140,17 @@ class TestParser < Minitest::Test
140
140
  def test_string
141
141
  str = '<ruby_array uga="booga" foo="bar"><fixnum>one</fixnum><fixnum>two</fixnum></ruby_array>'
142
142
 
143
- parser = XML::Parser.string(str)
144
- assert_instance_of(XML::Parser, parser)
143
+ parser = LibXML::XML::Parser.string(str)
144
+ assert_instance_of(LibXML::XML::Parser, parser)
145
145
 
146
146
  doc = parser.parse
147
- assert_instance_of(XML::Document, doc)
148
- assert_instance_of(XML::Parser::Context, parser.context)
147
+ assert_instance_of(LibXML::XML::Document, doc)
148
+ assert_instance_of(LibXML::XML::Parser::Context, parser.context)
149
149
  end
150
150
 
151
151
  def test_nil_string
152
152
  error = assert_raises(TypeError) do
153
- XML::Parser.string(nil)
153
+ LibXML::XML::Parser.string(nil)
154
154
  end
155
155
 
156
156
  assert_equal("wrong argument type nil (expected String)", error.to_s)
@@ -165,30 +165,30 @@ class TestParser < Minitest::Test
165
165
  </test>
166
166
  EOS
167
167
 
168
- XML::default_substitute_entities = false
168
+ LibXML::XML::default_substitute_entities = false
169
169
 
170
170
  # Parse normally
171
- parser = XML::Parser.string(xml)
171
+ parser = LibXML::XML::Parser.string(xml)
172
172
  doc = parser.parse
173
173
  assert_nil(doc.child.base_uri)
174
174
 
175
175
  # Cdata section should be cdata nodes
176
176
  node = doc.find_first('/test/cdata').child
177
- assert_equal(XML::Node::CDATA_SECTION_NODE, node.node_type)
177
+ assert_equal(LibXML::XML::Node::CDATA_SECTION_NODE, node.node_type)
178
178
 
179
179
  # Entities should not be subtituted
180
180
  node = doc.find_first('/test/entity')
181
181
  assert_equal('&foo;', node.child.to_s)
182
182
 
183
183
  # Parse with options
184
- parser = XML::Parser.string(xml, :base_uri => 'http://libxml.rubyforge.org',
185
- :options => XML::Parser::Options::NOCDATA | XML::Parser::Options::NOENT)
184
+ parser = LibXML::XML::Parser.string(xml, :base_uri => 'http://libxml.rubyforge.org',
185
+ :options => LibXML::XML::Parser::Options::NOCDATA | LibXML::XML::Parser::Options::NOENT)
186
186
  doc = parser.parse
187
187
  assert_equal(doc.child.base_uri, 'http://libxml.rubyforge.org')
188
188
 
189
189
  # Cdata section should be text nodes
190
190
  node = doc.find_first('/test/cdata').child
191
- assert_equal(XML::Node::TEXT_NODE, node.node_type)
191
+ assert_equal(LibXML::XML::Node::TEXT_NODE, node.node_type)
192
192
 
193
193
  # Entities should be subtituted
194
194
  node = doc.find_first('/test/entity')
@@ -207,25 +207,21 @@ class TestParser < Minitest::Test
207
207
  EOS
208
208
 
209
209
  # Parse as UTF_8
210
- parser = XML::Parser.string(xml, :encoding => XML::Encoding::UTF_8)
210
+ parser = LibXML::XML::Parser.string(xml, :encoding => LibXML::XML::Encoding::UTF_8)
211
211
 
212
- error = assert_raises(XML::Error) do
213
- doc = parser.parse
212
+ error = assert_raises(LibXML::XML::Error) do
213
+ parser.parse
214
214
  end
215
215
 
216
216
  assert_equal("Fatal error: Input is not proper UTF-8, indicate encoding !\nBytes: 0xF6 0x74 0x6C 0x65 at :2.",
217
217
  error.to_s)
218
218
 
219
219
  # Parse as ISO_8859_1:
220
- parser = XML::Parser.string(xml, :encoding => XML::Encoding::ISO_8859_1)
220
+ parser = LibXML::XML::Parser.string(xml, :encoding => LibXML::XML::Encoding::ISO_8859_1)
221
221
  doc = parser.parse
222
222
  node = doc.find_first('//metal')
223
- if defined?(Encoding)
224
- assert_equal(Encoding::UTF_8, node.content.encoding)
225
- assert_equal("m\303\266tley_cr\303\274e", node.content)
226
- else
227
- assert_equal("m\303\266tley_cr\303\274e", node.content)
228
- end
223
+ assert_equal(Encoding::UTF_8, node.content.encoding)
224
+ assert_equal("m\303\266tley_cr\303\274e", node.content)
229
225
  end
230
226
 
231
227
  def test_fd_gc
@@ -235,9 +231,9 @@ class TestParser < Minitest::Test
235
231
  # re-open the same doc `limit descriptors` times.
236
232
  # If we make it to the end, then we've succeeded,
237
233
  # otherwise an exception will be thrown.
238
- XML::Error.set_handler {|error|}
234
+ LibXML::XML::Error.set_handler {|error|}
239
235
 
240
- max_fd = if RUBY_PLATFORM.match(/mswin32|mingw/i)
236
+ max_fd = if RUBY_PLATFORM.match(/mswin32|mswin64|mingw/i)
241
237
  500
242
238
  else
243
239
  Process.getrlimit(Process::RLIMIT_NOFILE)[0] + 1
@@ -245,51 +241,52 @@ class TestParser < Minitest::Test
245
241
 
246
242
  file = File.join(File.dirname(__FILE__), 'model/rubynet.xml')
247
243
  max_fd.times do
248
- XML::Parser.file(file).parse
244
+ LibXML::XML::Parser.file(file).parse
249
245
  end
250
- XML::Error.reset_handler {|error|}
246
+ LibXML::XML::Error.reset_handler {|error|}
251
247
  end
252
248
 
253
249
  def test_open_many_files
250
+ file = File.expand_path(File.join(File.dirname(__FILE__), 'model/atom.xml'))
254
251
  1000.times do
255
- doc = XML::Parser.file('model/atom.xml').parse
252
+ LibXML::XML::Parser.file(file).parse
256
253
  end
257
254
  end
258
255
 
259
256
  # ----- Errors ------
260
257
  def test_error
261
- error = assert_raises(XML::Error) do
262
- XML::Parser.string('<foo><bar/></foz>').parse
258
+ error = assert_raises(LibXML::XML::Error) do
259
+ LibXML::XML::Parser.string('<foo><bar/></foz>').parse
263
260
  end
264
261
 
265
262
  refute_nil(error)
266
- assert_kind_of(XML::Error, error)
263
+ assert_kind_of(LibXML::XML::Error, error)
267
264
  assert_equal("Fatal error: Opening and ending tag mismatch: foo line 1 and foz at :1.", error.message)
268
- assert_equal(XML::Error::PARSER, error.domain)
269
- assert_equal(XML::Error::TAG_NAME_MISMATCH, error.code)
270
- assert_equal(XML::Error::FATAL, error.level)
265
+ assert_equal(LibXML::XML::Error::PARSER, error.domain)
266
+ assert_equal(LibXML::XML::Error::TAG_NAME_MISMATCH, error.code)
267
+ assert_equal(LibXML::XML::Error::FATAL, error.level)
271
268
  assert_nil(error.file)
272
269
  assert_equal(1, error.line)
273
270
  assert_equal('foo', error.str1)
274
271
  assert_equal('foz', error.str2)
275
272
  assert_nil(error.str3)
276
273
  assert_equal(1, error.int1)
277
- assert_equal(20, error.int2)
274
+ assert([18, 20].include?(error.int2))
278
275
  assert_nil(error.node)
279
276
  end
280
277
 
281
278
  def test_bad_xml
282
- parser = XML::Parser.string('<ruby_array uga="booga" foo="bar"<fixnum>one</fixnum><fixnum>two</fixnum></ruby_array>')
283
- error = assert_raises(XML::Error) do
279
+ parser = LibXML::XML::Parser.string('<ruby_array uga="booga" foo="bar"<fixnum>one</fixnum><fixnum>two</fixnum></ruby_array>')
280
+ error = assert_raises(LibXML::XML::Error) do
284
281
  refute_nil(parser.parse)
285
282
  end
286
283
 
287
284
  refute_nil(error)
288
- assert_kind_of(XML::Error, error)
285
+ assert_kind_of(LibXML::XML::Error, error)
289
286
  assert_equal("Fatal error: Extra content at the end of the document at :1.", error.message)
290
- assert_equal(XML::Error::PARSER, error.domain)
291
- assert_equal(XML::Error::DOCUMENT_END, error.code)
292
- assert_equal(XML::Error::FATAL, error.level)
287
+ assert_equal(LibXML::XML::Error::PARSER, error.domain)
288
+ assert_equal(LibXML::XML::Error::DOCUMENT_END, error.code)
289
+ assert_equal(LibXML::XML::Error::FATAL, error.level)
293
290
  assert_nil(error.file)
294
291
  assert_equal(1, error.line)
295
292
  assert_nil(error.str1)
@@ -305,20 +302,20 @@ class TestParser < Minitest::Test
305
302
  background_errors = []
306
303
 
307
304
  begin
308
- XML::Error.set_handler do |error|
305
+ LibXML::XML::Error.set_handler do |error|
309
306
  errors << error
310
307
  end
311
- parser = XML::Parser.string("<moo>")
308
+ parser = LibXML::XML::Parser.string("<moo>")
312
309
 
313
310
  thread = Thread.new do
314
- XML::Error.set_handler do |error|
311
+ LibXML::XML::Error.set_handler do |error|
315
312
  background_errors << error
316
313
  end
317
314
  parser.parse rescue nil
318
315
  end
319
316
  thread.join
320
317
  ensure
321
- XML::Error.set_handler(&XML::Error::QUIET_HANDLER)
318
+ LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
322
319
  end
323
320
 
324
321
  assert_equal(errors.size, 0)
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
 
5
5
 
6
6
  class TestParserContext < Minitest::Test
@@ -12,9 +12,9 @@ class TestParserContext < Minitest::Test
12
12
  </bands>
13
13
  EOS
14
14
 
15
- context = XML::Parser::Context.string(xml)
16
- assert_instance_of(XML::Parser::Context, context)
17
- assert_equal(XML::Encoding::NONE, context.encoding)
15
+ context = LibXML::XML::Parser::Context.string(xml)
16
+ assert_instance_of(LibXML::XML::Parser::Context, context)
17
+ assert_equal(LibXML::XML::Encoding::NONE, context.encoding)
18
18
  assert_nil(context.base_uri)
19
19
  end
20
20
 
@@ -26,11 +26,11 @@ class TestParserContext < Minitest::Test
26
26
  </bands>
27
27
  EOS
28
28
 
29
- context = XML::Parser::Context.string(xml)
30
- assert_equal(XML::Encoding::NONE, context.encoding)
29
+ context = LibXML::XML::Parser::Context.string(xml)
30
+ assert_equal(LibXML::XML::Encoding::NONE, context.encoding)
31
31
 
32
- context.encoding = XML::Encoding::ISO_8859_1
33
- assert_equal(XML::Encoding::ISO_8859_1, context.encoding)
32
+ context.encoding = LibXML::XML::Encoding::ISO_8859_1
33
+ assert_equal(LibXML::XML::Encoding::ISO_8859_1, context.encoding)
34
34
  end
35
35
 
36
36
  def test_invalid_encoding
@@ -41,7 +41,7 @@ class TestParserContext < Minitest::Test
41
41
  </bands>
42
42
  EOS
43
43
 
44
- context = XML::Parser::Context.string(xml)
44
+ context = LibXML::XML::Parser::Context.string(xml)
45
45
 
46
46
  error = assert_raises(ArgumentError) do
47
47
  context.encoding = -999
@@ -57,7 +57,7 @@ class TestParserContext < Minitest::Test
57
57
  </bands>
58
58
  EOS
59
59
 
60
- context = XML::Parser::Context.string(xml)
60
+ context = LibXML::XML::Parser::Context.string(xml)
61
61
  assert_nil(context.base_uri)
62
62
 
63
63
  context.base_uri = 'http://libxml.rubyforge.org'
@@ -66,25 +66,25 @@ class TestParserContext < Minitest::Test
66
66
 
67
67
  def test_string_empty
68
68
  error = assert_raises(TypeError) do
69
- XML::Parser::Context.string(nil)
69
+ LibXML::XML::Parser::Context.string(nil)
70
70
  end
71
71
  assert_equal("wrong argument type nil (expected String)", error.to_s)
72
72
 
73
73
  error = assert_raises(ArgumentError) do
74
- XML::Parser::Context.string('')
74
+ LibXML::XML::Parser::Context.string('')
75
75
  end
76
76
  assert_equal("Must specify a string with one or more characters", error.to_s)
77
77
  end
78
78
 
79
79
  def test_well_formed
80
- parser = XML::Parser.string("<abc/>")
80
+ parser = LibXML::XML::Parser.string("<abc/>")
81
81
  parser.parse
82
82
  assert(parser.context.well_formed?)
83
83
  end
84
84
 
85
85
  def test_not_well_formed
86
- parser = XML::Parser.string("<abc>")
87
- assert_raises(XML::Error) do
86
+ parser = LibXML::XML::Parser.string("<abc>")
87
+ assert_raises(LibXML::XML::Error) do
88
88
  parser.parse
89
89
  end
90
90
  assert(!parser.context.well_formed?)
@@ -92,34 +92,34 @@ class TestParserContext < Minitest::Test
92
92
 
93
93
  def test_version_info
94
94
  file = File.expand_path(File.join(File.dirname(__FILE__), 'model/bands.utf-8.xml'))
95
- parser = XML::Parser.file(file)
95
+ parser = LibXML::XML::Parser.file(file)
96
96
  assert_nil(parser.context.version)
97
97
  parser.parse
98
98
  assert_equal("1.0", parser.context.version)
99
99
  end
100
100
 
101
101
  def test_depth
102
- context = XML::Parser::Context.new
103
- assert_instance_of(Fixnum, context.depth)
102
+ context = LibXML::XML::Parser::Context.new
103
+ assert_instance_of(Integer, context.depth)
104
104
  end
105
105
 
106
106
  def test_disable_sax
107
- context = XML::Parser::Context.new
107
+ context = LibXML::XML::Parser::Context.new
108
108
  assert(!context.disable_sax?)
109
109
  end
110
110
 
111
111
  def test_docbook
112
- context = XML::Parser::Context.new
112
+ context = LibXML::XML::Parser::Context.new
113
113
  assert(!context.docbook?)
114
114
  end
115
115
 
116
116
  def test_html
117
- context = XML::Parser::Context.new
117
+ context = LibXML::XML::Parser::Context.new
118
118
  assert(!context.html?)
119
119
  end
120
120
 
121
121
  def test_keep_blanks
122
- context = XML::Parser::Context.new
122
+ context = LibXML::XML::Parser::Context.new
123
123
  if context.keep_blanks?
124
124
  assert_instance_of(TrueClass, context.keep_blanks?)
125
125
  else
@@ -127,18 +127,12 @@ class TestParserContext < Minitest::Test
127
127
  end
128
128
  end
129
129
 
130
- if ENV['NOTWORKING']
131
- def test_num_chars
132
- assert_equal(17, context.num_chars)
133
- end
134
- end
135
-
136
130
  def test_replace_entities
137
- context = XML::Parser::Context.new
131
+ context = LibXML::XML::Parser::Context.new
138
132
  assert(!context.replace_entities?)
139
133
 
140
- # context.options = 1
141
- # assert(context.replace_entities?)
134
+ context.options = LibXML::XML::Parser::Options::NOENT
135
+ assert(context.replace_entities?)
142
136
 
143
137
  context.options = 0
144
138
  assert(!context.replace_entities?)
@@ -148,52 +142,52 @@ class TestParserContext < Minitest::Test
148
142
  end
149
143
 
150
144
  def test_space_depth
151
- context = XML::Parser::Context.new
145
+ context = LibXML::XML::Parser::Context.new
152
146
  assert_equal(1, context.space_depth)
153
147
  end
154
148
 
155
149
  def test_subset_external
156
- context = XML::Parser::Context.new
150
+ context = LibXML::XML::Parser::Context.new
157
151
  assert(!context.subset_external?)
158
152
  end
159
153
 
160
154
  def test_data_directory_get
161
- context = XML::Parser::Context.new
155
+ context = LibXML::XML::Parser::Context.new
162
156
  assert_nil(context.data_directory)
163
157
  end
164
158
 
165
159
  def test_parse_error
166
- xp = XML::Parser.string('<foo><bar/></foz>')
160
+ xp = LibXML::XML::Parser.string('<foo><bar/></foz>')
167
161
 
168
- assert_raises(XML::Error) do
162
+ assert_raises(LibXML::XML::Error) do
169
163
  xp.parse
170
164
  end
171
165
 
172
166
  # Now check context
173
167
  context = xp.context
174
- assert_equal(nil, context.data_directory)
168
+ assert_nil(context.data_directory)
175
169
  assert_equal(0, context.depth)
176
170
  assert_equal(true, context.disable_sax?)
177
171
  assert_equal(false, context.docbook?)
178
- assert_equal(XML::Encoding::NONE, context.encoding)
172
+ assert_equal(LibXML::XML::Encoding::NONE, context.encoding)
179
173
  assert_equal(76, context.errno)
180
174
  assert_equal(false, context.html?)
181
175
  assert_equal(5, context.io_max_num_streams)
182
176
  assert_equal(1, context.io_num_streams)
183
177
  assert_equal(true, context.keep_blanks?)
184
178
  assert_equal(1, context.io_num_streams)
185
- assert_equal(nil, context.name_node)
179
+ assert_nil(context.name_node)
186
180
  assert_equal(0, context.name_depth)
187
181
  assert_equal(10, context.name_depth_max)
188
- assert_equal(17, context.num_chars)
182
+ assert([0, 17].include?(context.num_chars))
189
183
  assert_equal(false, context.replace_entities?)
190
184
  assert_equal(1, context.space_depth)
191
185
  assert_equal(10, context.space_depth_max)
192
186
  assert_equal(false, context.subset_external?)
193
- assert_equal(nil, context.subset_external_system_id)
194
- assert_equal(nil, context.subset_external_uri)
187
+ assert_nil(context.subset_external_system_id)
188
+ assert_nil(context.subset_external_uri)
195
189
  assert_equal(false, context.subset_internal?)
196
- assert_equal(nil, context.subset_internal_name)
190
+ assert_nil(context.subset_internal_name)
197
191
  assert_equal(false, context.stats?)
198
192
  assert_equal(true, context.standalone?)
199
193
  assert_equal(false, context.valid)
@@ -201,4 +195,4 @@ class TestParserContext < Minitest::Test
201
195
  assert_equal('1.0', context.version)
202
196
  assert_equal(false, context.well_formed?)
203
197
  end
204
- end
198
+ end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
 
5
5
 
6
6
  # attributes is deprecated - use attributes instead.
@@ -8,7 +8,7 @@ require './test_helper'
8
8
 
9
9
  class Testattributes < Minitest::Test
10
10
  def setup()
11
- xp = XML::Parser.string('<ruby_array uga="booga" foo="bar"><fixnum>one</fixnum><fixnum>two</fixnum></ruby_array>')
11
+ xp = LibXML::XML::Parser.string('<ruby_array uga="booga" foo="bar"><fixnum>one</fixnum><fixnum>two</fixnum></ruby_array>')
12
12
  @doc = xp.parse
13
13
  end
14
14
 
@@ -19,20 +19,20 @@ class Testattributes < Minitest::Test
19
19
  def test_traversal
20
20
  attributes = @doc.root.attributes
21
21
 
22
- assert_instance_of(XML::Attributes, attributes)
22
+ assert_instance_of(LibXML::XML::Attributes, attributes)
23
23
  attribute = attributes.first
24
24
  assert_equal('uga', attribute.name)
25
25
  assert_equal('booga', attribute.value)
26
26
 
27
27
  attribute = attribute.next
28
- assert_instance_of(XML::Attr, attribute)
28
+ assert_instance_of(LibXML::XML::Attr, attribute)
29
29
  assert_equal('foo', attribute.name)
30
30
  assert_equal('bar', attribute.value)
31
31
  end
32
32
 
33
33
  def test_no_attributes
34
34
  attributes = @doc.root.child.attributes
35
- assert_instance_of(XML::Attributes, attributes)
35
+ assert_instance_of(LibXML::XML::Attributes, attributes)
36
36
  assert_equal(0, attributes.length)
37
37
  end
38
38
  end