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,31 +1,30 @@
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 NodeCommentTest < Test::Unit::TestCase
6
+ class NodeCommentTest < Minitest::Test
8
7
  def setup
9
- xp = XML::Parser.string('<root></root>')
8
+ xp = LibXML::XML::Parser.string('<root></root>')
10
9
  @doc = xp.parse
11
- assert_instance_of(XML::Document, @doc)
10
+ assert_instance_of(LibXML::XML::Document, @doc)
12
11
  @root = @doc.root
13
12
  end
14
13
 
15
14
  def test_libxml_node_add_comment_01
16
- @root << XML::Node.new_comment('mycomment')
15
+ @root << LibXML::XML::Node.new_comment('mycomment')
17
16
  assert_equal '<root><!--mycomment--></root>',
18
17
  @root.to_s.gsub(/\n\s*/,'')
19
18
  end
20
19
 
21
20
  def test_libxml_node_add_comment_02
22
- @root << XML::Node.new_comment('mycomment')
21
+ @root << LibXML::XML::Node.new_comment('mycomment')
23
22
  assert_equal 'comment',
24
23
  @root.child.node_type_name
25
24
  end
26
25
 
27
26
  def test_libxml_node_add_comment_03
28
- @root << el = XML::Node.new_comment('mycomment')
27
+ @root << el = LibXML::XML::Node.new_comment('mycomment')
29
28
  el << "_this_is_added"
30
29
  assert_equal '<root><!--mycomment_this_is_added--></root>',
31
30
  @root.to_s.gsub(/\n\s*/,'')
@@ -1,13 +1,12 @@
1
1
  # encoding: UTF-8
2
2
 
3
- require './test_helper'
4
- require 'test/unit'
3
+ require_relative './test_helper'
5
4
 
6
5
  # see mailing list archive
7
6
  # [libxml-devel] Segmentation fault when add the cloned/copied node
8
7
  # 2007/11/27 20:51
9
8
 
10
- class TestNodeCopy < Test::Unit::TestCase
9
+ class TestNodeCopy < Minitest::Test
11
10
  def setup
12
11
  str = <<-STR
13
12
  <html><body>
@@ -16,7 +15,7 @@ class TestNodeCopy < Test::Unit::TestCase
16
15
  </body></html>
17
16
  STR
18
17
 
19
- doc = XML::Parser.string(str).parse
18
+ doc = LibXML::XML::Parser.string(str).parse
20
19
 
21
20
  xpath = "//div"
22
21
  @div1 = doc.find(xpath).to_a[0]
@@ -38,5 +37,4 @@ class TestNodeCopy < Test::Unit::TestCase
38
37
  end
39
38
  assert @div1.to_s =~ /foo/
40
39
  end
41
-
42
- end # TC_XML_Node_Copy
40
+ end
@@ -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 ---