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,6 +1,6 @@
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 TestWriter < Minitest::Test
@@ -8,33 +8,56 @@ class TestWriter < Minitest::Test
8
8
  XSL_URI = 'http://www.w3.org/1999/XSL/Transform'
9
9
 
10
10
  def test_generic_failure
11
- writer = XML::Writer.string
11
+ writer = LibXML::XML::Writer.string
12
12
  writer.start_document
13
13
  assert(!writer.end_element)
14
14
  writer.end_document
15
15
  end
16
16
 
17
17
  def test_empty_doc
18
- writer = XML::Writer.string
19
- document writer
18
+ writer = LibXML::XML::Writer.string
19
+ document(writer)
20
20
  assert_equal(writer.result.strip!, '<?xml version="1.0"?>')
21
21
 
22
- writer = XML::Writer.string
23
- document writer, { :encoding => XML::Encoding::ISO_8859_1 }
22
+ writer = LibXML::XML::Writer.string
23
+ document(writer, :encoding => LibXML::XML::Encoding::ISO_8859_1)
24
24
  assert_equal(writer.result.strip!, '<?xml version="1.0" encoding="ISO-8859-1"?>')
25
25
 
26
- writer = XML::Writer.string
27
- document writer, { :standalone => 1 }
26
+ writer = LibXML::XML::Writer.string
27
+ document(writer, :standalone => 1)
28
28
  assert_equal(writer.result.strip!, '<?xml version="1.0" standalone="yes"?>')
29
29
 
30
- writer = XML::Writer.string
31
- document writer, { :standalone => 1, :encoding => XML::Encoding::ISO_8859_1, :foo => :bar }
30
+ writer = LibXML::XML::Writer.string
31
+ document(writer, :standalone => 1, :encoding => LibXML::XML::Encoding::ISO_8859_1, :foo => :bar)
32
32
  assert_equal(writer.result.strip!, '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>')
33
33
  end
34
34
 
35
+ def test_file_encoding
36
+ value = "François".encode(Encoding::UTF_8)
37
+
38
+ File.open('test.xml', 'wb', encoding: 'UTF-8') do |file|
39
+ writer = LibXML::XML::Writer::io(file)
40
+ document(writer, encoding: LibXML::XML::Encoding::UTF_8) do
41
+ writer.write_element('Name', value)
42
+ end
43
+ end
44
+ end
45
+
46
+ def test_io_encoding
47
+ value = "François".encode(Encoding::UTF_8)
48
+ expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Name>François</Name>".encode(Encoding::UTF_8)
49
+
50
+ io = StringIO.new
51
+ writer = LibXML::XML::Writer::io(io)
52
+ document(writer, encoding: LibXML::XML::Encoding::UTF_8) do
53
+ writer.write_element('Name', value)
54
+ end
55
+ assert_equal(expected, io.string.strip)
56
+ end
57
+
35
58
  def test_single_root
36
- writer = XML::Writer.string
37
- document writer do
59
+ writer = LibXML::XML::Writer.string
60
+ document(writer) do
38
61
  element writer, 'root'
39
62
  end
40
63
 
@@ -44,16 +67,16 @@ class TestWriter < Minitest::Test
44
67
  def test_pi
45
68
  expected = "<?xml version=\"1.0\"?>\n<?php echo \"foo\";?>"
46
69
 
47
- writer = XML::Writer.string
48
- document writer do
70
+ writer = LibXML::XML::Writer.string
71
+ document(writer) do
49
72
  assert(writer.start_pi('php'))
50
73
  assert(writer.write_string('echo "foo";'))
51
74
  assert(writer.end_pi)
52
75
  end
53
76
  assert_equal(writer.result.strip!, expected)
54
77
 
55
- writer = XML::Writer.string
56
- document writer do
78
+ writer = LibXML::XML::Writer.string
79
+ document(writer) do
57
80
  assert(writer.write_pi('php', 'echo "foo";'))
58
81
  end
59
82
  assert_equal(writer.result.strip!, expected)
@@ -62,16 +85,16 @@ class TestWriter < Minitest::Test
62
85
  def test_comment
63
86
  expected = "<?xml version=\"1.0\"?>\n<!--foo-->"
64
87
 
65
- writer = XML::Writer.string
66
- document writer do
88
+ writer = LibXML::XML::Writer.string
89
+ document(writer) do
67
90
  assert(writer.start_comment)
68
91
  assert(writer.write_string 'foo')
69
92
  assert(writer.end_comment)
70
93
  end
71
94
  assert_equal(writer.result.strip!, expected)
72
95
 
73
- writer = XML::Writer.string
74
- document writer do
96
+ writer = LibXML::XML::Writer.string
97
+ document(writer) do
75
98
  assert(writer.write_comment 'foo')
76
99
  end
77
100
  assert_equal(writer.result.strip!, expected)
@@ -80,8 +103,8 @@ class TestWriter < Minitest::Test
80
103
  def test_cdata
81
104
  expected = "<?xml version=\"1.0\"?>\n<root><![CDATA[<?php echo $foo; ?>]]></root>"
82
105
 
83
- writer = XML::Writer.string
84
- document writer do
106
+ writer = LibXML::XML::Writer.string
107
+ document(writer) do
85
108
  element writer, 'root' do
86
109
  assert(writer.start_cdata)
87
110
  assert(writer.write_string '<?php echo $foo; ?>')
@@ -90,8 +113,8 @@ class TestWriter < Minitest::Test
90
113
  end
91
114
  assert_equal(writer.result.strip!, expected)
92
115
 
93
- writer = XML::Writer.string
94
- document writer do
116
+ writer = LibXML::XML::Writer.string
117
+ document(writer) do
95
118
  element writer, 'root' do
96
119
  assert(writer.write_cdata '<?php echo $foo; ?>')
97
120
  end
@@ -100,14 +123,14 @@ class TestWriter < Minitest::Test
100
123
  end
101
124
 
102
125
  def test_write_empty_elements
103
- writer = XML::Writer.string
104
- document writer do
126
+ writer = LibXML::XML::Writer.string
127
+ document(writer) do
105
128
  assert(writer.write_element 'foo')
106
129
  end
107
130
  assert_equal(writer.result.strip!, "<?xml version=\"1.0\"?>\n<foo/>")
108
131
 
109
- writer = XML::Writer.string
110
- document writer do
132
+ writer = LibXML::XML::Writer.string
133
+ document(writer) do
111
134
  assert(writer.write_element_ns XSL_PREFIX, 'stylesheet', XSL_URI)
112
135
  end
113
136
  assert_equal(writer.result.strip!, "<?xml version=\"1.0\"?>\n<" + XSL_PREFIX + ":stylesheet xmlns:xsl=\"" + XSL_URI + "\"/>")
@@ -116,8 +139,8 @@ class TestWriter < Minitest::Test
116
139
  def test_valued_element
117
140
  expected = "<?xml version=\"1.0\"?>\n<abc>123<def>456<ghi>789</ghi>cueillir des cerises</def>nous irons au bois</abc>"
118
141
 
119
- writer = XML::Writer.string
120
- document writer do
142
+ writer = LibXML::XML::Writer.string
143
+ document(writer) do
121
144
  assert(writer.start_element 'abc')
122
145
  assert(writer.write_string '123')
123
146
  assert(writer.start_element 'def')
@@ -132,8 +155,8 @@ class TestWriter < Minitest::Test
132
155
  end
133
156
  assert_equal(writer.result.strip!, expected)
134
157
 
135
- writer = XML::Writer.string
136
- document writer do
158
+ writer = LibXML::XML::Writer.string
159
+ document(writer) do
137
160
  assert(writer.start_element 'abc')
138
161
  assert(writer.write_string '123')
139
162
  assert(writer.start_element 'def')
@@ -156,8 +179,8 @@ class TestWriter < Minitest::Test
156
179
  "</xsl:attribute-set>" +
157
180
  "</xsl:stylesheet>"
158
181
 
159
- writer = XML::Writer.string
160
- document writer do
182
+ writer = LibXML::XML::Writer.string
183
+ document(writer) do
161
184
  assert(writer.start_element_ns XSL_PREFIX, 'stylesheet', XSL_URI)
162
185
  assert(writer.start_element_ns XSL_PREFIX, 'attribute-set')
163
186
  assert(writer.start_element_ns XSL_PREFIX, 'attribute')
@@ -171,8 +194,8 @@ class TestWriter < Minitest::Test
171
194
  end
172
195
  assert_equal(writer.result.strip!, expected)
173
196
 
174
- writer = XML::Writer.string
175
- document writer do
197
+ writer = LibXML::XML::Writer.string
198
+ document(writer) do
176
199
  assert(writer.start_element_ns XSL_PREFIX, 'stylesheet', XSL_URI)
177
200
  assert(writer.start_element_ns XSL_PREFIX, 'attribute-set')
178
201
  assert(writer.write_element_ns XSL_PREFIX, 'attribute', nil, '20px')
@@ -184,8 +207,8 @@ class TestWriter < Minitest::Test
184
207
  end
185
208
 
186
209
  def test_attribute
187
- writer = XML::Writer.string
188
- document writer do
210
+ writer = LibXML::XML::Writer.string
211
+ document(writer) do
189
212
  element writer, 'root' do
190
213
  element writer, 'child' do
191
214
  assert(writer.start_attribute 'foo')
@@ -196,8 +219,8 @@ class TestWriter < Minitest::Test
196
219
  end
197
220
  assert_equal(writer.result.strip!, "<?xml version=\"1.0\"?>\n<root><child foo=\"bar\"/></root>")
198
221
 
199
- writer = XML::Writer.string
200
- document writer do
222
+ writer = LibXML::XML::Writer.string
223
+ document(writer) do
201
224
  element writer, 'root' do
202
225
  element writer, 'child' do
203
226
  assert(writer.write_attribute 'abc', 'def')
@@ -211,8 +234,8 @@ class TestWriter < Minitest::Test
211
234
  def test_attribute_ns
212
235
  expected = "<?xml version=\"1.0\"?>\n<root><link xlink:href=\"abc\" xhtml:class=\"def\"/></root>"
213
236
 
214
- writer = XML::Writer.string
215
- document writer do
237
+ writer = LibXML::XML::Writer.string
238
+ document(writer) do
216
239
  element writer, 'root' do
217
240
  element writer, 'link' do
218
241
  assert(writer.write_attribute_ns 'xlink', 'href', nil, 'abc')
@@ -222,8 +245,8 @@ class TestWriter < Minitest::Test
222
245
  end
223
246
  assert_equal(writer.result.strip!, expected)
224
247
 
225
- writer = XML::Writer.string
226
- document writer do
248
+ writer = LibXML::XML::Writer.string
249
+ document(writer) do
227
250
  element writer, 'root' do
228
251
  element writer, 'link' do
229
252
  assert(writer.start_attribute_ns 'xlink', 'href')
@@ -239,10 +262,10 @@ class TestWriter < Minitest::Test
239
262
  end
240
263
 
241
264
  def test_quote_char
242
- if XML::Writer.method_defined? :set_quote_char
243
- writer = XML::Writer.string
265
+ if LibXML::XML::Writer.method_defined? :set_quote_char
266
+ writer = LibXML::XML::Writer.string
244
267
  writer.set_quote_char "'"
245
- document writer do
268
+ document(writer) do
246
269
  element writer, 'root' do
247
270
  assert(writer.start_attribute 'abc')
248
271
  assert(writer.write_string 'def')
@@ -254,10 +277,10 @@ class TestWriter < Minitest::Test
254
277
  end
255
278
 
256
279
  def test_indentation_on
257
- if XML::Writer.method_defined? :set_indent
258
- writer = XML::Writer.string
280
+ if LibXML::XML::Writer.method_defined? :set_indent
281
+ writer = LibXML::XML::Writer.string
259
282
  assert(writer.set_indent true)
260
- document writer do
283
+ document(writer) do
261
284
  element writer, 'root' do
262
285
  element writer, 'child' do
263
286
  assert(writer.start_attribute 'abc')
@@ -271,11 +294,11 @@ class TestWriter < Minitest::Test
271
294
  end
272
295
 
273
296
  def test_indentation_string
274
- if XML::Writer.method_defined? :set_indent_string
275
- writer = XML::Writer.string
297
+ if LibXML::XML::Writer.method_defined? :set_indent_string
298
+ writer = LibXML::XML::Writer.string
276
299
  assert(writer.set_indent true)
277
300
  assert(writer.set_indent_string ' ' * 4)
278
- document writer do
301
+ document(writer) do
279
302
  element writer, 'root' do
280
303
  element writer, 'child' do
281
304
  assert(writer.start_attribute 'abc')
@@ -289,11 +312,11 @@ class TestWriter < Minitest::Test
289
312
  end
290
313
 
291
314
  def test_dtd_declaration
292
- writer = XML::Writer.string
315
+ writer = LibXML::XML::Writer.string
293
316
  dtd writer, 'html'
294
317
  assert_equal(writer.result, '<!DOCTYPE html>')
295
318
 
296
- writer = XML::Writer.string
319
+ writer = LibXML::XML::Writer.string
297
320
  dtd writer, 'html', '-//W3C//DTD XHTML 1.0 Strict//EN', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
298
321
  assert_equal(writer.result, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">')
299
322
  end
@@ -301,7 +324,7 @@ class TestWriter < Minitest::Test
301
324
  def test_dtd_attlist
302
325
  expected = '<!DOCTYPE http [<!ATTLIST method (get|post) "get">]>'
303
326
 
304
- writer = XML::Writer.string
327
+ writer = LibXML::XML::Writer.string
305
328
  dtd writer, 'http' do
306
329
  assert(writer.start_dtd_attlist 'method')
307
330
  assert(writer.write_string '(get|post) "get"')
@@ -309,7 +332,7 @@ class TestWriter < Minitest::Test
309
332
  end
310
333
  assert_equal(writer.result, expected)
311
334
 
312
- writer = XML::Writer.string
335
+ writer = LibXML::XML::Writer.string
313
336
  dtd writer, 'http' do
314
337
  assert(writer.write_dtd_attlist 'method', '(get|post) "get"')
315
338
  end
@@ -319,7 +342,7 @@ class TestWriter < Minitest::Test
319
342
  def test_dtd_element
320
343
  expected = '<!DOCTYPE html [<!ELEMENT dl (dt|dd)+>]>'
321
344
 
322
- writer = XML::Writer.string
345
+ writer = LibXML::XML::Writer.string
323
346
  dtd writer, 'html' do
324
347
  assert(writer.start_dtd_element 'dl')
325
348
  assert(writer.write_string '(dt|dd)+')
@@ -327,7 +350,7 @@ class TestWriter < Minitest::Test
327
350
  end
328
351
  assert_equal(writer.result, expected)
329
352
 
330
- writer = XML::Writer.string
353
+ writer = LibXML::XML::Writer.string
331
354
  dtd writer, 'html' do
332
355
  assert(writer.write_dtd_element 'dl', '(dt|dd)+')
333
356
  end
@@ -338,7 +361,7 @@ class TestWriter < Minitest::Test
338
361
  # parameterized entity
339
362
  expected = '<!DOCTYPE html [<!ENTITY % special.pre "br | span | bdo | map"><!ENTITY % special "%special.pre; | object | img">]>'
340
363
 
341
- writer = XML::Writer.string
364
+ writer = LibXML::XML::Writer.string
342
365
  dtd writer, 'html' do
343
366
  assert(writer.start_dtd_entity 'special.pre', true)
344
367
  assert(writer.write_string 'br | span | bdo | map')
@@ -349,7 +372,7 @@ class TestWriter < Minitest::Test
349
372
  end
350
373
  assert_equal(writer.result, expected)
351
374
 
352
- writer = XML::Writer.string
375
+ writer = LibXML::XML::Writer.string
353
376
  dtd writer, 'html' do
354
377
  assert(writer.write_dtd_internal_entity 'special.pre', 'br | span | bdo | map', true)
355
378
  assert(writer.write_dtd_internal_entity 'special', '%special.pre; | object | img', true)
@@ -359,7 +382,7 @@ class TestWriter < Minitest::Test
359
382
  # non parameterized entity
360
383
  expected = '<!DOCTYPE html [<!ENTITY Alpha "&#913;">]>'
361
384
 
362
- writer = XML::Writer.string
385
+ writer = LibXML::XML::Writer.string
363
386
  dtd writer, 'html' do
364
387
  assert(writer.start_dtd_entity 'Alpha')
365
388
  assert(writer.write_string '&#913;')
@@ -367,7 +390,7 @@ class TestWriter < Minitest::Test
367
390
  end
368
391
  assert_equal(writer.result, expected)
369
392
 
370
- writer = XML::Writer.string
393
+ writer = LibXML::XML::Writer.string
371
394
  dtd writer, 'html' do
372
395
  assert(writer.start_dtd_entity 'Alpha', false)
373
396
  assert(writer.write_string '&#913;')
@@ -375,7 +398,7 @@ class TestWriter < Minitest::Test
375
398
  end
376
399
  assert_equal(writer.result, expected)
377
400
 
378
- writer = XML::Writer.string
401
+ writer = LibXML::XML::Writer.string
379
402
  dtd writer, 'html' do
380
403
  assert(writer.write_dtd_internal_entity 'Alpha', '&#913;', false)
381
404
  end
@@ -383,7 +406,7 @@ class TestWriter < Minitest::Test
383
406
  end
384
407
 
385
408
  def test_dtd_notation
386
- writer = XML::Writer.string
409
+ writer = LibXML::XML::Writer.string
387
410
  dtd writer, 'pictures' do
388
411
  assert(writer.write_dtd_notation 'GIF89a', '-//Compuserve//NOTATION Graphics Interchange Format 89a//EN', nil)
389
412
  assert(writer.write_dtd_external_entity 'pictures', nil, 'images/plage.gif', 'GIF89a', false)
@@ -392,19 +415,17 @@ class TestWriter < Minitest::Test
392
415
  end
393
416
 
394
417
  def test_encoding
395
- if defined?(Encoding)
396
- iso = 'éloïse'.encode 'ISO-8859-1'
418
+ iso = 'éloïse'.encode 'ISO-8859-1'
397
419
 
398
- writer = XML::Writer.string
399
- document writer do
400
- assert(writer.write_element iso)
401
- end
402
- assert_equal(writer.result.strip!, "<?xml version=\"1.0\"?>\n<éloïse/>")
420
+ writer = LibXML::XML::Writer.string
421
+ document(writer) do
422
+ assert(writer.write_element iso)
403
423
  end
424
+ assert_equal(writer.result.strip!, "<?xml version=\"1.0\"?>\n<éloïse/>")
404
425
  end
405
426
 
406
427
  def test_flush
407
- writer = XML::Writer.string
428
+ writer = LibXML::XML::Writer.string
408
429
  assert(writer.start_document)
409
430
  assert_equal(writer.flush.strip!, '<?xml version="1.0"?>')
410
431
  assert(writer.start_element 'foo')
@@ -417,7 +438,7 @@ class TestWriter < Minitest::Test
417
438
  def test_nil_pe_issue
418
439
  expected = '<!DOCTYPE html [<!ENTITY special.pre "br | span | bdo | map"><!ENTITY special "%special.pre; | object | img">]>'
419
440
 
420
- writer = XML::Writer.string
441
+ writer = LibXML::XML::Writer.string
421
442
  dtd writer, 'html' do
422
443
  assert(writer.write_dtd_internal_entity 'special.pre', 'br | span | bdo | map', nil)
423
444
  assert(writer.write_dtd_internal_entity 'special', '%special.pre; | object | img', nil)
@@ -1,11 +1,11 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
 
5
5
  class TestXInclude < Minitest::Test
6
6
  def setup
7
- @doc = XML::Document.file(File.join(File.dirname(__FILE__), 'model/xinclude.xml'))
8
- assert_instance_of(XML::Document, @doc)
7
+ @doc = LibXML::XML::Document.file(File.join(File.dirname(__FILE__), 'model/xinclude.xml'))
8
+ assert_instance_of(LibXML::XML::Document, @doc)
9
9
  end
10
10
 
11
11
  def teardown
data/test/test_xml.rb ADDED
@@ -0,0 +1,263 @@
1
+ # encoding: UTF-8
2
+
3
+ require_relative './test_helper'
4
+ require 'stringio'
5
+
6
+ class TestXml < Minitest::Test
7
+ # ----- Constants ------
8
+ def test_lib_versions
9
+ assert(LibXML::XML.check_lib_versions)
10
+ end
11
+
12
+ def test_debug_entities
13
+ original = LibXML::XML.debug_entities
14
+
15
+ LibXML::XML.debug_entities = false
16
+ refute(LibXML::XML.debug_entities)
17
+
18
+ LibXML::XML.debug_entities = true
19
+ assert(LibXML::XML.debug_entities)
20
+
21
+ LibXML::XML.debug_entities = false
22
+ refute(LibXML::XML.debug_entities)
23
+
24
+ LibXML::XML.debug_entities = original
25
+ end
26
+
27
+ def test_default_compression
28
+ return unless LibXML::XML.default_compression
29
+
30
+ original = LibXML::XML.default_compression
31
+
32
+ 0.upto(9) do |i|
33
+ LibXML::XML.default_compression = i
34
+ assert_equal(i, LibXML::XML.default_compression)
35
+ end
36
+
37
+ 9.downto(0) do |i|
38
+ assert_equal(i, LibXML::XML.default_compression = i)
39
+ assert_equal(i, LibXML::XML.default_compression)
40
+ end
41
+
42
+ 0.downto(-10) do |i|
43
+ assert_equal(i, LibXML::XML.default_compression = i)
44
+ assert_equal(0, LibXML::XML.default_compression)
45
+ end
46
+
47
+ 10.upto(20) do |i|
48
+ assert_equal(i, LibXML::XML.default_compression = i)
49
+ assert_equal(9, LibXML::XML.default_compression)
50
+ end
51
+
52
+ LibXML::XML.default_compression = original
53
+ end
54
+
55
+ def test_default_keep_blanks
56
+ original = LibXML::XML.default_keep_blanks
57
+
58
+ LibXML::XML.default_keep_blanks = false
59
+ refute(LibXML::XML.default_keep_blanks)
60
+ assert_equal(LibXML::XML::Parser::Options::NOBLANKS, LibXML::XML.default_options)
61
+
62
+ LibXML::XML.default_keep_blanks = true
63
+ assert(LibXML::XML.default_keep_blanks)
64
+ assert_equal(0, LibXML::XML.default_options)
65
+
66
+ LibXML::XML.default_keep_blanks = original
67
+ end
68
+
69
+ def test_default_line_numbers
70
+ original = LibXML::XML.default_line_numbers
71
+
72
+ LibXML::XML.default_line_numbers = false
73
+ refute(LibXML::XML.default_line_numbers)
74
+
75
+ LibXML::XML.default_line_numbers = true
76
+ assert(LibXML::XML.default_line_numbers)
77
+
78
+ LibXML::XML.default_line_numbers = false
79
+ refute(LibXML::XML.default_line_numbers)
80
+
81
+ LibXML::XML.default_line_numbers = original
82
+ end
83
+
84
+ def test_default_substitute_entities
85
+ original = LibXML::XML.default_substitute_entities
86
+
87
+ LibXML::XML.default_substitute_entities = false
88
+ refute(LibXML::XML.default_substitute_entities)
89
+ assert_equal(0, LibXML::XML.default_options)
90
+
91
+ LibXML::XML.default_substitute_entities = true
92
+ assert(LibXML::XML.default_substitute_entities)
93
+ assert_equal(LibXML::XML::Parser::Options::NOENT, LibXML::XML.default_options)
94
+
95
+ LibXML::XML.default_substitute_entities = false
96
+ refute(LibXML::XML.default_substitute_entities)
97
+
98
+ LibXML::XML.default_substitute_entities = original
99
+ end
100
+
101
+ def test_default_tree_indent_string
102
+ original = LibXML::XML.default_tree_indent_string
103
+
104
+ s = LibXML::XML.default_tree_indent_string
105
+ assert_instance_of(String, s)
106
+ assert_equal(' ', s)
107
+ LibXML::XML.default_tree_indent_string = 'uga'
108
+ s = LibXML::XML.default_tree_indent_string
109
+ assert_instance_of(String, s)
110
+ assert_equal('uga', s)
111
+ LibXML::XML.default_tree_indent_string = ' '
112
+ s = LibXML::XML.default_tree_indent_string
113
+ assert_instance_of(String, s)
114
+ assert_equal(' ', s)
115
+
116
+ LibXML::XML.default_tree_indent_string = original
117
+ end
118
+
119
+ def test_default_validity_checking
120
+ original = LibXML::XML.default_validity_checking
121
+
122
+ LibXML::XML.default_validity_checking = false
123
+ refute(LibXML::XML.default_validity_checking)
124
+ assert_equal(0, LibXML::XML.default_options)
125
+
126
+ LibXML::XML.default_validity_checking = true
127
+ assert(LibXML::XML.default_validity_checking)
128
+ assert_equal(LibXML::XML::Parser::Options::DTDVALID, LibXML::XML.default_options)
129
+
130
+ LibXML::XML.default_validity_checking = false
131
+ refute(LibXML::XML.default_validity_checking)
132
+
133
+ LibXML::XML.default_validity_checking = original
134
+ end
135
+
136
+ def test_default_warnings
137
+ original = LibXML::XML.default_warnings
138
+
139
+ LibXML::XML.default_warnings = false
140
+ refute(LibXML::XML.default_warnings)
141
+ assert_equal(LibXML::XML::Parser::Options::NOWARNING, LibXML::XML.default_options)
142
+
143
+ LibXML::XML.default_warnings = true
144
+ assert(LibXML::XML.default_warnings)
145
+ assert_equal(0, LibXML::XML.default_options)
146
+
147
+ LibXML::XML.default_warnings = false
148
+ refute(LibXML::XML.default_warnings)
149
+
150
+ LibXML::XML.default_warnings = original
151
+ end
152
+
153
+ def test_enabled_automata
154
+ assert(LibXML::XML.enabled_automata?)
155
+ end
156
+
157
+ def test_enabled_c14n
158
+ assert(LibXML::XML.enabled_c14n?)
159
+ end
160
+
161
+ def test_enabled_catalog
162
+ assert(LibXML::XML.enabled_catalog?)
163
+ end
164
+
165
+ def test_enabled_debug
166
+ assert(LibXML::XML.enabled_debug?)
167
+ end
168
+
169
+ def test_enabled_docbook
170
+ assert(LibXML::XML.enabled_docbook?)
171
+ end
172
+
173
+ def test_enabled_ftp
174
+ assert(LibXML::XML.enabled_ftp?)
175
+ end
176
+
177
+ def test_enabled_http
178
+ assert(LibXML::XML.enabled_http?)
179
+ end
180
+
181
+ def test_enabled_html
182
+ assert(LibXML::XML.enabled_html?)
183
+ end
184
+
185
+ def test_enabled_iconv
186
+ iconv_enabled = RUBY_PLATFORM !~ /darwin/
187
+ assert_equal(iconv_enabled, LibXML::XML.enabled_iconv?)
188
+ end
189
+
190
+ def test_enabled_memory_debug
191
+ assert_equal(false, LibXML::XML.enabled_memory_debug?)
192
+ end
193
+
194
+ def test_enabled_regexp
195
+ assert(LibXML::XML.enabled_regexp?)
196
+ end
197
+
198
+ def test_enabled_schemas
199
+ assert(LibXML::XML.enabled_schemas?)
200
+ end
201
+
202
+ def test_enabled_thread
203
+ assert(LibXML::XML.enabled_thread?)
204
+ end
205
+
206
+ def test_enabled_unicode
207
+ assert(LibXML::XML.enabled_unicode?)
208
+ end
209
+
210
+ def test_enabled_xinclude
211
+ assert(LibXML::XML.enabled_xinclude?)
212
+ end
213
+
214
+ def test_enabled_xpath
215
+ assert(LibXML::XML.enabled_xpath?)
216
+ end
217
+
218
+ def test_enabled_xpointer
219
+ assert(LibXML::XML.enabled_xpointer?)
220
+ end
221
+
222
+ def test_enabled_zlib
223
+ assert(LibXML::XML.enabled_zlib?.is_a?(TrueClass) || LibXML::XML.enabled_zlib?.is_a?(FalseClass))
224
+ end
225
+
226
+ def test_intent_tree_output
227
+ assert(TrueClass, LibXML::XML.indent_tree_output)
228
+
229
+ LibXML::XML.indent_tree_output = false
230
+ assert(FalseClass, LibXML::XML.indent_tree_output)
231
+
232
+ LibXML::XML.indent_tree_output = true
233
+ assert(TrueClass, LibXML::XML.indent_tree_output)
234
+ end
235
+
236
+ def test_version
237
+ assert_instance_of(String, LibXML::XML::VERSION)
238
+ end
239
+
240
+ def test_vernum
241
+ assert_instance_of(Integer, LibXML::XML::VERNUM)
242
+ end
243
+
244
+ def test_libxml_parser_features
245
+ assert_instance_of(Array, LibXML::XML.features)
246
+ end
247
+
248
+ def test_default_options
249
+ assert_equal(0, LibXML::XML.default_options)
250
+ end
251
+
252
+ def test_default_save_no_empty_tags
253
+ original = LibXML::XML.default_save_no_empty_tags
254
+
255
+ LibXML::XML.default_save_no_empty_tags = false
256
+ refute(LibXML::XML.default_save_no_empty_tags)
257
+
258
+ LibXML::XML.default_save_no_empty_tags = true
259
+ assert(LibXML::XML.default_save_no_empty_tags)
260
+
261
+ LibXML::XML.default_save_no_empty_tags = original
262
+ end
263
+ end