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,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 ---