libxml-ruby 2.8.0 → 3.2.1

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.
Files changed (204) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +842 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +90 -78
  7. data/ext/libxml/extconf.h +3 -0
  8. data/ext/libxml/extconf.rb +61 -116
  9. data/ext/libxml/libxml.c +80 -76
  10. data/ext/libxml/ruby_libxml.h +67 -75
  11. data/ext/libxml/ruby_xml.c +933 -893
  12. data/ext/libxml/ruby_xml.h +10 -10
  13. data/ext/libxml/ruby_xml_attr.c +333 -333
  14. data/ext/libxml/ruby_xml_attr.h +12 -12
  15. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  16. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  17. data/ext/libxml/ruby_xml_attributes.c +275 -275
  18. data/ext/libxml/ruby_xml_attributes.h +15 -15
  19. data/ext/libxml/ruby_xml_cbg.c +85 -85
  20. data/ext/libxml/ruby_xml_document.c +1123 -1147
  21. data/ext/libxml/ruby_xml_document.h +11 -11
  22. data/ext/libxml/ruby_xml_dtd.c +248 -268
  23. data/ext/libxml/ruby_xml_dtd.h +9 -9
  24. data/ext/libxml/ruby_xml_encoding.c +250 -260
  25. data/ext/libxml/ruby_xml_encoding.h +16 -19
  26. data/ext/libxml/ruby_xml_error.c +996 -996
  27. data/ext/libxml/ruby_xml_error.h +12 -12
  28. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  29. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  30. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  31. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  32. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  33. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  34. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  35. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  36. data/ext/libxml/ruby_xml_io.c +47 -50
  37. data/ext/libxml/ruby_xml_io.h +10 -10
  38. data/ext/libxml/ruby_xml_namespace.c +153 -153
  39. data/ext/libxml/ruby_xml_namespace.h +10 -10
  40. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  41. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  42. data/ext/libxml/ruby_xml_node.c +1402 -1452
  43. data/ext/libxml/ruby_xml_node.h +13 -11
  44. data/ext/libxml/ruby_xml_parser.c +91 -94
  45. data/ext/libxml/ruby_xml_parser.h +12 -12
  46. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  47. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  48. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  49. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  50. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  51. data/ext/libxml/ruby_xml_reader.h +17 -17
  52. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  53. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  54. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  55. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  56. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  57. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  58. data/ext/libxml/ruby_xml_schema.c +278 -301
  59. data/ext/libxml/ruby_xml_schema.h +809 -809
  60. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  61. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  62. data/ext/libxml/ruby_xml_schema_element.c +95 -94
  63. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  64. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  65. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  66. data/ext/libxml/ruby_xml_schema_type.c +232 -259
  67. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  68. data/ext/libxml/ruby_xml_version.h +9 -9
  69. data/ext/libxml/ruby_xml_writer.c +1133 -1137
  70. data/ext/libxml/ruby_xml_writer.h +10 -10
  71. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  72. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  73. data/ext/libxml/ruby_xml_xpath.c +194 -188
  74. data/ext/libxml/ruby_xml_xpath.h +13 -13
  75. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  76. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  77. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  78. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  79. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  80. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  81. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  82. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  83. data/ext/vc/libxml_ruby.sln +17 -15
  84. data/lib/libxml-ruby.rb +30 -0
  85. data/lib/libxml.rb +3 -33
  86. data/lib/libxml/node.rb +2 -78
  87. data/lib/libxml/parser.rb +0 -266
  88. data/lib/libxml/sax_parser.rb +0 -17
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml/schema/attribute.rb +19 -19
  91. data/lib/libxml/schema/element.rb +19 -27
  92. data/lib/libxml/schema/type.rb +21 -29
  93. data/libxml-ruby.gemspec +48 -44
  94. data/script/benchmark/depixelate +634 -634
  95. data/script/benchmark/hamlet.xml +9054 -9054
  96. data/script/benchmark/parsecount +170 -170
  97. data/script/benchmark/throughput +41 -41
  98. data/script/test +6 -6
  99. data/setup.rb +0 -1
  100. data/test/c14n/given/example-1.xml +14 -14
  101. data/test/c14n/given/example-2.xml +11 -11
  102. data/test/c14n/given/example-3.xml +18 -18
  103. data/test/c14n/given/example-4.xml +9 -9
  104. data/test/c14n/given/example-5.xml +12 -12
  105. data/test/c14n/given/example-6.xml +2 -2
  106. data/test/c14n/given/example-7.xml +11 -11
  107. data/test/c14n/given/example-8.xml +11 -11
  108. data/test/c14n/given/example-8.xpath +9 -9
  109. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  110. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  111. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  112. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  113. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  114. data/test/c14n/result/with-comments/example-1 +5 -5
  115. data/test/c14n/result/with-comments/example-2 +10 -10
  116. data/test/c14n/result/with-comments/example-3 +13 -13
  117. data/test/c14n/result/with-comments/example-4 +8 -8
  118. data/test/c14n/result/with-comments/example-5 +3 -3
  119. data/test/c14n/result/without-comments/example-1 +3 -3
  120. data/test/c14n/result/without-comments/example-2 +10 -10
  121. data/test/c14n/result/without-comments/example-3 +13 -13
  122. data/test/c14n/result/without-comments/example-4 +8 -8
  123. data/test/c14n/result/without-comments/example-5 +2 -2
  124. data/test/model/atom.xml +12 -12
  125. data/test/model/bands.iso-8859-1.xml +4 -4
  126. data/test/model/bands.utf-8.xml +4 -4
  127. data/test/model/bands.xml +4 -4
  128. data/test/model/books.xml +153 -153
  129. data/test/model/cwm_1_0.xml +11336 -0
  130. data/test/model/merge_bug_data.xml +58 -58
  131. data/test/model/ruby-lang.html +238 -238
  132. data/test/model/rubynet.xml +79 -79
  133. data/test/model/shiporder.rnc +28 -28
  134. data/test/model/shiporder.rng +86 -86
  135. data/test/model/shiporder.xml +22 -22
  136. data/test/model/shiporder.xsd +39 -39
  137. data/test/model/soap.xml +27 -27
  138. data/test/model/xinclude.xml +4 -4
  139. data/test/test.xml +2 -0
  140. data/test/{tc_attr.rb → test_attr.rb} +23 -25
  141. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +13 -14
  142. data/test/{tc_attributes.rb → test_attributes.rb} +11 -18
  143. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +36 -41
  144. data/test/test_deprecated_require.rb +12 -0
  145. data/test/{tc_document.rb → test_document.rb} +32 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +28 -29
  148. data/test/{tc_encoding.rb → test_encoding.rb} +129 -126
  149. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +7 -6
  150. data/test/test_error.rb +178 -0
  151. data/test/test_helper.rb +3 -10
  152. data/test/test_html_parser.rb +162 -0
  153. data/test/test_html_parser_context.rb +23 -0
  154. data/test/test_namespace.rb +60 -0
  155. data/test/{tc_namespaces.rb → test_namespaces.rb} +34 -44
  156. data/test/{tc_node.rb → test_node.rb} +68 -47
  157. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +12 -13
  158. data/test/{tc_node_comment.rb → test_node_comment.rb} +7 -8
  159. data/test/{tc_node_copy.rb → test_node_copy.rb} +4 -6
  160. data/test/{tc_node_edit.rb → test_node_edit.rb} +23 -41
  161. data/test/{tc_node_pi.rb → test_node_pi.rb} +37 -40
  162. data/test/{tc_node_text.rb → test_node_text.rb} +10 -12
  163. data/test/{tc_node_write.rb → test_node_write.rb} +18 -29
  164. data/test/test_node_xlink.rb +28 -0
  165. data/test/test_parser.rb +324 -0
  166. data/test/{tc_parser_context.rb → test_parser_context.rb} +41 -42
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +363 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +36 -37
  171. data/test/{tc_schema.rb → test_schema.rb} +43 -37
  172. data/test/test_suite.rb +38 -40
  173. data/test/{tc_traversal.rb → test_traversal.rb} +5 -6
  174. data/test/{tc_writer.rb → test_writer.rb} +468 -448
  175. data/test/{tc_xinclude.rb → test_xinclude.rb} +4 -5
  176. data/test/test_xml.rb +262 -0
  177. data/test/{tc_xpath.rb → test_xpath.rb} +31 -32
  178. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +8 -9
  179. data/test/test_xpath_expression.rb +37 -0
  180. data/test/{tc_xpointer.rb → test_xpointer.rb} +16 -18
  181. metadata +117 -95
  182. data/lib/libxml/ns.rb +0 -22
  183. data/lib/libxml/properties.rb +0 -23
  184. data/lib/libxml/reader.rb +0 -29
  185. data/lib/libxml/xpath_object.rb +0 -16
  186. data/test/etc_doc_to_s.rb +0 -21
  187. data/test/ets_doc_file.rb +0 -17
  188. data/test/ets_doc_to_s.rb +0 -23
  189. data/test/ets_gpx.rb +0 -28
  190. data/test/ets_node_gc.rb +0 -23
  191. data/test/ets_test.xml +0 -2
  192. data/test/ets_tsr.rb +0 -11
  193. data/test/tc_deprecated_require.rb +0 -13
  194. data/test/tc_document_write.rb +0 -196
  195. data/test/tc_error.rb +0 -180
  196. data/test/tc_html_parser.rb +0 -153
  197. data/test/tc_html_parser_context.rb +0 -24
  198. data/test/tc_namespace.rb +0 -62
  199. data/test/tc_node_xlink.rb +0 -29
  200. data/test/tc_parser.rb +0 -381
  201. data/test/tc_reader.rb +0 -400
  202. data/test/tc_relaxng.rb +0 -54
  203. data/test/tc_xml.rb +0 -226
  204. data/test/tc_xpath_expression.rb +0 -38
@@ -1,17 +1,16 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
  require 'stringio'
5
- require 'test/unit'
6
5
 
7
6
  class DocTypeCallback
8
- include XML::SaxParser::Callbacks
7
+ include LibXML::XML::SaxParser::Callbacks
9
8
  def on_start_element(element, attributes)
10
9
  end
11
10
  end
12
11
 
13
12
  class TestCaseCallbacks
14
- include XML::SaxParser::Callbacks
13
+ include LibXML::XML::SaxParser::Callbacks
15
14
 
16
15
  attr_accessor :result
17
16
 
@@ -68,7 +67,7 @@ class TestCaseCallbacks
68
67
  end
69
68
  end
70
69
 
71
- class TestSaxParser < Test::Unit::TestCase
70
+ class TestSaxParser < Minitest::Test
72
71
  def saxtest_file
73
72
  File.join(File.dirname(__FILE__), 'model/atom.xml')
74
73
  end
@@ -120,28 +119,28 @@ class TestSaxParser < Test::Unit::TestCase
120
119
  end
121
120
 
122
121
  def test_file
123
- parser = XML::SaxParser.file(saxtest_file)
122
+ parser = LibXML::XML::SaxParser.file(saxtest_file)
124
123
  parser.callbacks = TestCaseCallbacks.new
125
124
  parser.parse
126
125
  verify(parser)
127
126
  end
128
127
 
129
128
  def test_file_no_callbacks
130
- parser = XML::SaxParser.file(saxtest_file)
129
+ parser = LibXML::XML::SaxParser.file(saxtest_file)
131
130
  assert_equal true, parser.parse
132
131
  end
133
132
 
134
133
  def test_noexistent_file
135
- error = assert_raise(XML::Error) do
136
- XML::SaxParser.file('i_dont_exist.xml')
134
+ error = assert_raises(LibXML::XML::Error) do
135
+ LibXML::XML::SaxParser.file('i_dont_exist.xml')
137
136
  end
138
137
 
139
138
  assert_equal('Warning: failed to load external entity "i_dont_exist.xml".', error.to_s)
140
139
  end
141
140
 
142
141
  def test_nil_file
143
- error = assert_raise(TypeError) do
144
- XML::SaxParser.file(nil)
142
+ error = assert_raises(TypeError) do
143
+ LibXML::XML::SaxParser.file(nil)
145
144
  end
146
145
 
147
146
  assert_match(/nil into String/, error.to_s)
@@ -149,7 +148,7 @@ class TestSaxParser < Test::Unit::TestCase
149
148
 
150
149
  def test_io
151
150
  File.open(saxtest_file) do |file|
152
- parser = XML::SaxParser.io(file)
151
+ parser = LibXML::XML::SaxParser.io(file)
153
152
  parser.callbacks = TestCaseCallbacks.new
154
153
  parser.parse
155
154
  verify(parser)
@@ -157,8 +156,8 @@ class TestSaxParser < Test::Unit::TestCase
157
156
  end
158
157
 
159
158
  def test_nil_io
160
- error = assert_raise(TypeError) do
161
- XML::HTMLParser.io(nil)
159
+ error = assert_raises(TypeError) do
160
+ LibXML::XML::HTMLParser.io(nil)
162
161
  end
163
162
 
164
163
  assert_equal("Must pass in an IO object", error.to_s)
@@ -166,13 +165,13 @@ class TestSaxParser < Test::Unit::TestCase
166
165
 
167
166
  def test_string_no_callbacks
168
167
  xml = File.read(saxtest_file)
169
- parser = XML::SaxParser.string(xml)
168
+ parser = LibXML::XML::SaxParser.string(xml)
170
169
  assert_equal true, parser.parse
171
170
  end
172
171
 
173
172
  def test_string
174
173
  xml = File.read(saxtest_file)
175
- parser = XML::SaxParser.string(xml)
174
+ parser = LibXML::XML::SaxParser.string(xml)
176
175
  parser.callbacks = TestCaseCallbacks.new
177
176
  parser.parse
178
177
  verify(parser)
@@ -181,7 +180,7 @@ class TestSaxParser < Test::Unit::TestCase
181
180
  def test_string_io
182
181
  xml = File.read(saxtest_file)
183
182
  io = StringIO.new(xml)
184
- parser = XML::SaxParser.io(io)
183
+ parser = LibXML::XML::SaxParser.io(io)
185
184
 
186
185
  parser.callbacks = TestCaseCallbacks.new
187
186
  parser.parse
@@ -189,8 +188,8 @@ class TestSaxParser < Test::Unit::TestCase
189
188
  end
190
189
 
191
190
  def test_nil_string
192
- error = assert_raise(TypeError) do
193
- XML::SaxParser.string(nil)
191
+ error = assert_raises(TypeError) do
192
+ LibXML::XML::SaxParser.string(nil)
194
193
  end
195
194
 
196
195
  assert_equal("wrong argument type nil (expected String)", error.to_s)
@@ -204,10 +203,10 @@ class TestSaxParser < Test::Unit::TestCase
204
203
  <a>a1</a>
205
204
  </Results>
206
205
  EOS
207
- parser = XML::SaxParser.string(xml)
206
+ parser = LibXML::XML::SaxParser.string(xml)
208
207
  parser.callbacks = DocTypeCallback.new
209
208
  doc = parser.parse
210
- assert_not_nil(doc)
209
+ refute_nil(doc)
211
210
  end
212
211
 
213
212
  def test_parse_warning
@@ -218,7 +217,7 @@ EOS
218
217
  <Test/>
219
218
  EOS
220
219
 
221
- parser = XML::SaxParser.string(xml)
220
+ parser = LibXML::XML::SaxParser.string(xml)
222
221
  parser.callbacks = TestCaseCallbacks.new
223
222
 
224
223
  parser.parse
@@ -240,11 +239,11 @@ EOS
240
239
  xml = <<-EOS
241
240
  <Results>
242
241
  EOS
243
- parser = XML::SaxParser.string(xml)
242
+ parser = LibXML::XML::SaxParser.string(xml)
244
243
  parser.callbacks = TestCaseCallbacks.new
245
244
 
246
- error = assert_raise(XML::Error) do
247
- doc = parser.parse
245
+ error = assert_raises(LibXML::XML::Error) do
246
+ parser.parse
248
247
  end
249
248
 
250
249
  # Check callbacks
@@ -255,21 +254,21 @@ EOS
255
254
  assert_equal("start_element: Results, attr: {}", result[i+=1])
256
255
  assert_equal("start_element_ns: Results, attr: {}, prefix: , uri: , ns: {}", result[i+=1])
257
256
  assert_equal("characters: \n", result[i+=1])
258
- assert_equal("error: Fatal error: Premature end of data in tag Results line 1 at :2.", result[i+=1])
257
+ assert_equal("error: Fatal error: EndTag: '</' not found at :2.", result[i+=1])
259
258
  assert_equal("end_document", result[i+=1])
260
259
 
261
- assert_not_nil(error)
262
- assert_kind_of(XML::Error, error)
263
- assert_equal("Fatal error: Premature end of data in tag Results line 1 at :2.", error.message)
264
- assert_equal(XML::Error::PARSER, error.domain)
265
- assert_equal(XML::Error::TAG_NOT_FINISHED, error.code)
266
- assert_equal(XML::Error::FATAL, error.level)
260
+ refute_nil(error)
261
+ assert_kind_of(LibXML::XML::Error, error)
262
+ assert_equal("Fatal error: EndTag: '</' not found at :2.", error.message)
263
+ assert_equal(LibXML::XML::Error::PARSER, error.domain)
264
+ assert_equal(LibXML::XML::Error::LTSLASH_REQUIRED, error.code)
265
+ assert_equal(LibXML::XML::Error::FATAL, error.level)
267
266
  assert_nil(error.file)
268
267
  assert_equal(2, error.line)
269
- assert_equal('Results', error.str1)
268
+ assert_nil(error.str1)
270
269
  assert_nil(error.str2)
271
270
  assert_nil(error.str3)
272
- assert_equal(1, error.int1)
271
+ assert_equal(0, error.int1)
273
272
  assert_equal(1, error.int2)
274
273
  assert_nil(error.node)
275
274
  end
@@ -306,15 +305,15 @@ EOS
306
305
  </Products>
307
306
  EOS
308
307
 
309
- parser = XML::SaxParser.string(xml)
308
+ parser = LibXML::XML::SaxParser.string(xml)
310
309
  parser.callbacks = TestCaseCallbacks.new
311
310
 
312
- error = assert_raise(XML::Error) do
311
+ error = assert_raises(LibXML::XML::Error) do
313
312
  parser.parse
314
313
  end
315
314
  assert_equal("Fatal error: xmlParseEntityRef: no name at :5.", error.to_s)
316
315
 
317
316
  # Check callbacks
318
- result = parser.callbacks.result
317
+ parser.callbacks.result
319
318
  end
320
319
  end
@@ -1,12 +1,11 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class TestSchema < Test::Unit::TestCase
5
+ class TestSchema < Minitest::Test
7
6
  def setup
8
7
  file = File.join(File.dirname(__FILE__), 'model/shiporder.xml')
9
- @doc = XML::Document.file(file)
8
+ @doc = LibXML::XML::Document.file(file)
10
9
  end
11
10
 
12
11
  def teardown
@@ -14,17 +13,17 @@ class TestSchema < Test::Unit::TestCase
14
13
  end
15
14
 
16
15
  def schema
17
- document = XML::Document.file(File.join(File.dirname(__FILE__), 'model/shiporder.xsd'))
18
- XML::Schema.document(document)
16
+ document = LibXML::XML::Document.file(File.join(File.dirname(__FILE__), 'model/shiporder.xsd'))
17
+ LibXML::XML::Schema.document(document)
19
18
  end
20
19
 
21
20
  def check_error(error)
22
- assert_not_nil(error)
21
+ refute_nil(error)
23
22
  assert(error.message.match(/Error: Element 'invalid': This element is not expected. Expected is \( item \)/))
24
- assert_kind_of(XML::Error, error)
25
- assert_equal(XML::Error::SCHEMASV, error.domain)
26
- assert_equal(XML::Error::SCHEMAV_ELEMENT_CONTENT, error.code)
27
- assert_equal(XML::Error::ERROR, error.level)
23
+ assert_kind_of(LibXML::XML::Error, error)
24
+ assert_equal(LibXML::XML::Error::SCHEMASV, error.domain)
25
+ assert_equal(LibXML::XML::Error::SCHEMAV_ELEMENT_CONTENT, error.code)
26
+ assert_equal(LibXML::XML::Error::ERROR, error.level)
28
27
  assert(error.file.match(/shiporder.xml/)) if error.file
29
28
  assert_nil(error.str1)
30
29
  assert_nil(error.str2)
@@ -34,7 +33,7 @@ class TestSchema < Test::Unit::TestCase
34
33
  end
35
34
 
36
35
  def test_load_from_doc
37
- assert_instance_of(XML::Schema, schema)
36
+ assert_instance_of(LibXML::XML::Schema, schema)
38
37
  end
39
38
 
40
39
  def test_doc_valid
@@ -42,21 +41,21 @@ class TestSchema < Test::Unit::TestCase
42
41
  end
43
42
 
44
43
  def test_doc_invalid
45
- new_node = XML::Node.new('invalid', 'this will mess up validation')
44
+ new_node = LibXML::XML::Node.new('invalid', 'this will mess up validation')
46
45
  @doc.root << new_node
47
46
 
48
- error = assert_raise(XML::Error) do
47
+ error = assert_raises(LibXML::XML::Error) do
49
48
  @doc.validate_schema(schema)
50
49
  end
51
50
 
52
51
  check_error(error)
53
52
  assert_nil(error.line)
54
- assert_not_nil(error.node)
53
+ refute_nil(error.node)
55
54
  assert_equal('invalid', error.node.name)
56
55
  end
57
56
 
58
57
  def test_reader_valid
59
- reader = XML::Reader.string(@doc.to_s)
58
+ reader = LibXML::XML::Reader.string(@doc.to_s)
60
59
  assert(reader.schema_validate(schema))
61
60
 
62
61
  while reader.read
@@ -66,13 +65,13 @@ class TestSchema < Test::Unit::TestCase
66
65
  def test_reader_invalid
67
66
  # Set error handler
68
67
  errors = Array.new
69
- XML::Error.set_handler do |error|
68
+ LibXML::XML::Error.set_handler do |error|
70
69
  errors << error
71
70
  end
72
71
 
73
- new_node = XML::Node.new('invalid', 'this will mess up validation')
72
+ new_node = LibXML::XML::Node.new('invalid', 'this will mess up validation')
74
73
  @doc.root << new_node
75
- reader = XML::Reader.string(@doc.to_s)
74
+ reader = LibXML::XML::Reader.string(@doc.to_s)
76
75
 
77
76
  # Set a schema
78
77
  assert(reader.schema_validate(schema))
@@ -86,35 +85,45 @@ class TestSchema < Test::Unit::TestCase
86
85
  check_error(error)
87
86
  assert_equal(21, error.line)
88
87
  ensure
89
- XML::Error.set_handler(&LibXML::XML::Error::VERBOSE_HANDLER)
88
+ LibXML::XML::Error.set_handler(&LibXML::XML::Error::VERBOSE_HANDLER)
90
89
  end
91
90
 
92
91
 
93
92
  # Schema meta-data tests
94
-
95
93
  def test_elements
96
94
  assert_instance_of(Hash, schema.elements)
97
95
  assert_equal(1, schema.elements.length)
98
- assert_instance_of(XML::Schema::Element, schema.elements['shiporder'])
96
+ assert_instance_of(LibXML::XML::Schema::Element, schema.elements['shiporder'])
99
97
  end
100
98
 
101
99
  def test_types
102
100
  assert_instance_of(Hash, schema.types)
103
101
  assert_equal(1, schema.types.length)
104
- assert_instance_of(XML::Schema::Type, schema.types['shiporder'])
102
+ assert_instance_of(LibXML::XML::Schema::Type, schema.types['shiporder'])
103
+ end
104
+
105
+ def test_imported_types
106
+ assert_instance_of(Hash, schema.imported_types)
107
+ assert_equal(1, schema.imported_types.length)
108
+ assert_instance_of(LibXML::XML::Schema::Type, schema.types['shiporder'])
109
+ end
110
+
111
+ def test_namespaces
112
+ assert_instance_of(Array, schema.namespaces)
113
+ assert_equal(1, schema.namespaces.length)
105
114
  end
106
115
 
107
116
  def test_schema_type
108
117
  type = schema.types['shiporder']
109
118
 
110
119
  assert_equal('shiporder', type.name)
111
- assert_equal(nil, type.namespace)
120
+ assert_nil(type.namespace)
112
121
  assert_equal("Shiporder type documentation", type.annotation)
113
- assert_instance_of(XML::Node, type.node)
114
- assert_equal(XML::Schema::Types::XML_SCHEMA_TYPE_COMPLEX, type.kind)
115
- assert_instance_of(XML::Schema::Type, type.base)
122
+ assert_instance_of(LibXML::XML::Node, type.node)
123
+ assert_equal(LibXML::XML::Schema::Types::XML_SCHEMA_TYPE_COMPLEX, type.kind)
124
+ assert_instance_of(LibXML::XML::Schema::Type, type.base)
116
125
  assert_equal("anyType", type.base.name)
117
- assert_equal(XML::Schema::Types::XML_SCHEMA_TYPE_BASIC, type.base.kind)
126
+ assert_equal(LibXML::XML::Schema::Types::XML_SCHEMA_TYPE_BASIC, type.base.kind)
118
127
 
119
128
  assert_instance_of(Hash, type.elements)
120
129
  assert_equal(3, type.elements.length)
@@ -124,17 +133,14 @@ class TestSchema < Test::Unit::TestCase
124
133
  element = schema.types['shiporder'].elements['orderperson']
125
134
 
126
135
  assert_equal('orderperson', element.name)
127
- assert_equal(nil, element.namespace)
136
+ assert_nil(element.namespace)
128
137
  assert_equal("orderperson element documentation", element.annotation)
129
- assert_equal(1, element.min_occurs)
130
- assert_equal(1, element.max_occurs)
131
-
132
138
 
133
139
  element = schema.types['shiporder'].elements['item']
134
- assert_equal(Float::INFINITY, element.max_occurs)
140
+ assert_equal('item', element.name)
135
141
 
136
142
  element = schema.types['shiporder'].elements['item'].type.elements['note']
137
- assert_equal(0, element.min_occurs)
143
+ assert_equal('note', element.name)
138
144
  assert_equal('string', element.type.name)
139
145
  end
140
146
 
@@ -143,14 +149,14 @@ class TestSchema < Test::Unit::TestCase
143
149
 
144
150
  assert_instance_of(Array, type.attributes)
145
151
  assert_equal(2, type.attributes.length)
146
- assert_instance_of(XML::Schema::Attribute, type.attributes.first)
152
+ assert_instance_of(LibXML::XML::Schema::Attribute, type.attributes.first)
147
153
  end
148
154
 
149
155
  def test_schema_attribute
150
156
  attribute = schema.types['shiporder'].attributes.first
151
157
 
152
158
  assert_equal("orderid", attribute.name)
153
- assert_equal(nil, attribute.namespace)
159
+ assert_nil(attribute.namespace)
154
160
  assert_equal(1, attribute.occurs)
155
161
  assert_equal('string', attribute.type.name)
156
162
 
@@ -159,4 +165,4 @@ class TestSchema < Test::Unit::TestCase
159
165
  assert_equal('1', attribute.default)
160
166
  assert_equal('integer', attribute.type.name)
161
167
  end
162
- end
168
+ end
@@ -5,46 +5,44 @@
5
5
  dir = File.dirname(__FILE__)
6
6
  Dir.chdir(dir)
7
7
 
8
- require './tc_attr'
9
- require './tc_attr_decl'
10
- require './tc_attributes'
11
- require './tc_canonicalize'
12
- require './tc_document'
13
- require './tc_document_write'
14
- require './tc_dtd'
15
- require './tc_error'
16
- require './tc_html_parser'
17
- require './tc_html_parser_context'
18
- require './tc_namespace'
19
- require './tc_namespaces'
20
- require './tc_node'
21
- require './tc_node_cdata'
22
- require './tc_node_comment'
23
- require './tc_node_copy'
24
- require './tc_node_edit'
25
- require './tc_node_pi'
26
- require './tc_node_text'
27
- require './tc_node_write'
28
- require './tc_node_xlink'
29
- require './tc_parser'
30
- require './tc_parser_context'
31
- require './tc_reader'
32
- require './tc_relaxng'
33
- require './tc_sax_parser'
34
- require './tc_schema'
35
- require './tc_traversal'
36
- require './tc_writer'
37
- require './tc_xinclude'
38
- require './tc_xpath'
39
- require './tc_xpath_context'
40
- require './tc_xpath_expression'
41
- require './tc_xpointer'
8
+ require './test_attr'
9
+ require './test_attr_decl'
10
+ require './test_attributes'
11
+ require './test_canonicalize'
12
+ require './test_document'
13
+ require './test_document_write'
14
+ require './test_dtd'
15
+ require './test_error'
16
+ require './test_html_parser'
17
+ require './test_html_parser_context'
18
+ require './test_namespace'
19
+ require './test_namespaces'
20
+ require './test_node'
21
+ require './test_node_cdata'
22
+ require './test_node_comment'
23
+ require './test_node_copy'
24
+ require './test_node_edit'
25
+ require './test_node_pi'
26
+ require './test_node_text'
27
+ require './test_node_write'
28
+ require './test_node_xlink'
29
+ require './test_parser'
30
+ require './test_parser_context'
31
+ require './test_reader'
32
+ require './test_relaxng'
33
+ require './test_sax_parser'
34
+ require './test_schema'
35
+ require './test_traversal'
36
+ require './test_writer'
37
+ require './test_xinclude'
38
+ require './test_xpath'
39
+ require './test_xpath_context'
40
+ require './test_xpath_expression'
41
+ require './test_xpointer'
42
42
 
43
+ require './test_encoding'
44
+ require './test_encoding_sax'
43
45
 
44
- if defined?(Encoding)
45
- require './tc_encoding'
46
- require './tc_encoding_sax'
47
- end
48
46
  # Compatibility
49
- require './tc_properties'
50
- require './tc_deprecated_require'
47
+ require './test_properties'
48
+ require './test_deprecated_require'