libxml-ruby 3.0.0-x64-mingw32 → 3.2.2-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/HISTORY +37 -0
- data/MANIFEST +34 -34
- data/README.rdoc +65 -36
- data/Rakefile +21 -3
- data/ext/libxml/extconf.rb +30 -26
- data/ext/libxml/ruby_libxml.h +0 -8
- data/ext/libxml/ruby_xml.c +40 -0
- data/ext/libxml/ruby_xml_document.c +1 -5
- data/ext/libxml/ruby_xml_dtd.c +6 -8
- data/ext/libxml/ruby_xml_encoding.c +1 -13
- data/ext/libxml/ruby_xml_encoding.h +0 -3
- data/ext/libxml/ruby_xml_error.c +1 -1
- data/ext/libxml/ruby_xml_error.h +1 -1
- data/ext/libxml/ruby_xml_io.c +14 -18
- data/ext/libxml/ruby_xml_io.h +1 -1
- data/ext/libxml/ruby_xml_node.c +16 -17
- data/ext/libxml/ruby_xml_parser_context.c +1 -1
- data/ext/libxml/ruby_xml_reader.c +7 -2
- data/ext/libxml/ruby_xml_schema.c +44 -66
- data/ext/libxml/ruby_xml_schema_element.c +15 -14
- data/ext/libxml/ruby_xml_schema_type.c +66 -93
- data/ext/libxml/ruby_xml_version.h +4 -4
- data/ext/libxml/ruby_xml_writer.c +189 -192
- data/lib/3.0/libxml_ruby.so +0 -0
- data/lib/libxml/schema/element.rb +0 -8
- data/lib/libxml/schema/type.rb +0 -8
- data/lib/libxml/schema.rb +0 -19
- data/lib/libxml-ruby.rb +30 -0
- data/lib/libxml.rb +3 -28
- data/libxml-ruby.gemspec +5 -4
- data/setup.rb +0 -1
- data/test/model/cwm_1_0.xml +11336 -0
- data/test/{tc_attr.rb → test_attr.rb} +18 -18
- data/test/{tc_attr_decl.rb → test_attr_decl.rb} +8 -8
- data/test/{tc_attributes.rb → test_attributes.rb} +10 -10
- data/test/{tc_canonicalize.rb → test_canonicalize.rb} +35 -39
- data/test/test_deprecated_require.rb +12 -0
- data/test/{tc_document.rb → test_document.rb} +31 -24
- data/test/test_document_write.rb +146 -0
- data/test/{tc_dtd.rb → test_dtd.rb} +26 -25
- data/test/{tc_encoding.rb → test_encoding.rb} +20 -17
- data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +3 -3
- data/test/test_error.rb +178 -0
- data/test/test_helper.rb +4 -11
- data/test/{tc_html_parser.rb → test_html_parser.rb} +31 -30
- data/test/test_html_parser_context.rb +23 -0
- data/test/test_namespace.rb +60 -0
- data/test/{tc_namespaces.rb → test_namespaces.rb} +29 -38
- data/test/{tc_node.rb → test_node.rb} +37 -31
- data/test/{tc_node_cdata.rb → test_node_cdata.rb} +10 -10
- data/test/{tc_node_comment.rb → test_node_comment.rb} +6 -6
- data/test/{tc_node_copy.rb → test_node_copy.rb} +3 -4
- data/test/{tc_node_edit.rb → test_node_edit.rb} +20 -21
- data/test/{tc_node_pi.rb → test_node_pi.rb} +8 -10
- data/test/{tc_node_text.rb → test_node_text.rb} +8 -9
- data/test/{tc_node_write.rb → test_node_write.rb} +16 -26
- data/test/test_node_xlink.rb +28 -0
- data/test/{tc_parser.rb → test_parser.rb} +72 -75
- data/test/{tc_parser_context.rb → test_parser_context.rb} +38 -44
- data/test/{tc_properties.rb → test_properties.rb} +5 -5
- data/test/test_reader.rb +364 -0
- data/test/{tc_relaxng.rb → test_relaxng.rb} +11 -11
- data/test/{tc_sax_parser.rb → test_sax_parser.rb} +38 -31
- data/test/{tc_schema.rb → test_schema.rb} +40 -33
- data/test/test_suite.rb +39 -40
- data/test/{tc_traversal.rb → test_traversal.rb} +4 -4
- data/test/{tc_writer.rb → test_writer.rb} +95 -74
- data/test/{tc_xinclude.rb → test_xinclude.rb} +3 -3
- data/test/test_xml.rb +263 -0
- data/test/{tc_xpath.rb → test_xpath.rb} +25 -25
- data/test/{tc_xpath_context.rb → test_xpath_context.rb} +5 -5
- data/test/{tc_xpath_expression.rb → test_xpath_expression.rb} +7 -7
- data/test/{tc_xpointer.rb → test_xpointer.rb} +15 -15
- metadata +92 -106
- data/lib/2.4/libxml_ruby.so +0 -0
- data/lib/libs/libiconv-2.dll +0 -0
- data/lib/libs/libxml2-2.dll +0 -0
- data/lib/libs/zlib1.dll +0 -0
- data/test/tc_deprecated_require.rb +0 -12
- data/test/tc_document_write.rb +0 -195
- data/test/tc_error.rb +0 -178
- data/test/tc_html_parser_context.rb +0 -23
- data/test/tc_namespace.rb +0 -61
- data/test/tc_node_xlink.rb +0 -28
- data/test/tc_reader.rb +0 -358
- data/test/tc_xml.rb +0 -225
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 "Α">]>'
|
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 'Α')
|
@@ -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 'Α')
|
@@ -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', 'Α', 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
|
-
|
396
|
-
iso = 'éloïse'.encode 'ISO-8859-1'
|
418
|
+
iso = 'éloïse'.encode 'ISO-8859-1'
|
397
419
|
|
398
|
-
|
399
|
-
|
400
|
-
|
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
|
-
|
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
|