libxml-ruby 2.8.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
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,13 +1,12 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
3
+ require_relative './test_helper'
4
4
 
5
- require 'test/unit'
6
5
 
7
- class TestNamespaces < Test::Unit::TestCase
6
+ class TestNamespaces < Minitest::Test
8
7
  def setup
9
8
  file = File.join(File.dirname(__FILE__), 'model/soap.xml')
10
- @doc = XML::Document.file(file)
9
+ @doc = LibXML::XML::Document.file(file)
11
10
  end
12
11
 
13
12
  def teardown
@@ -29,62 +28,62 @@ class TestNamespaces < Test::Unit::TestCase
29
28
  end
30
29
 
31
30
  def test_set_namespace_node
32
- node = XML::Node.new('Envelope')
31
+ node = LibXML::XML::Node.new('Envelope')
33
32
  assert_equal('<Envelope/>', node.to_s)
34
33
 
35
- ns = XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
34
+ ns = LibXML::XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
36
35
  assert_equal("<Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
37
36
  assert_nil(node.namespaces.namespace)
38
37
 
39
38
  # Now put the node in the soap namespace
40
39
  node.namespaces.namespace = ns
41
- assert_not_nil(node.namespaces.namespace)
40
+ refute_nil(node.namespaces.namespace)
42
41
  assert_equal("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
43
42
  end
44
43
 
45
44
  def test_set_namespace_attribute
46
45
  # Create node
47
- node = XML::Node.new('Envelope')
46
+ node = LibXML::XML::Node.new('Envelope')
48
47
  assert_equal('<Envelope/>', node.to_s)
49
48
 
50
49
  # Create attribute
51
- attr = XML::Attr.new(node, "encodingStyle", "http://www.w3.org/2001/12/soap-encoding")
50
+ attr = LibXML::XML::Attr.new(node, "encodingStyle", "http://www.w3.org/2001/12/soap-encoding")
52
51
  assert_equal('<Envelope encodingStyle="http://www.w3.org/2001/12/soap-encoding"/>',
53
52
  node.to_s)
54
53
 
55
54
  # Create namespace attribute
56
- ns = XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
55
+ ns = LibXML::XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
57
56
  assert_equal('<Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" encodingStyle="http://www.w3.org/2001/12/soap-encoding"/>',
58
57
  node.to_s)
59
58
  assert_nil(node.namespaces.namespace)
60
59
 
61
60
  # Now put the node in the soap namespace
62
61
  node.namespaces.namespace = ns
63
- assert_not_nil(node.namespaces.namespace)
62
+ refute_nil(node.namespaces.namespace)
64
63
  assert_equal('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" encodingStyle="http://www.w3.org/2001/12/soap-encoding"/>',
65
64
  node.to_s)
66
65
 
67
66
  # Now put the attribute in the soap namespace
68
67
  attr.namespaces.namespace = ns
69
- assert_not_nil(node.namespaces.namespace)
68
+ refute_nil(node.namespaces.namespace)
70
69
  assert_equal('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"/>',
71
70
  node.to_s)
72
71
  end
73
72
 
74
73
  def test_define_namespace
75
- node = XML::Node.new('Envelope')
74
+ node = LibXML::XML::Node.new('Envelope')
76
75
  assert_equal('<Envelope/>', node.to_s)
77
76
 
78
- XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
77
+ LibXML::XML::Namespace.new(node, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')
79
78
  assert_equal("<Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
80
79
  assert_nil(node.namespaces.namespace)
81
80
  end
82
81
 
83
82
  def test_define_default_namespace
84
- node = XML::Node.new('Envelope')
83
+ node = LibXML::XML::Node.new('Envelope')
85
84
  assert_equal('<Envelope/>', node.to_s)
86
85
 
87
- XML::Namespace.new(node, nil, 'http://schemas.xmlsoap.org/soap/envelope/')
86
+ LibXML::XML::Namespace.new(node, nil, 'http://schemas.xmlsoap.org/soap/envelope/')
88
87
  assert_equal("<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\"/>", node.to_s)
89
88
  # This seems wrong, but appears to be the way libxml works
90
89
  assert_nil(node.namespaces.namespace)
@@ -98,56 +97,47 @@ class TestNamespaces < Test::Unit::TestCase
98
97
  assert_equal(5, namespaces.length)
99
98
 
100
99
  namespace = namespaces[0]
101
- assert_instance_of(XML::Namespace, namespace)
102
- assert_equal(nil, namespace.prefix)
100
+ assert_instance_of(LibXML::XML::Namespace, namespace)
101
+ assert_nil(namespace.prefix)
103
102
  assert_equal('http://services.somewhere.com', namespace.href)
104
103
 
105
104
  namespace = namespaces[1]
106
- assert_instance_of(XML::Namespace, namespace)
105
+ assert_instance_of(LibXML::XML::Namespace, namespace)
107
106
  assert_equal('ns1', namespace.prefix)
108
107
  assert_equal('http://domain.somewhere.com', namespace.href)
109
108
 
110
109
  namespace = namespaces[2]
111
- assert_instance_of(XML::Namespace, namespace)
110
+ assert_instance_of(LibXML::XML::Namespace, namespace)
112
111
  assert_equal('soap', namespace.prefix)
113
112
  assert_equal('http://schemas.xmlsoap.org/soap/envelope/', namespace.href)
114
113
 
115
114
  namespace = namespaces[3]
116
- assert_instance_of(XML::Namespace, namespace)
115
+ assert_instance_of(LibXML::XML::Namespace, namespace)
117
116
  assert_equal('xsd', namespace.prefix)
118
117
  assert_equal('http://www.w3.org/2001/XMLSchema', namespace.href)
119
118
 
120
119
  namespace = namespaces[4]
121
- assert_instance_of(XML::Namespace, namespace)
120
+ assert_instance_of(LibXML::XML::Namespace, namespace)
122
121
  assert_equal('xsi', namespace.prefix)
123
122
  assert_equal('http://www.w3.org/2001/XMLSchema-instance', namespace.href)
124
123
  end
125
124
 
126
- def test_namespaces
127
- node = @doc.find_first('//ns1:IdAndName',
128
- :ns1 => 'http://domain.somewhere.com')
129
-
130
- node.namespaces.each do |namespace|
131
- assert_instance_of(XML::Namespace, namespace)
132
- end
133
- end
134
-
135
125
  def test_namespace_definitions
136
126
  ns_defs = @doc.root.namespaces.definitions
137
127
  assert_equal(3, ns_defs.size)
138
128
 
139
129
  namespace = ns_defs[0]
140
- assert_instance_of(XML::Namespace, namespace)
130
+ assert_instance_of(LibXML::XML::Namespace, namespace)
141
131
  assert_equal('soap', namespace.prefix)
142
132
  assert_equal('http://schemas.xmlsoap.org/soap/envelope/', namespace.href)
143
133
 
144
134
  namespace = ns_defs[1]
145
- assert_instance_of(XML::Namespace, namespace)
135
+ assert_instance_of(LibXML::XML::Namespace, namespace)
146
136
  assert_equal('xsd', namespace.prefix)
147
137
  assert_equal('http://www.w3.org/2001/XMLSchema', namespace.href)
148
138
 
149
139
  namespace = ns_defs[2]
150
- assert_instance_of(XML::Namespace, namespace)
140
+ assert_instance_of(LibXML::XML::Namespace, namespace)
151
141
  assert_equal('xsi', namespace.prefix)
152
142
  assert_equal('http://www.w3.org/2001/XMLSchema-instance', namespace.href)
153
143
 
@@ -157,15 +147,15 @@ class TestNamespaces < Test::Unit::TestCase
157
147
  assert_equal(1, ns_defs.size)
158
148
 
159
149
  namespace = ns_defs[0]
160
- assert_instance_of(XML::Namespace, namespace)
161
- assert_equal(nil, namespace.prefix)
150
+ assert_instance_of(LibXML::XML::Namespace, namespace)
151
+ assert_nil(namespace.prefix)
162
152
  assert_equal('http://services.somewhere.com', namespace.href)
163
153
  end
164
154
 
165
155
  def test_find_by_prefix
166
156
  namespace = @doc.root.namespaces.find_by_prefix('soap')
167
157
 
168
- assert_instance_of(XML::Namespace, namespace)
158
+ assert_instance_of(LibXML::XML::Namespace, namespace)
169
159
  assert_equal('soap', namespace.prefix)
170
160
  assert_equal('http://schemas.xmlsoap.org/soap/envelope/', namespace.href)
171
161
  end
@@ -178,8 +168,8 @@ class TestNamespaces < Test::Unit::TestCase
178
168
  :ns1 => 'http://services.somewhere.com')
179
169
  namespace = node.namespaces.find_by_prefix(nil)
180
170
 
181
- assert_instance_of(XML::Namespace, namespace)
182
- assert_equal(nil, namespace.prefix)
171
+ assert_instance_of(LibXML::XML::Namespace, namespace)
172
+ assert_nil(namespace.prefix)
183
173
  assert_equal('http://services.somewhere.com', namespace.href)
184
174
  end
185
175
 
@@ -189,22 +179,22 @@ class TestNamespaces < Test::Unit::TestCase
189
179
 
190
180
  namespace = node.namespaces.find_by_href('http://schemas.xmlsoap.org/soap/envelope/')
191
181
 
192
- assert_instance_of(XML::Namespace, namespace)
182
+ assert_instance_of(LibXML::XML::Namespace, namespace)
193
183
  assert_equal('soap', namespace.prefix)
194
184
  assert_equal('http://schemas.xmlsoap.org/soap/envelope/', namespace.href)
195
185
  end
196
186
 
197
187
  def test_default_namespace
198
- doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
188
+ doc = LibXML::XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
199
189
  ns = doc.root.namespaces.default
200
190
  assert_equal(ns.href, 'http://schemas.xmlsoap.org/soap/envelope/')
201
191
  end
202
192
 
203
193
  def test_default_prefix
204
- doc = XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
194
+ doc = LibXML::XML::Document.string('<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"/>')
205
195
  doc.root.namespaces.default_prefix = 'soap'
206
196
 
207
197
  node = doc.root.find_first('/soap:Envelope')
208
- assert_not_nil(node)
198
+ refute_nil(node)
209
199
  end
210
- end
200
+ end
@@ -1,20 +1,19 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class TestNode < Test::Unit::TestCase
5
+ class TestNode < Minitest::Test
7
6
  def setup
8
7
  @file_name = "model/bands.utf-8.xml"
9
8
 
10
9
  # Strip spaces to make testing easier
11
- XML.default_keep_blanks = false
10
+ LibXML::XML.default_keep_blanks = false
12
11
  file = File.join(File.dirname(__FILE__), @file_name)
13
- @doc = XML::Document.file(file)
12
+ @doc = LibXML::XML::Document.file(file)
14
13
  end
15
14
 
16
15
  def teardown
17
- XML.default_keep_blanks = true
16
+ LibXML::XML.default_keep_blanks = true
18
17
  @doc = nil
19
18
  end
20
19
 
@@ -24,55 +23,51 @@ class TestNode < Test::Unit::TestCase
24
23
  end
25
24
 
26
25
  def test_doc_class
27
- assert_instance_of(XML::Document, @doc)
26
+ assert_instance_of(LibXML::XML::Document, @doc)
28
27
  end
29
28
 
30
29
  def test_doc_node_type
31
- assert_equal XML::Node::DOCUMENT_NODE, @doc.node_type
30
+ assert_equal LibXML::XML::Node::DOCUMENT_NODE, @doc.node_type
32
31
  end
33
32
 
34
33
  def test_root_class
35
- assert_instance_of(XML::Node, @doc.root)
34
+ assert_instance_of(LibXML::XML::Node, @doc.root)
36
35
  end
37
36
 
38
37
  def test_root_node_type
39
- assert_equal XML::Node::ELEMENT_NODE, @doc.root.node_type
38
+ assert_equal LibXML::XML::Node::ELEMENT_NODE, @doc.root.node_type
40
39
  end
41
40
 
42
41
  def test_node_class
43
42
  for n in nodes
44
- assert_instance_of(XML::Node, n)
43
+ assert_instance_of(LibXML::XML::Node, n)
45
44
  end
46
45
  end
47
46
 
48
47
  def test_context
49
48
  node = @doc.root
50
49
  context = node.context
51
- assert_instance_of(XML::XPath::Context, context)
50
+ assert_instance_of(LibXML::XML::XPath::Context, context)
52
51
  end
53
52
 
54
53
  def test_find
55
- assert_instance_of(XML::XPath::Object, self.nodes)
54
+ assert_instance_of(LibXML::XML::XPath::Object, self.nodes)
56
55
  end
57
56
 
58
57
  def test_node_child_get
59
58
  assert_instance_of(TrueClass, @doc.root.child?)
60
- assert_instance_of(XML::Node, @doc.root.child)
59
+ assert_instance_of(LibXML::XML::Node, @doc.root.child)
61
60
 
62
- if defined?(Encoding)
63
- assert_equal(Encoding::UTF_8, @doc.root.child.name.encoding)
64
- assert_equal("m\u00F6tley_cr\u00FCe", @doc.root.child.name)
65
- else
66
- assert_equal("m\303\266tley_cr\303\274e", @doc.root.child.name)
67
- end
61
+ assert_equal(Encoding::UTF_8, @doc.root.child.name.encoding)
62
+ assert_equal("m\u00F6tley_cr\u00FCe", @doc.root.child.name)
68
63
  end
69
64
 
70
65
  def test_node_doc
71
66
  for n in nodes
72
- assert_instance_of(XML::Document, n.doc) if n.document?
67
+ assert_instance_of(LibXML::XML::Document, n.doc) if n.document?
73
68
  end
74
69
  end
75
-
70
+
76
71
  def test_name
77
72
  node = @doc.root.children.last
78
73
  assert_equal("iron_maiden", node.name)
@@ -81,7 +76,7 @@ class TestNode < Test::Unit::TestCase
81
76
  def test_node_find
82
77
  nodes = @doc.root.find('./fixnum')
83
78
  for node in nodes
84
- assert_instance_of(XML::Node, node)
79
+ assert_instance_of(LibXML::XML::Node, node)
85
80
  end
86
81
  end
87
82
 
@@ -89,19 +84,35 @@ class TestNode < Test::Unit::TestCase
89
84
  node_a = @doc.find_first('*[@country]')
90
85
  node_b = @doc.root.child
91
86
 
87
+ # On the ruby side these are different objects
88
+ refute(node_a.equal?(node_b))
89
+
90
+ # But they are the same underlying libxml node so specify they are equal
92
91
  assert(node_a == node_b)
93
92
  assert(node_a.eql?(node_b))
94
- assert(node_a.equal?(node_b))
95
93
 
96
94
  file = File.join(File.dirname(__FILE__), @file_name)
97
- doc2 = XML::Document.file(file)
95
+ doc2 = LibXML::XML::Document.file(file)
98
96
 
99
97
  node_a2 = doc2.find_first('*[@country]')
100
98
 
99
+ refute(node_a == node_a2)
100
+ refute(node_a.eql?(node_a2))
101
101
  assert_equal(node_a.to_s, node_a2.to_s)
102
- assert_equal(node_a, node_a2)
103
- assert(node_a.eql?(node_a2))
104
- assert(!node_a.equal?(node_a2))
102
+ refute(node_a.equal?(node_a2))
103
+ end
104
+
105
+ def test_equality_2
106
+ parent = LibXML::XML::Node.new('parent')
107
+ child = LibXML::XML::Node.new('child')
108
+ parent << child
109
+
110
+ node_a = child.parent
111
+ node_b = child.parent
112
+ # In this case the nodes are equal - the parent being the root
113
+ assert(node_a.equal?(node_b))
114
+ assert(node_a == node_b)
115
+ assert(node_a.eql?(node_b))
105
116
  end
106
117
 
107
118
  def test_equality_nil
@@ -112,7 +123,7 @@ class TestNode < Test::Unit::TestCase
112
123
  def test_equality_wrong_type
113
124
  node = @doc.root
114
125
 
115
- assert_raise(TypeError) do
126
+ assert_raises(TypeError) do
116
127
  assert(node != 'abc')
117
128
  end
118
129
  end
@@ -124,20 +135,20 @@ class TestNode < Test::Unit::TestCase
124
135
  end
125
136
 
126
137
  def test_base
127
- doc = XML::Parser.string('<person />').parse
138
+ doc = LibXML::XML::Parser.string('<person />').parse
128
139
  assert_nil(doc.root.base_uri)
129
140
  end
130
141
 
131
- # We use the same facility that libXSLT does here to disable output escaping.
132
- # This lets you specify that the node's content should be rendered unaltered
133
- # whenever it is being output. This is useful for things like <script> and
134
- # <style> nodes in HTML documents if you don't want to be forced to wrap them
135
- # in CDATA nodes. Or if you are sanitizing existing HTML documents and want
136
- # to preserve the content of any of the text nodes.
137
- #
138
- def test_output_escaping
142
+ # We use the same facility that libXSLT does here to disable output escaping.
143
+ # This lets you specify that the node's content should be rendered unaltered
144
+ # whenever it is being output. This is useful for things like <script> and
145
+ # <style> nodes in HTML documents if you don't want to be forced to wrap them
146
+ # in CDATA nodes. Or if you are sanitizing existing HTML documents and want
147
+ # to preserve the content of any of the text nodes.
148
+ #
149
+ def test_output_escaping
139
150
  text = '<bad-script>if (a &lt; b || b &gt; c) { return "text"; }<stop/>return "&gt;&gt;&gt;snip&lt;&lt;&lt;";</bad-script>'
140
- node = XML::Parser.string(text).parse.root
151
+ node = LibXML::XML::Parser.string(text).parse.root
141
152
  assert_equal text, node.to_s
142
153
 
143
154
  text_noenc = '<bad-script>if (a < b || b > c) { return "text"; }<stop/>return ">>>snip<<<";</bad-script>'
@@ -154,10 +165,10 @@ class TestNode < Test::Unit::TestCase
154
165
  assert_equal text, node.to_s
155
166
  end
156
167
 
157
- # Just a sanity check for output escaping.
158
- def test_output_escaping_sanity
168
+ # Just a sanity check for output escaping.
169
+ def test_output_escaping_sanity
159
170
  text = '<bad-script>if (a &lt; b || b &gt; c) { return "text"; }<stop/>return "&gt;&gt;&gt;snip&lt;&lt;&lt;";</bad-script>'
160
- node = XML::Parser.string(text).parse.root
171
+ node = LibXML::XML::Parser.string(text).parse.root
161
172
  affected = node.find('//text()')
162
173
 
163
174
  check_escaping = lambda do |flag|
@@ -190,25 +201,35 @@ class TestNode < Test::Unit::TestCase
190
201
  node = @doc.root
191
202
 
192
203
  node.space_preserve = false
193
- assert_equal XML::Node::SPACE_DEFAULT, node.space_preserve
204
+ assert_equal LibXML::XML::Node::SPACE_DEFAULT, node.space_preserve
194
205
 
195
206
  node.space_preserve = true
196
- assert_equal XML::Node::SPACE_PRESERVE, node.space_preserve
207
+ assert_equal LibXML::XML::Node::SPACE_PRESERVE, node.space_preserve
197
208
  end
198
209
 
199
210
  def test_empty
200
211
  text = '<name> </name>'
201
- doc = XML::Parser.string(text).parse
212
+ doc = LibXML::XML::Parser.string(text).parse
202
213
 
203
214
  node = doc.root
204
215
  assert(!node.empty?)
205
-
216
+
206
217
  text_node = node.first
207
218
  assert(text_node.empty?)
208
219
  end
209
220
 
221
+ def test_save_no_empty_tags
222
+ node = LibXML::XML::Node.new('test')
223
+ assert_equal '<test/>', node.to_s
224
+
225
+ LibXML::XML.default_save_no_empty_tags = true
226
+ assert_equal '<test></test>', node.to_s
227
+
228
+ LibXML::XML.default_save_no_empty_tags = false
229
+ end
230
+
210
231
  def test_set_content
211
- node = XML::Node.new('test')
232
+ node = LibXML::XML::Node.new('test')
212
233
  node.content = "unescaped & string"
213
234
  assert_equal("unescaped & string", node.content)
214
235
  assert_equal("<test>unescaped &amp; string</test>", node.to_s)
@@ -1,50 +1,49 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class CDataCommentTest < Test::Unit::TestCase
5
+ class CDataCommentTest < Minitest::Test
7
6
  def setup
8
- xp = XML::Parser.string('<root></root>')
7
+ xp = LibXML::XML::Parser.string('<root></root>')
9
8
  @doc = xp.parse
10
- assert_instance_of(XML::Document, @doc)
9
+ assert_instance_of(LibXML::XML::Document, @doc)
11
10
  @root = @doc.root
12
11
  end
13
12
 
14
13
  def test_node_type
15
- cnode = XML::Node.new_cdata('test cdata')
16
- assert_equal(XML::Node::CDATA_SECTION_NODE, cnode.node_type)
14
+ cnode = LibXML::XML::Node.new_cdata('test cdata')
15
+ assert_equal(LibXML::XML::Node::CDATA_SECTION_NODE, cnode.node_type)
17
16
  end
18
17
 
19
18
  def test_add_cdata
20
- @root << XML::Node.new_cdata('mycdata')
19
+ @root << LibXML::XML::Node.new_cdata('mycdata')
21
20
  assert_equal '<root><![CDATA[mycdata]]></root>',
22
21
  @root.to_s.gsub(/\n\s*/,'')
23
22
  end
24
23
 
25
24
  def test_add_cdata_2
26
- @root << XML::Node.new_cdata('mycdata')
25
+ @root << LibXML::XML::Node.new_cdata('mycdata')
27
26
  assert_equal 'cdata',
28
27
  @root.child.node_type_name
29
28
  end
30
29
 
31
30
  def test_add_cdata_3
32
- @root << el = XML::Node.new_cdata('mycdata')
31
+ @root << el = LibXML::XML::Node.new_cdata('mycdata')
33
32
  el << "_this_is_added"
34
33
  assert_equal '<root><![CDATA[mycdata_this_is_added]]></root>',
35
34
  @root.to_s.gsub(/\n\s*/,'')
36
35
  end
37
36
 
38
37
  def test_attributes
39
- cnode = XML::Node.new_cdata('test cdata')
38
+ cnode = LibXML::XML::Node.new_cdata('test cdata')
40
39
  assert_equal(0, cnode.attributes.length)
41
40
  end
42
41
 
43
42
  def test_set_cdata_attribute
44
- cnode = XML::Node.new_cdata('test cdata')
43
+ cnode = LibXML::XML::Node.new_cdata('test cdata')
45
44
 
46
45
  # Can't create attributes on non-element nodes
47
- assert_raise(ArgumentError) do
46
+ assert_raises(ArgumentError) do
48
47
  cnode['attr'] = '123'
49
48
  end
50
49
  end