libxml-ruby 2.8.0 → 3.2.3

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 (205) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +859 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +98 -78
  7. data/ext/libxml/extconf.rb +61 -116
  8. data/ext/libxml/libxml.c +80 -76
  9. data/ext/libxml/ruby_libxml.h +67 -75
  10. data/ext/libxml/ruby_xml.c +937 -893
  11. data/ext/libxml/ruby_xml.h +10 -10
  12. data/ext/libxml/ruby_xml_attr.c +333 -333
  13. data/ext/libxml/ruby_xml_attr.h +12 -12
  14. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  15. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  16. data/ext/libxml/ruby_xml_attributes.c +275 -275
  17. data/ext/libxml/ruby_xml_attributes.h +15 -15
  18. data/ext/libxml/ruby_xml_cbg.c +85 -85
  19. data/ext/libxml/ruby_xml_document.c +1123 -1147
  20. data/ext/libxml/ruby_xml_document.h +11 -11
  21. data/ext/libxml/ruby_xml_dtd.c +248 -268
  22. data/ext/libxml/ruby_xml_dtd.h +9 -9
  23. data/ext/libxml/ruby_xml_encoding.c +250 -260
  24. data/ext/libxml/ruby_xml_encoding.h +16 -19
  25. data/ext/libxml/ruby_xml_error.c +996 -996
  26. data/ext/libxml/ruby_xml_error.h +12 -12
  27. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  28. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  29. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  30. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  31. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  32. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  33. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  34. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  35. data/ext/libxml/ruby_xml_io.c +47 -50
  36. data/ext/libxml/ruby_xml_io.h +10 -10
  37. data/ext/libxml/ruby_xml_namespace.c +154 -153
  38. data/ext/libxml/ruby_xml_namespace.h +10 -10
  39. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  40. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  41. data/ext/libxml/ruby_xml_node.c +1406 -1452
  42. data/ext/libxml/ruby_xml_node.h +13 -11
  43. data/ext/libxml/ruby_xml_parser.c +91 -94
  44. data/ext/libxml/ruby_xml_parser.h +12 -12
  45. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  46. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  47. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  48. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  49. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  50. data/ext/libxml/ruby_xml_reader.h +17 -17
  51. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  52. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  53. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  54. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  55. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  56. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  57. data/ext/libxml/ruby_xml_schema.c +350 -301
  58. data/ext/libxml/ruby_xml_schema.h +806 -809
  59. data/ext/libxml/ruby_xml_schema_attribute.c +61 -109
  60. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  61. data/ext/libxml/ruby_xml_schema_element.c +69 -94
  62. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  63. data/ext/libxml/ruby_xml_schema_facet.c +46 -52
  64. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  65. data/ext/libxml/ruby_xml_schema_type.c +214 -259
  66. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  67. data/ext/libxml/ruby_xml_version.h +9 -9
  68. data/ext/libxml/ruby_xml_writer.c +1133 -1137
  69. data/ext/libxml/ruby_xml_writer.h +10 -10
  70. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  71. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  72. data/ext/libxml/ruby_xml_xpath.c +194 -188
  73. data/ext/libxml/ruby_xml_xpath.h +13 -13
  74. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  75. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  76. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  77. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  78. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  79. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  80. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  81. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  82. data/ext/vc/libxml_ruby.sln +17 -15
  83. data/lib/libxml/node.rb +2 -78
  84. data/lib/libxml/parser.rb +0 -266
  85. data/lib/libxml/sax_parser.rb +0 -17
  86. data/lib/libxml/schema/attribute.rb +19 -19
  87. data/lib/libxml/schema/element.rb +19 -27
  88. data/lib/libxml/schema/type.rb +21 -29
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml-ruby.rb +30 -0
  91. data/lib/libxml.rb +3 -33
  92. data/libxml-ruby.gemspec +48 -44
  93. data/script/benchmark/depixelate +634 -634
  94. data/script/benchmark/hamlet.xml +9054 -9054
  95. data/script/benchmark/parsecount +170 -170
  96. data/script/benchmark/throughput +41 -41
  97. data/script/test +6 -6
  98. data/setup.rb +0 -1
  99. data/test/c14n/given/example-1.xml +14 -14
  100. data/test/c14n/given/example-2.xml +11 -11
  101. data/test/c14n/given/example-3.xml +18 -18
  102. data/test/c14n/given/example-4.xml +9 -9
  103. data/test/c14n/given/example-5.xml +12 -12
  104. data/test/c14n/given/example-6.xml +2 -2
  105. data/test/c14n/given/example-7.xml +11 -11
  106. data/test/c14n/given/example-8.xml +11 -11
  107. data/test/c14n/given/example-8.xpath +9 -9
  108. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  109. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  110. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  111. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  112. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  113. data/test/c14n/result/with-comments/example-1 +5 -5
  114. data/test/c14n/result/with-comments/example-2 +10 -10
  115. data/test/c14n/result/with-comments/example-3 +13 -13
  116. data/test/c14n/result/with-comments/example-4 +8 -8
  117. data/test/c14n/result/with-comments/example-5 +3 -3
  118. data/test/c14n/result/without-comments/example-1 +3 -3
  119. data/test/c14n/result/without-comments/example-2 +10 -10
  120. data/test/c14n/result/without-comments/example-3 +13 -13
  121. data/test/c14n/result/without-comments/example-4 +8 -8
  122. data/test/c14n/result/without-comments/example-5 +2 -2
  123. data/test/model/atom.xml +12 -12
  124. data/test/model/bands.iso-8859-1.xml +4 -4
  125. data/test/model/bands.utf-8.xml +4 -4
  126. data/test/model/bands.xml +4 -4
  127. data/test/model/books.xml +153 -153
  128. data/test/model/cwm_1_0.xml +11336 -0
  129. data/test/model/merge_bug_data.xml +58 -58
  130. data/test/model/ruby-lang.html +238 -238
  131. data/test/model/rubynet.xml +79 -79
  132. data/test/model/shiporder.rnc +28 -28
  133. data/test/model/shiporder.rng +86 -86
  134. data/test/model/shiporder.xml +22 -22
  135. data/test/model/shiporder.xsd +44 -40
  136. data/test/model/shiporder_bad.xsd +40 -0
  137. data/test/model/shiporder_import.xsd +45 -0
  138. data/test/model/soap.xml +27 -27
  139. data/test/model/xinclude.xml +4 -4
  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} +33 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +29 -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 +4 -9
  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} +42 -49
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +364 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +44 -38
  171. data/test/test_schema.rb +231 -0
  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 +263 -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 +122 -100
  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_schema.rb +0 -162
  204. data/test/tc_xml.rb +0 -226
  205. data/test/tc_xpath_expression.rb +0 -38
@@ -1,11 +1,10 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class TestNodeEdit < Test::Unit::TestCase
5
+ class TestNodeEdit < Minitest::Test
7
6
  def setup
8
- xp = XML::Parser.string('<test><num>one</num><num>two</num><num>three</num></test>')
7
+ xp = LibXML::XML::Parser.string('<test><num>one</num><num>two</num><num>three</num></test>')
9
8
  @doc = xp.parse
10
9
  end
11
10
 
@@ -26,37 +25,37 @@ class TestNodeEdit < Test::Unit::TestCase
26
25
  end
27
26
 
28
27
  def test_add_next_01
29
- first_node.next = XML::Node.new('num', 'one-and-a-half')
28
+ first_node.next = LibXML::XML::Node.new('num', 'one-and-a-half')
30
29
  assert_equal('<test><num>one</num><num>one-and-a-half</num><num>two</num><num>three</num></test>',
31
30
  @doc.root.to_s.gsub(/\n\s*/,''))
32
31
  end
33
32
 
34
33
  def test_add_next_02
35
- second_node.next = XML::Node.new('num', 'two-and-a-half')
34
+ second_node.next = LibXML::XML::Node.new('num', 'two-and-a-half')
36
35
  assert_equal('<test><num>one</num><num>two</num><num>two-and-a-half</num><num>three</num></test>',
37
36
  @doc.root.to_s.gsub(/\n\s*/,''))
38
37
  end
39
38
 
40
39
  def test_add_next_03
41
- third_node.next = XML::Node.new('num', 'four')
40
+ third_node.next = LibXML::XML::Node.new('num', 'four')
42
41
  assert_equal '<test><num>one</num><num>two</num><num>three</num><num>four</num></test>',
43
42
  @doc.root.to_s.gsub(/\n\s*/,'')
44
43
  end
45
44
 
46
45
  def test_add_prev_01
47
- first_node.prev = XML::Node.new('num', 'half')
46
+ first_node.prev = LibXML::XML::Node.new('num', 'half')
48
47
  assert_equal '<test><num>half</num><num>one</num><num>two</num><num>three</num></test>',
49
48
  @doc.root.to_s.gsub(/\n\s*/,'')
50
49
  end
51
50
 
52
51
  def test_add_prev_02
53
- second_node.prev = XML::Node.new('num', 'one-and-a-half')
52
+ second_node.prev = LibXML::XML::Node.new('num', 'one-and-a-half')
54
53
  assert_equal '<test><num>one</num><num>one-and-a-half</num><num>two</num><num>three</num></test>',
55
54
  @doc.root.to_s.gsub(/\n\s*/,'')
56
55
  end
57
56
 
58
57
  def test_add_prev_03
59
- third_node.prev = XML::Node.new('num', 'two-and-a-half')
58
+ third_node.prev = LibXML::XML::Node.new('num', 'two-and-a-half')
60
59
  assert_equal '<test><num>one</num><num>two</num><num>two-and-a-half</num><num>three</num></test>',
61
60
  @doc.root.to_s.gsub(/\n\s*/,'')
62
61
  end
@@ -67,28 +66,12 @@ class TestNodeEdit < Test::Unit::TestCase
67
66
  @doc.root.to_s.gsub(/\n\s*/,''))
68
67
  end
69
68
 
70
- def test_freed_node
71
- root = XML::Node.new("root")
72
-
73
- a = XML::Node.new("a")
74
- root << a
75
-
76
- a.parent.remove!
77
-
78
- # Node a has now been freed from under us
79
- error = assert_raise(RuntimeError) do
80
- a.to_s
81
- end
82
- assert_equal('This node has already been freed.', error.to_s)
83
- end
84
-
85
69
  def test_remove_node_gc
86
- xp = XML::Parser.string('<test><num>one</num><num>two</num><num>three</num></test>')
70
+ xp = LibXML::XML::Parser.string('<test><num>one</num><num>two</num><num>three</num></test>')
87
71
  doc = xp.parse
88
- node = doc.root.child.remove!
89
- node = nil
72
+ doc.root.child.remove!
90
73
  GC.start
91
- assert_not_nil(doc)
74
+ refute_nil(doc)
92
75
  end
93
76
 
94
77
  def test_remove_node_iteration
@@ -105,7 +88,7 @@ class TestNodeEdit < Test::Unit::TestCase
105
88
  def test_reuse_removed_node
106
89
  # Remove the node
107
90
  node = @doc.root.first.remove!
108
- assert_not_nil(node)
91
+ refute_nil(node)
109
92
 
110
93
  # Add it to the end of the document
111
94
  @doc.root.last.next = node
@@ -115,7 +98,7 @@ class TestNodeEdit < Test::Unit::TestCase
115
98
  end
116
99
 
117
100
  def test_append_existing_node
118
- doc = XML::Parser.string('<top>a<bottom>b<one>first</one><two>second</two>c</bottom>d</top>').parse
101
+ doc = LibXML::XML::Parser.string('<top>a<bottom>b<one>first</one><two>second</two>c</bottom>d</top>').parse
119
102
  node1 = doc.find_first('//two')
120
103
 
121
104
  doc.root << node1
@@ -124,18 +107,17 @@ class TestNodeEdit < Test::Unit::TestCase
124
107
  end
125
108
 
126
109
  def test_wrong_doc
127
- puts 333333
128
- doc1 = XML::Parser.string('<nums><one></one></nums>').parse
129
- doc2 = XML::Parser.string('<nums><two></two></nums>').parse
110
+ doc1 = LibXML::XML::Parser.string('<nums><one></one></nums>').parse
111
+ doc2 = LibXML::XML::Parser.string('<nums><two></two></nums>').parse
130
112
 
131
113
  node = doc1.root.child
132
114
 
133
- error = assert_raise(XML::Error) do
115
+ error = assert_raises(LibXML::XML::Error) do
134
116
  doc2.root << node
135
117
  end
136
118
 
137
119
  GC.start
138
- assert_equal(' Nodes belong to different documents. You must first import the node by calling XML::Document.import.',
120
+ assert_equal(' Nodes belong to different documents. You must first import the node by calling LibXML::XML::Document.import.',
139
121
  error.to_s)
140
122
  end
141
123
 
@@ -145,11 +127,12 @@ class TestNodeEdit < Test::Unit::TestCase
145
127
 
146
128
  # Read in 500 documents
147
129
  500.times do
148
- documents << XML::Parser.string(File.read(File.join(File.dirname(__FILE__), 'model', 'merge_bug_data.xml'))).parse
130
+ documents << LibXML::XML::Parser.string(File.read(File.join(File.dirname(__FILE__), 'model', 'merge_bug_data.xml'))).parse
149
131
  end
150
132
 
151
133
  master_doc = documents.shift
152
- documents.inject(master_doc) do |master_doc, child_doc|
134
+
135
+ documents.each do |child_doc|
153
136
  master_body = master_doc.find("//body").first
154
137
  child_body = child_doc.find("//body").first
155
138
 
@@ -158,12 +141,11 @@ class TestNodeEdit < Test::Unit::TestCase
158
141
  end
159
142
 
160
143
  master_body << child_element.copy(true)
161
- master_doc
162
144
  end
163
145
  end
164
146
 
165
147
  def test_append_chain
166
- node = XML::Node.new('foo') << XML::Node.new('bar') << "bars contents"
148
+ node = LibXML::XML::Node.new('foo') << LibXML::XML::Node.new('bar') << "bars contents"
167
149
  assert_equal('<foo><bar/>bars contents</foo>',
168
150
  node.to_s)
169
151
  end
@@ -173,4 +155,4 @@ class TestNodeEdit < Test::Unit::TestCase
173
155
  assert_equal("<test xml:base=\"http://www.rubynet.org/\">\n <num>one</num>\n <num>two</num>\n <num>three</num>\n</test>",
174
156
  @doc.root.to_s)
175
157
  end
176
- end
158
+ end
@@ -1,40 +1,37 @@
1
- # encoding: UTF-8
2
-
3
- require './test_helper'
4
-
5
- require 'test/unit'
6
-
7
- class NodeCommentTest < Test::Unit::TestCase
8
- def setup
9
- xp = XML::Parser.string('<root></root>')
10
- @doc = xp.parse
11
- assert_instance_of(XML::Document, @doc)
12
- @root = @doc.root
13
- end
14
-
15
- def test_libxml_node_add_pi_01
16
- @root << XML::Node.new_pi('mypi')
17
- assert_equal '<root><?mypi?></root>',
18
- @root.to_s.gsub(/\n\s*/,'')
19
- end
20
-
21
- def test_libxml_node_add_pi_02
22
- @root << XML::Node.new_pi('mypi')
23
- assert_equal 'pi',
24
- @root.child.node_type_name
25
- end
26
-
27
- def test_libxml_node_add_pi_03
28
- @root << el = XML::Node.new_pi('mypi')
29
- el << "_this_is_added"
30
- assert_equal '<root><?mypi _this_is_added?></root>',
31
- @root.to_s.gsub(/\n\s*/,'')
32
- end
33
-
34
- def test_libxml_node_add_pi_04
35
- @root << XML::Node.new_pi('mypi','mycontent')
36
- assert_equal '<root><?mypi mycontent?></root>',
37
- @root.to_s.gsub(/\n\s*/,'')
38
- end
39
-
40
- end
1
+ # encoding: UTF-8
2
+
3
+ require_relative './test_helper'
4
+
5
+ class NodePiTest < Minitest::Test
6
+ def setup
7
+ xp = LibXML::XML::Parser.string('<root></root>')
8
+ @doc = xp.parse
9
+ assert_instance_of(LibXML::XML::Document, @doc)
10
+ @root = @doc.root
11
+ end
12
+
13
+ def test_libxml_node_add_pi_01
14
+ @root << LibXML::XML::Node.new_pi('mypi')
15
+ assert_equal '<root><?mypi?></root>',
16
+ @root.to_s.gsub(/\n\s*/,'')
17
+ end
18
+
19
+ def test_libxml_node_add_pi_02
20
+ @root << LibXML::XML::Node.new_pi('mypi')
21
+ assert_equal 'pi',
22
+ @root.child.node_type_name
23
+ end
24
+
25
+ def test_libxml_node_add_pi_03
26
+ @root << el = LibXML::XML::Node.new_pi('mypi')
27
+ el << "_this_is_added"
28
+ assert_equal '<root><?mypi _this_is_added?></root>',
29
+ @root.to_s.gsub(/\n\s*/,'')
30
+ end
31
+
32
+ def test_libxml_node_add_pi_04
33
+ @root << LibXML::XML::Node.new_pi('mypi','mycontent')
34
+ assert_equal '<root><?mypi mycontent?></root>',
35
+ @root.to_s.gsub(/\n\s*/,'')
36
+ end
37
+ end
@@ -1,18 +1,17 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class TestTextNode < Test::Unit::TestCase
5
+ class TestTextNode < Minitest::Test
7
6
  def test_content
8
- node = XML::Node.new_text('testdata')
9
- assert_instance_of(XML::Node, node)
7
+ node = LibXML::XML::Node.new_text('testdata')
8
+ assert_instance_of(LibXML::XML::Node, node)
10
9
  assert_equal('testdata', node.content)
11
10
  end
12
11
 
13
12
  def test_invalid_content
14
- error = assert_raise(TypeError) do
15
- node = XML::Node.new_text(nil)
13
+ error = assert_raises(TypeError) do
14
+ LibXML::XML::Node.new_text(nil)
16
15
  end
17
16
  assert_equal('wrong argument type nil (expected String)', error.to_s)
18
17
  end
@@ -24,11 +23,11 @@ class TestTextNode < Test::Unit::TestCase
24
23
  # in CDATA nodes. Or if you are sanitizing existing HTML documents and want
25
24
  # to preserve the content of any of the text nodes.
26
25
  #
27
- def test_output_escaping
26
+ def test_output_escaping
28
27
  textnoenc = 'if (a < b || c > d) return "e";'
29
28
  text = "if (a &lt; b || c &gt; d) return \"e\";"
30
29
 
31
- node = XML::Node.new_text(textnoenc)
30
+ node = LibXML::XML::Node.new_text(textnoenc)
32
31
  assert node.output_escaping?
33
32
  assert_equal text, node.to_s
34
33
 
@@ -46,8 +45,8 @@ class TestTextNode < Test::Unit::TestCase
46
45
  end
47
46
 
48
47
  # Just a sanity check for output escaping.
49
- def test_output_escaping_sanity
50
- node = XML::Node.new_text('testdata')
48
+ def test_output_escaping_sanity
49
+ node = LibXML::XML::Node.new_text('testdata')
51
50
  assert_equal 'text', node.name
52
51
  assert node.output_escaping?
53
52
 
@@ -67,5 +66,4 @@ class TestTextNode < Test::Unit::TestCase
67
66
  assert_equal 'text', node.name
68
67
  assert node.output_escaping?
69
68
  end
70
-
71
69
  end
@@ -1,32 +1,31 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
- class TestNodeWrite < Test::Unit::TestCase
5
+ class TestNodeWrite < Minitest::Test
7
6
  def setup
8
7
  load_encoding("utf-8")
9
8
  end
10
9
 
11
10
  def teardown
12
- XML.default_keep_blanks = true
11
+ LibXML::XML.default_keep_blanks = true
13
12
  @doc = nil
14
13
  end
15
14
 
16
15
  def load_encoding(name)
17
- @encoding = Encoding.find(name) if defined?(Encoding)
16
+ @encoding = Encoding.find(name)
18
17
  @file_name = "model/bands.#{name.downcase}.xml"
19
18
 
20
19
  # Strip spaces to make testing easier
21
- XML.default_keep_blanks = false
20
+ LibXML::XML.default_keep_blanks = false
22
21
  file = File.join(File.dirname(__FILE__), @file_name)
23
- @doc = XML::Document.file(file)
22
+ @doc = LibXML::XML::Document.file(file)
24
23
  end
25
24
 
26
25
  def test_to_s_default
27
26
  # Default to_s has indentation
28
27
  node = @doc.root
29
- assert_equal(Encoding::UTF_8, node.to_s.encoding) if defined?(Encoding)
28
+ assert_equal(Encoding::UTF_8, node.to_s.encoding)
30
29
  assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
31
30
  node.to_s)
32
31
  end
@@ -34,11 +33,11 @@ class TestNodeWrite < Test::Unit::TestCase
34
33
  def test_to_s_no_global_indentation
35
34
  # No indentation due to global setting
36
35
  node = @doc.root
37
- XML.indent_tree_output = false
36
+ LibXML::XML.indent_tree_output = false
38
37
  assert_equal("<bands genre=\"metal\">\n<m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n<iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
39
38
  node.to_s)
40
39
  ensure
41
- XML.indent_tree_output = true
40
+ LibXML::XML.indent_tree_output = true
42
41
  end
43
42
 
44
43
  def test_to_s_no_indentation
@@ -62,26 +61,21 @@ class TestNodeWrite < Test::Unit::TestCase
62
61
  # UTF8:
63
62
  # ö - c3 b6 in hex, \303\266 in octal
64
63
  # ü - c3 bc in hex, \303\274 in octal
65
- value = node.to_s(:encoding => XML::Encoding::UTF_8)
66
- assert_equal(Encoding::UTF_8, node.to_s.encoding) if defined?(Encoding)
64
+ value = node.to_s(:encoding => LibXML::XML::Encoding::UTF_8)
65
+ assert_equal(Encoding::UTF_8, node.to_s.encoding)
67
66
  assert_equal("<bands genre=\"metal\">\n <m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
68
67
  value)
69
68
 
70
69
  # ISO_8859_1:
71
70
  # ö - f6 in hex, \366 in octal
72
71
  # ü - fc in hex, \374 in octal
73
- value = node.to_s(:encoding => XML::Encoding::ISO_8859_1)
74
- if defined?(Encoding)
75
- assert_equal(Encoding::ISO8859_1, value.encoding)
76
- assert_equal("<bands genre=\"metal\">\n <m\xF6tley_cr\xFCe country=\"us\">M\xF6tley Cr\xFCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\xF6tley_cr\xFCe>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>".force_encoding(Encoding::ISO8859_1),
77
- value)
78
- else
79
- assert_equal("<bands genre=\"metal\">\n <m\xF6tley_cr\xFCe country=\"us\">M\xF6tley Cr\xFCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\xF6tley_cr\xFCe>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>",
72
+ value = node.to_s(:encoding => LibXML::XML::Encoding::ISO_8859_1)
73
+ assert_equal(Encoding::ISO8859_1, value.encoding)
74
+ assert_equal("<bands genre=\"metal\">\n <m\xF6tley_cr\xFCe country=\"us\">M\xF6tley Cr\xFCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\xF6tley_cr\xFCe>\n <iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>\n</bands>".force_encoding(Encoding::ISO8859_1),
80
75
  value)
81
- end
82
76
 
83
77
  # Invalid encoding
84
- error = assert_raise(ArgumentError) do
78
+ error = assert_raises(ArgumentError) do
85
79
  node.to_s(:encoding => -9999)
86
80
  end
87
81
  assert_equal('Unknown encoding value: -9999', error.to_s)
@@ -91,14 +85,9 @@ class TestNodeWrite < Test::Unit::TestCase
91
85
  # Default to_s has indentation
92
86
  node = @doc.root
93
87
 
94
- if defined?(Encoding)
95
- assert_equal(Encoding::UTF_8, node.inner_xml.encoding)
96
- assert_equal("<m\u00F6tley_cr\u00FCe country=\"us\">M\u00F6tley Cr\u00FCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\u00F6tley_cr\u00FCe><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>",
97
- node.inner_xml)
98
- else
99
- assert_equal("<m\303\266tley_cr\303\274e country=\"us\">M\303\266tley Cr\303\274e is an American heavy metal band formed in Los Angeles, California in 1981.</m\303\266tley_cr\303\274e><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>",
100
- node.inner_xml)
101
- end
88
+ assert_equal(Encoding::UTF_8, node.inner_xml.encoding)
89
+ assert_equal("<m\u00F6tley_cr\u00FCe country=\"us\">M\u00F6tley Cr\u00FCe is an American heavy metal band formed in Los Angeles, California in 1981.</m\u00F6tley_cr\u00FCe><iron_maiden country=\"uk\">Iron Maiden is a British heavy metal band formed in 1975.</iron_maiden>",
90
+ node.inner_xml)
102
91
  end
103
92
 
104
93
  # --- Debug ---
@@ -0,0 +1,28 @@
1
+ # encoding: UTF-8
2
+
3
+ # $Id$
4
+ require_relative './test_helper'
5
+
6
+
7
+ class TC_XML_Node_XLink < Minitest::Test
8
+ def setup()
9
+ xp = LibXML::XML::Parser.string('<ruby_array xmlns:xlink="http://www.w3.org/1999/xlink/namespace/"><fixnum xlink:type="simple">one</fixnum></ruby_array>')
10
+ doc = xp.parse
11
+ assert_instance_of(LibXML::XML::Document, doc)
12
+ @root = doc.root
13
+ assert_instance_of(LibXML::XML::Node, @root)
14
+ end
15
+
16
+ def teardown()
17
+ @root = nil
18
+ end
19
+
20
+ def test_xml_node_xlink()
21
+ for elem in @root.find('fixnum')
22
+ assert_instance_of(LibXML::XML::Node, elem)
23
+ assert_instance_of(TrueClass, elem.xlink?)
24
+ assert_equal("simple", elem.xlink_type_name)
25
+ assert_equal(LibXML::XML::Node::XLINK_TYPE_SIMPLE, elem.xlink_type)
26
+ end
27
+ end
28
+ end