nokogiri 1.4.7 → 1.5.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (164) hide show
  1. data/CHANGELOG.ja.rdoc +8 -83
  2. data/CHANGELOG.rdoc +6 -80
  3. data/Manifest.txt +4 -74
  4. data/README.ja.rdoc +5 -1
  5. data/README.rdoc +8 -22
  6. data/Rakefile +79 -60
  7. data/bin/nokogiri +1 -6
  8. data/deps.rip +5 -0
  9. data/ext/nokogiri/extconf.rb +32 -53
  10. data/ext/nokogiri/nokogiri.c +0 -2
  11. data/ext/nokogiri/nokogiri.h +0 -9
  12. data/ext/nokogiri/xml_document.c +0 -14
  13. data/ext/nokogiri/xml_dtd.c +2 -2
  14. data/ext/nokogiri/xml_io.c +7 -32
  15. data/ext/nokogiri/xml_node.c +31 -103
  16. data/ext/nokogiri/xml_node_set.c +8 -8
  17. data/ext/nokogiri/xml_reader.c +1 -20
  18. data/ext/nokogiri/xml_sax_parser.c +3 -5
  19. data/ext/nokogiri/xml_sax_parser_context.c +0 -40
  20. data/ext/nokogiri/xml_xpath_context.c +2 -35
  21. data/ext/nokogiri/xslt_stylesheet.c +6 -124
  22. data/lib/nokogiri.rb +7 -3
  23. data/lib/nokogiri/css.rb +3 -6
  24. data/lib/nokogiri/css/generated_parser.rb +669 -0
  25. data/lib/nokogiri/css/generated_tokenizer.rb +145 -0
  26. data/lib/nokogiri/css/parser.rb +70 -665
  27. data/lib/nokogiri/css/parser.y +1 -6
  28. data/lib/nokogiri/css/tokenizer.rb +3 -148
  29. data/lib/nokogiri/css/tokenizer.rex +1 -1
  30. data/lib/nokogiri/css/xpath_visitor.rb +14 -16
  31. data/lib/nokogiri/decorators/slop.rb +3 -5
  32. data/lib/nokogiri/html.rb +3 -2
  33. data/lib/nokogiri/html/document.rb +18 -134
  34. data/lib/nokogiri/html/document_fragment.rb +21 -26
  35. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  36. data/lib/nokogiri/html/sax/parser.rb +2 -6
  37. data/lib/nokogiri/version.rb +4 -9
  38. data/lib/nokogiri/xml/attribute_decl.rb +1 -1
  39. data/lib/nokogiri/xml/builder.rb +1 -1
  40. data/lib/nokogiri/xml/document.rb +3 -27
  41. data/lib/nokogiri/xml/document_fragment.rb +2 -9
  42. data/lib/nokogiri/xml/dtd.rb +1 -12
  43. data/lib/nokogiri/xml/element_decl.rb +1 -1
  44. data/lib/nokogiri/xml/entity_decl.rb +1 -1
  45. data/lib/nokogiri/xml/node.rb +75 -172
  46. data/lib/nokogiri/xml/node/save_options.rb +0 -10
  47. data/lib/nokogiri/xml/node_set.rb +3 -28
  48. data/lib/nokogiri/xml/parse_options.rb +0 -8
  49. data/lib/nokogiri/xml/reader.rb +6 -44
  50. data/lib/nokogiri/xml/sax/document.rb +5 -9
  51. data/lib/nokogiri/xml/schema.rb +1 -7
  52. data/lib/nokogiri/xslt.rb +5 -9
  53. data/tasks/cross_compile.rb +12 -27
  54. data/tasks/test.rb +0 -0
  55. data/test/css/test_parser.rb +19 -40
  56. data/test/css/test_tokenizer.rb +0 -8
  57. data/test/helper.rb +1 -4
  58. data/test/html/sax/test_parser.rb +21 -47
  59. data/test/html/sax/test_parser_context.rb +2 -2
  60. data/test/html/test_document.rb +3 -58
  61. data/test/html/test_document_encoding.rb +0 -53
  62. data/test/html/test_document_fragment.rb +13 -82
  63. data/test/html/test_element_description.rb +4 -2
  64. data/test/html/test_node.rb +0 -9
  65. data/test/test_memory_leak.rb +2 -57
  66. data/test/test_nokogiri.rb +14 -20
  67. data/test/test_reader.rb +7 -47
  68. data/test/test_xslt_transforms.rb +5 -8
  69. data/test/xml/sax/test_parser.rb +17 -34
  70. data/test/xml/sax/test_parser_context.rb +0 -50
  71. data/test/xml/sax/test_push_parser.rb +1 -18
  72. data/test/xml/test_attr.rb +4 -31
  73. data/test/xml/test_attribute_decl.rb +7 -3
  74. data/test/xml/test_builder.rb +5 -5
  75. data/test/xml/test_cdata.rb +3 -3
  76. data/test/xml/test_document.rb +18 -15
  77. data/test/xml/test_document_fragment.rb +20 -19
  78. data/test/xml/test_dtd.rb +13 -18
  79. data/test/xml/test_element_content.rb +1 -1
  80. data/test/xml/test_element_decl.rb +1 -1
  81. data/test/xml/test_entity_decl.rb +12 -10
  82. data/test/xml/test_namespace.rb +7 -5
  83. data/test/xml/test_node.rb +15 -54
  84. data/test/xml/test_node_reparenting.rb +42 -85
  85. data/test/xml/test_node_set.rb +2 -61
  86. data/test/xml/test_schema.rb +0 -5
  87. data/test/xml/test_text.rb +2 -11
  88. data/test/xml/test_unparented_node.rb +1 -1
  89. data/test/xml/test_xpath.rb +7 -43
  90. metadata +131 -155
  91. data/.gemtest +0 -0
  92. data/ext/nokogiri/depend +0 -358
  93. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  94. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  95. data/lib/nokogiri/css/parser_extras.rb +0 -91
  96. data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
  97. data/lib/nokogiri/ffi/html/document.rb +0 -28
  98. data/lib/nokogiri/ffi/html/element_description.rb +0 -81
  99. data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
  100. data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
  101. data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
  102. data/lib/nokogiri/ffi/libxml.rb +0 -420
  103. data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
  104. data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
  105. data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
  106. data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
  107. data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -20
  108. data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
  109. data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
  110. data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
  111. data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
  112. data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
  113. data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
  114. data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
  115. data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
  116. data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
  117. data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
  118. data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
  119. data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
  120. data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
  121. data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -20
  122. data/lib/nokogiri/ffi/structs/xml_parser_input.rb +0 -19
  123. data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
  124. data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
  125. data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
  126. data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
  127. data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
  128. data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
  129. data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
  130. data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
  131. data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
  132. data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
  133. data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
  134. data/lib/nokogiri/ffi/xml/attr.rb +0 -41
  135. data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
  136. data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
  137. data/lib/nokogiri/ffi/xml/comment.rb +0 -18
  138. data/lib/nokogiri/ffi/xml/document.rb +0 -174
  139. data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
  140. data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
  141. data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
  142. data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
  143. data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
  144. data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
  145. data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
  146. data/lib/nokogiri/ffi/xml/node.rb +0 -559
  147. data/lib/nokogiri/ffi/xml/node_set.rb +0 -150
  148. data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
  149. data/lib/nokogiri/ffi/xml/reader.rb +0 -236
  150. data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
  151. data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -143
  152. data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -79
  153. data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
  154. data/lib/nokogiri/ffi/xml/schema.rb +0 -109
  155. data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
  156. data/lib/nokogiri/ffi/xml/text.rb +0 -18
  157. data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
  158. data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -153
  159. data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -77
  160. data/test/decorators/test_slop.rb +0 -16
  161. data/test/ffi/test_document.rb +0 -35
  162. data/test/files/encoding.html +0 -82
  163. data/test/files/encoding.xhtml +0 -84
  164. data/test/xslt/test_custom_functions.rb +0 -94
@@ -50,22 +50,21 @@ module Nokogiri
50
50
  # end
51
51
 
52
52
  {
53
- :add_child => {:target => "/root/a1", :returns_self => false, :children_tags => %w[text b1 b2]},
54
- :<< => {:target => "/root/a1", :returns_self => false, :children_tags => %w[text b1 b2]},
53
+ :add_child => {:target => "/root/a1", :returns => :reparented, :children_tags => %w[text b1 b2]},
54
+ :<< => {:target => "/root/a1", :returns => :reparented, :children_tags => %w[text b1 b2]},
55
55
 
56
- :replace => {:target => "/root/a1/node()", :returns_self => false, :children_tags => %w[b1 b2]},
57
- :swap => {:target => "/root/a1/node()", :returns_self => true, :children_tags => %w[b1 b2]},
56
+ :replace => {:target => "/root/a1/node()", :returns => :reparented, :children_tags => %w[b1 b2]},
57
+ :swap => {:target => "/root/a1/node()", :returns => :self, :children_tags => %w[b1 b2]},
58
58
 
59
- :children= => {:target => "/root/a1", :returns_self => false, :children_tags => %w[b1 b2]},
60
- :inner_html= => {:target => "/root/a1", :returns_self => true, :children_tags => %w[b1 b2]},
59
+ :inner_html= => {:target => "/root/a1", :returns => :self, :children_tags => %w[b1 b2]},
61
60
 
62
- :add_previous_sibling => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[b1 b2 text]},
63
- :previous= => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[b1 b2 text]},
64
- :before => {:target => "/root/a1/text()", :returns_self => true, :children_tags => %w[b1 b2 text]},
61
+ :add_previous_sibling => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[b1 b2 text]},
62
+ :previous= => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[b1 b2 text]},
63
+ :before => {:target => "/root/a1/text()", :returns => :self, :children_tags => %w[b1 b2 text]},
65
64
 
66
- :add_next_sibling => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[text b1 b2]},
67
- :next= => {:target => "/root/a1/text()", :returns_self => false, :children_tags => %w[text b1 b2]},
68
- :after => {:target => "/root/a1/text()", :returns_self => true, :children_tags => %w[text b1 b2]}
65
+ :add_next_sibling => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[text b1 b2]},
66
+ :next= => {:target => "/root/a1/text()", :returns => :reparented, :children_tags => %w[text b1 b2]},
67
+ :after => {:target => "/root/a1/text()", :returns => :self, :children_tags => %w[text b1 b2]}
69
68
  }.each do |method, params|
70
69
 
71
70
  before do
@@ -96,12 +95,11 @@ module Nokogiri
96
95
  end
97
96
 
98
97
  it "returns the expected value" do
99
- sendee = @doc.at_xpath(params[:target])
100
- result = sendee.send(method, @other_node)
101
- if params[:returns_self]
102
- result.must_equal sendee
98
+ if params[:returns] == :self
99
+ sendee = @doc.at_xpath(params[:target])
100
+ sendee.send(method, @other_node).must_equal sendee
103
101
  else
104
- result.must_equal @other_node
102
+ @doc.at_xpath(params[:target]).send(method, @other_node).must_equal @other_node
105
103
  end
106
104
  end
107
105
  end
@@ -112,17 +110,6 @@ module Nokogiri
112
110
  @doc.at_xpath(params[:target]).send(method, @fragment_string)
113
111
  @doc.xpath("/root/a1/node()").collect {|n| n.name}.must_equal params[:children_tags]
114
112
  end
115
-
116
- it "returns the expected value" do
117
- sendee = @doc.at_xpath(params[:target])
118
- result = sendee.send(method, @fragment_string)
119
- if params[:returns_self]
120
- result.must_equal sendee
121
- else
122
- result.must_be_kind_of Nokogiri::XML::NodeSet
123
- result.to_html.must_equal @fragment_string
124
- end
125
- end
126
113
  end
127
114
  describe "passed a fragment" do
128
115
  it "inserts the fragment roots in the proper position" do
@@ -147,25 +134,37 @@ module Nokogiri
147
134
  end
148
135
  end
149
136
  end
150
- end
151
137
 
152
- describe "text node merging" do
153
- describe "#add_child" do
154
- it "merges the Text node with adjacent Text nodes" do
155
- @doc.at_xpath("/root/a1").add_child Nokogiri::XML::Text.new('hello', @doc)
156
- @doc.at_xpath("/root/a1/text()").content.must_equal "First nodehello"
138
+ describe "text node merging" do
139
+ describe "#add_child" do
140
+ it "merges the Text node with adjacent Text nodes" do
141
+ @doc.at_xpath("/root/a1").add_child Nokogiri::XML::Text.new('hello', @doc)
142
+ @doc.at_xpath("/root/a1/text()").content.must_equal "First nodehello"
143
+ end
157
144
  end
158
- end
159
- describe "#replace" do
160
- it "merges the Text node with adjacent Text nodes" do
161
- @doc.at_xpath("/root/a3/bx").replace Nokogiri::XML::Text.new('hello', @doc)
162
- @doc.at_xpath("/root/a3/text()").content.must_equal "Third hellonode"
145
+ describe "#replace" do
146
+ it "merges the Text node with adjacent Text nodes" do
147
+ @doc.at_xpath("/root/a3/bx").replace Nokogiri::XML::Text.new('hello', @doc)
148
+ @doc.at_xpath("/root/a3/text()").content.must_equal "Third hellonode"
149
+ end
163
150
  end
164
151
  end
165
152
  end
166
153
  end
167
154
 
168
155
  describe "ad hoc node reparenting behavior" do
156
+ before do
157
+ @xml = Nokogiri::XML "<root><a1>First node</a1><a2>Second node</a2><a3>Third node</a3></root>"
158
+ @html = Nokogiri::HTML(<<-eohtml)
159
+ <html>
160
+ <head></head>
161
+ <body>
162
+ <div class='baz'><a href="foo" class="bar">first</a></div>
163
+ </body>
164
+ </html>
165
+ eohtml
166
+ end
167
+
169
168
  describe "#add_child" do
170
169
  describe "given a new node with a namespace" do
171
170
  it "keeps the namespace" do
@@ -224,34 +223,7 @@ module Nokogiri
224
223
  end
225
224
  end
226
225
 
227
- describe "#add_previous_sibling" do
228
- it "should not merge text nodes during the operation" do
229
- xml = Nokogiri::XML %Q(<root>text node</root>)
230
- replacee = xml.root.children.first
231
- replacee.add_previous_sibling "foo <p></p> bar"
232
- assert_equal "foo <p></p> bartext node", xml.root.children.to_html
233
- end
234
- end
235
-
236
- describe "#add_next_sibling" do
237
- it "should not merge text nodes during the operation" do
238
- xml = Nokogiri::XML %Q(<root>text node</root>)
239
- replacee = xml.root.children.first
240
- replacee.add_next_sibling "foo <p></p> bar"
241
- assert_equal "text nodefoo <p></p> bar", xml.root.children.to_html
242
- end
243
- end
244
-
245
226
  describe "#replace" do
246
- describe "a text node with a text node" do
247
- it "should not merge text nodes during the operation" do
248
- xml = Nokogiri::XML %Q(<root>text node</root>)
249
- replacee = xml.root.children.first
250
- replacee.replace "new text node"
251
- assert_equal "new text node", xml.root.children.first.content
252
- end
253
- end
254
-
255
227
  describe "when a document has a default namespace" do
256
228
  before do
257
229
  @fruits = Nokogiri::XML(<<-eoxml)
@@ -288,10 +260,10 @@ module Nokogiri
288
260
  </root>
289
261
  EOHTML
290
262
 
291
- assert root = doc.at("root")
292
- assert a = root.at("a")
293
- assert b = a.at("b")
294
- assert c = a.at("c")
263
+ root = doc.at("root")
264
+ a = root.at("a")
265
+ b = a.at("b")
266
+ c = a.at("c")
295
267
  a.add_next_sibling(b.unlink)
296
268
  c.unlink
297
269
  end
@@ -300,21 +272,6 @@ module Nokogiri
300
272
  end
301
273
  end
302
274
 
303
- describe "replace-merging text nodes" do
304
- [
305
- ['<root>a<br/></root>', 'afoo'],
306
- ['<root>a<br/>b</root>', 'afoob'],
307
- ['<root><br/>b</root>', 'foob']
308
- ].each do |xml, result|
309
- it "doesn't blow up on #{xml}" do
310
- doc = Nokogiri::XML.parse(xml)
311
- saved_nodes = doc.root.children
312
- doc.at_xpath("/root/br").replace(Nokogiri::XML::Text.new('foo', doc))
313
- saved_nodes.each { |child| child.inspect } # try to cause a crash
314
- assert_equal result, doc.at_xpath("/root/text()").inner_text
315
- end
316
- end
317
- end
318
275
  end
319
276
  end
320
277
  end
@@ -3,27 +3,6 @@ require "helper"
3
3
  module Nokogiri
4
4
  module XML
5
5
  class TestNodeSet < Nokogiri::TestCase
6
- class TestNodeSetNamespaces < Nokogiri::TestCase
7
- def setup
8
- super
9
- @xml = Nokogiri.XML('<foo xmlns:n0="http://example.com" />')
10
- @list = @xml.xpath('//namespace::*')
11
- end
12
-
13
- def test_include?
14
- assert @list.include?(@list.first), 'list should have item'
15
- end
16
-
17
- def test_push
18
- @list.push @list.first
19
- end
20
-
21
- def test_delete
22
- @list.push @list.first
23
- @list.delete @list.first
24
- end
25
- end
26
-
27
6
  def setup
28
7
  super
29
8
  @xml = Nokogiri::XML(File.read(XML_FILE), XML_FILE)
@@ -158,16 +137,6 @@ module Nokogiri
158
137
  set = html.xpath("/html/body/div")
159
138
  assert_equal set.first, set.search(".a").first
160
139
  end
161
-
162
- def test_css_search_with_namespace
163
- fragment = Nokogiri::XML.fragment(<<-eoxml)
164
- <html xmlns="http://www.w3.org/1999/xhtml">
165
- <head></head>
166
- <body></body>
167
- </html>
168
- eoxml
169
- assert_nothing_raised{ fragment.children.search( 'body', { 'xmlns' => 'http://www.w3.org/1999/xhtml' }) }
170
- end
171
140
 
172
141
  def test_double_equal
173
142
  assert node_set_one = @xml.xpath('//employee')
@@ -286,26 +255,11 @@ module Nokogiri
286
255
  assert_match '<a>', html
287
256
  end
288
257
 
289
- def test_gt_string_arg
290
- assert node_set = @xml.search('//employee')
291
- assert_equal node_set.xpath('./employeeId'), (node_set > 'employeeId')
292
- end
293
-
294
258
  def test_at
295
259
  assert node_set = @xml.search('//employee')
296
260
  assert_equal node_set.first, node_set.at(0)
297
261
  end
298
262
 
299
- def test_at_xpath
300
- assert node_set = @xml.search('//employee')
301
- assert_equal node_set.first.first_element_child, node_set.at_xpath('./employeeId')
302
- end
303
-
304
- def test_at_css
305
- assert node_set = @xml.search('//employee')
306
- assert_equal node_set.first.first_element_child, node_set.at_css('employeeId')
307
- end
308
-
309
263
  def test_percent
310
264
  assert node_set = @xml.search('//employee')
311
265
  assert_equal node_set.first, node_set % 0
@@ -441,19 +395,6 @@ module Nokogiri
441
395
  assert_equal 'employee', @xml.search("//wrapper").first.children[0].name
442
396
  end
443
397
 
444
- def test_wrap_a_fragment
445
- frag = Nokogiri::XML::DocumentFragment.parse <<-EOXML
446
- <employees>
447
- <employee>hello</employee>
448
- <employee>goodbye</employee>
449
- </employees>
450
- EOXML
451
- employees = frag.xpath ".//employee"
452
- employees.wrap("<wrapper/>")
453
- assert_equal 'wrapper', employees[0].parent.name
454
- assert_equal 'employee', frag.at(".//wrapper").children.first.name
455
- end
456
-
457
398
  def test_wrap_preserves_document_structure
458
399
  assert_equal "employeeId",
459
400
  @xml.at_xpath("//employee").children.detect{|j| ! j.text? }.name
@@ -469,7 +410,7 @@ module Nokogiri
469
410
  names_len = names.length
470
411
  positions_len = positions.length
471
412
 
472
- assert_raises(ArgumentError) { names + positions.first }
413
+ assert_raises(ArgumentError) { result = names + positions.first }
473
414
 
474
415
  result = names + positions
475
416
  assert_equal names_len, names.length
@@ -493,7 +434,7 @@ module Nokogiri
493
434
  employees_len = employees.length
494
435
  females_len = females.length
495
436
 
496
- assert_raises(ArgumentError) { employees - females.first }
437
+ assert_raises(ArgumentError) { result = employees - females.first }
497
438
 
498
439
  result = employees - females
499
440
  assert_equal employees_len, employees.length
@@ -74,11 +74,6 @@ module Nokogiri
74
74
  assert_equal 2, errors.length
75
75
  end
76
76
 
77
- def test_validate_non_document
78
- string = File.read(PO_XML_FILE)
79
- assert_raise(ArgumentError) {@xsd.validate(string)}
80
- end
81
-
82
77
  def test_valid?
83
78
  valid_doc = Nokogiri::XML(File.read(PO_XML_FILE))
84
79
 
@@ -3,13 +3,6 @@ require "helper"
3
3
  module Nokogiri
4
4
  module XML
5
5
  class TestText < Nokogiri::TestCase
6
- def test_css_path
7
- doc = Nokogiri.XML "<root> foo <a>something</a> bar bazz </root>"
8
- node = doc.root.children[2]
9
- assert_instance_of Nokogiri::XML::Text, node
10
- assert_equal node, doc.at_css(node.css_path)
11
- end
12
-
13
6
  def test_inspect
14
7
  node = Text.new('hello world', Document.new)
15
8
  assert_equal "#<#{node.class.name}:#{sprintf("0x%x",node.object_id)} #{node.text.inspect}>", node.inspect
@@ -26,13 +19,11 @@ module Nokogiri
26
19
  100.times { Text.new('hello world', Document.new) }
27
20
  end
28
21
 
22
+ # No assertion because this was a segv
29
23
  def test_new_without_document
30
24
  doc = Document.new
31
25
  node = Nokogiri::XML::Element.new('foo', doc)
32
-
33
- assert_nothing_raised do
34
- Text.new('hello world', node)
35
- end
26
+ text = Text.new('hello world', node)
36
27
  end
37
28
 
38
29
  def test_content=
@@ -129,7 +129,7 @@ module Nokogiri
129
129
  def test_add_child_in_same_document
130
130
  child = @node.css('employee').first
131
131
 
132
- assert child.children.last
132
+ assert previous_last_child = child.children.last
133
133
  assert new_child = child.children.first
134
134
 
135
135
  last = child.children.last
@@ -61,10 +61,6 @@ module Nokogiri
61
61
  }.new
62
62
  end
63
63
 
64
- def test_variable_binding
65
- assert_equal 4, @xml.xpath('//address[@domestic=$value]', nil, :value => 'Yes').length
66
- end
67
-
68
64
  def test_unknown_attribute
69
65
  assert_equal 0, @xml.xpath('//employee[@id="asdfasdf"]/@fooo').length
70
66
  assert_nil @xml.xpath('//employee[@id="asdfasdf"]/@fooo')[0]
@@ -96,13 +92,11 @@ module Nokogiri
96
92
 
97
93
  def test_css_search_uses_custom_selectors
98
94
  set = @xml.xpath('//employee')
99
- assert_nothing_raised do
100
- if Nokogiri.uses_libxml?
101
- @xml.css('employee:thing()', @handler)
102
- else
103
- @xml.xpath("//employee[nokogiri:thing(.)]", @ns, @handler)
104
- end
105
- end
95
+ css_set = if Nokogiri.uses_libxml?
96
+ @xml.css('employee:thing()', @handler)
97
+ else
98
+ @xml.xpath("//employee[nokogiri:thing(.)]", @ns, @handler)
99
+ end
106
100
  assert_equal(set.length, @handler.things.length)
107
101
  assert_equal(set.to_a, @handler.things.flatten)
108
102
  end
@@ -190,9 +184,7 @@ module Nokogiri
190
184
  def awesome! ; end
191
185
  end
192
186
  util_decorate(@xml, x)
193
-
194
- assert @xml.xpath('//employee/name')
195
-
187
+ set = @xml.xpath('//employee/name')
196
188
  @xml.xpath('//employee[saves_node_set(name)]', @handler)
197
189
  assert_equal @xml, @handler.things.document
198
190
  assert @handler.things.respond_to?(:awesome!)
@@ -202,35 +194,7 @@ module Nokogiri
202
194
  doc = "<html><body id='foo'><foo>hi</foo></body></html>"
203
195
  xpath = 'id("foo")//foo'
204
196
  nokogiri = Nokogiri::HTML.parse(doc)
205
- assert nokogiri.xpath(xpath)
206
- end
207
-
208
- def test_custom_xpath_handler_with_args_under_gc_pressure
209
- # see http://github.com/tenderlove/nokogiri/issues/#issue/345
210
- tool_inspector = Class.new do
211
- def name_equals(nodeset, name, *args)
212
- nodeset.all? do |node|
213
- args.each { |thing| thing.inspect }
214
- node["name"] == name
215
- end
216
- end
217
- end.new
218
-
219
- xml = <<-EOXML
220
- <toolbox>
221
- #{"<tool name='hammer'/><tool name='wrench'/>" * 10}
222
- </toolbox>
223
- EOXML
224
- doc = Nokogiri::XML xml
225
-
226
- # long list of long arguments, to apply GC pressure during
227
- # ruby_funcall argument marshalling
228
- xpath = ["//tool[name_equals(.,'hammer'"]
229
- 1000.times { xpath << "'unused argument #{'x' * 1000}'" }
230
- xpath << "'unused argument')]"
231
- xpath = xpath.join(',')
232
-
233
- assert_equal doc.xpath("//tool[@name='hammer']"), doc.xpath(xpath, tool_inspector)
197
+ tree = nokogiri.xpath(xpath)
234
198
  end
235
199
  end
236
200
  end
metadata CHANGED
@@ -1,8 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.4.7
4
+ hash: 62196433
5
+ prerelease: true
6
+ segments:
7
+ - 1
8
+ - 5
9
+ - 0
10
+ - beta
11
+ - 1
12
+ version: 1.5.0.beta.1
6
13
  platform: ruby
7
14
  authors:
8
15
  - Aaron Patterson
@@ -11,64 +18,99 @@ autorequire:
11
18
  bindir: bin
12
19
  cert_chain: []
13
20
 
14
- date: 2011-07-01 00:00:00 -04:00
21
+ date: 2010-06-08 00:00:00 -04:00
15
22
  default_executable:
16
23
  dependencies:
17
24
  - !ruby/object:Gem::Dependency
18
- name: racc
25
+ name: rubyforge
19
26
  prerelease: false
20
27
  requirement: &id001 !ruby/object:Gem::Requirement
21
28
  none: false
22
29
  requirements:
23
30
  - - ">="
24
31
  - !ruby/object:Gem::Version
25
- version: "0"
32
+ hash: 7
33
+ segments:
34
+ - 2
35
+ - 0
36
+ - 4
37
+ version: 2.0.4
26
38
  type: :development
27
39
  version_requirements: *id001
28
40
  - !ruby/object:Gem::Dependency
29
- name: rexical
41
+ name: racc
30
42
  prerelease: false
31
43
  requirement: &id002 !ruby/object:Gem::Requirement
32
44
  none: false
33
45
  requirements:
34
46
  - - ">="
35
47
  - !ruby/object:Gem::Version
48
+ hash: 3
49
+ segments:
50
+ - 0
36
51
  version: "0"
37
52
  type: :development
38
53
  version_requirements: *id002
39
54
  - !ruby/object:Gem::Dependency
40
- name: rake-compiler
55
+ name: rexical
41
56
  prerelease: false
42
57
  requirement: &id003 !ruby/object:Gem::Requirement
43
58
  none: false
44
59
  requirements:
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
47
65
  version: "0"
48
66
  type: :development
49
67
  version_requirements: *id003
50
68
  - !ruby/object:Gem::Dependency
51
- name: minitest
69
+ name: rake-compiler
52
70
  prerelease: false
53
71
  requirement: &id004 !ruby/object:Gem::Requirement
54
72
  none: false
55
73
  requirements:
56
74
  - - ">="
57
75
  - !ruby/object:Gem::Version
58
- version: 1.6.0
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
59
80
  type: :development
60
81
  version_requirements: *id004
61
82
  - !ruby/object:Gem::Dependency
62
- name: hoe
83
+ name: minitest
63
84
  prerelease: false
64
85
  requirement: &id005 !ruby/object:Gem::Requirement
65
86
  none: false
66
87
  requirements:
67
88
  - - ">="
68
89
  - !ruby/object:Gem::Version
69
- version: 2.9.4
90
+ hash: 15
91
+ segments:
92
+ - 1
93
+ - 6
94
+ - 0
95
+ version: 1.6.0
70
96
  type: :development
71
97
  version_requirements: *id005
98
+ - !ruby/object:Gem::Dependency
99
+ name: hoe
100
+ prerelease: false
101
+ requirement: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 23
107
+ segments:
108
+ - 2
109
+ - 6
110
+ - 0
111
+ version: 2.6.0
112
+ type: :development
113
+ version_requirements: *id006
72
114
  description: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
73
115
  many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
74
116
  XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
@@ -82,46 +124,44 @@ extensions:
82
124
  - ext/nokogiri/extconf.rb
83
125
  extra_rdoc_files:
84
126
  - Manifest.txt
85
- - README.ja.rdoc
86
- - CHANGELOG.rdoc
87
127
  - CHANGELOG.ja.rdoc
128
+ - CHANGELOG.rdoc
129
+ - README.ja.rdoc
88
130
  - README.rdoc
89
- - ext/nokogiri/xml_sax_push_parser.c
90
- - ext/nokogiri/xml_relax_ng.c
91
- - ext/nokogiri/html_sax_parser_context.c
131
+ - ext/nokogiri/html_document.c
132
+ - ext/nokogiri/html_element_description.c
92
133
  - ext/nokogiri/html_entity_lookup.c
93
- - ext/nokogiri/xml_text.c
134
+ - ext/nokogiri/html_sax_parser_context.c
94
135
  - ext/nokogiri/nokogiri.c
95
- - ext/nokogiri/xml_element_decl.c
96
- - ext/nokogiri/xml_encoding_handler.c
97
- - ext/nokogiri/html_document.c
98
- - ext/nokogiri/xslt_stylesheet.c
136
+ - ext/nokogiri/xml_attr.c
99
137
  - ext/nokogiri/xml_attribute_decl.c
100
- - ext/nokogiri/xml_io.c
101
- - ext/nokogiri/xml_document_fragment.c
102
- - ext/nokogiri/xml_namespace.c
103
- - ext/nokogiri/xml_libxml2_hacks.c
104
- - ext/nokogiri/xml_sax_parser_context.c
138
+ - ext/nokogiri/xml_cdata.c
105
139
  - ext/nokogiri/xml_comment.c
106
- - ext/nokogiri/xml_sax_parser.c
107
- - ext/nokogiri/html_element_description.c
108
- - ext/nokogiri/xml_xpath_context.c
109
- - ext/nokogiri/xml_syntax_error.c
110
140
  - ext/nokogiri/xml_document.c
141
+ - ext/nokogiri/xml_document_fragment.c
142
+ - ext/nokogiri/xml_dtd.c
143
+ - ext/nokogiri/xml_element_content.c
144
+ - ext/nokogiri/xml_element_decl.c
145
+ - ext/nokogiri/xml_encoding_handler.c
111
146
  - ext/nokogiri/xml_entity_decl.c
147
+ - ext/nokogiri/xml_entity_reference.c
148
+ - ext/nokogiri/xml_io.c
149
+ - ext/nokogiri/xml_namespace.c
112
150
  - ext/nokogiri/xml_node.c
113
151
  - ext/nokogiri/xml_node_set.c
114
- - ext/nokogiri/xml_reader.c
115
152
  - ext/nokogiri/xml_processing_instruction.c
116
- - ext/nokogiri/xml_element_content.c
117
- - ext/nokogiri/xml_dtd.c
118
- - ext/nokogiri/xml_attr.c
153
+ - ext/nokogiri/xml_reader.c
154
+ - ext/nokogiri/xml_relax_ng.c
155
+ - ext/nokogiri/xml_sax_parser.c
156
+ - ext/nokogiri/xml_sax_parser_context.c
157
+ - ext/nokogiri/xml_sax_push_parser.c
119
158
  - ext/nokogiri/xml_schema.c
120
- - ext/nokogiri/xml_cdata.c
121
- - ext/nokogiri/xml_entity_reference.c
159
+ - ext/nokogiri/xml_syntax_error.c
160
+ - ext/nokogiri/xml_text.c
161
+ - ext/nokogiri/xml_xpath_context.c
162
+ - ext/nokogiri/xslt_stylesheet.c
122
163
  files:
123
164
  - .autotest
124
- - .gemtest
125
165
  - CHANGELOG.ja.rdoc
126
166
  - CHANGELOG.rdoc
127
167
  - Manifest.txt
@@ -129,7 +169,7 @@ files:
129
169
  - README.rdoc
130
170
  - Rakefile
131
171
  - bin/nokogiri
132
- - ext/nokogiri/depend
172
+ - deps.rip
133
173
  - ext/nokogiri/extconf.rb
134
174
  - ext/nokogiri/html_document.c
135
175
  - ext/nokogiri/html_document.h
@@ -167,8 +207,6 @@ files:
167
207
  - ext/nokogiri/xml_entity_reference.h
168
208
  - ext/nokogiri/xml_io.c
169
209
  - ext/nokogiri/xml_io.h
170
- - ext/nokogiri/xml_libxml2_hacks.c
171
- - ext/nokogiri/xml_libxml2_hacks.h
172
210
  - ext/nokogiri/xml_namespace.c
173
211
  - ext/nokogiri/xml_namespace.h
174
212
  - ext/nokogiri/xml_node.c
@@ -199,84 +237,22 @@ files:
199
237
  - ext/nokogiri/xslt_stylesheet.h
200
238
  - lib/nokogiri.rb
201
239
  - lib/nokogiri/css.rb
240
+ - lib/nokogiri/css/generated_parser.rb
241
+ - lib/nokogiri/css/generated_tokenizer.rb
202
242
  - lib/nokogiri/css/node.rb
203
243
  - lib/nokogiri/css/parser.rb
204
244
  - lib/nokogiri/css/parser.y
205
- - lib/nokogiri/css/parser_extras.rb
206
245
  - lib/nokogiri/css/syntax_error.rb
207
246
  - lib/nokogiri/css/tokenizer.rb
208
247
  - lib/nokogiri/css/tokenizer.rex
209
248
  - lib/nokogiri/css/xpath_visitor.rb
210
249
  - lib/nokogiri/decorators/slop.rb
211
- - lib/nokogiri/ffi/encoding_handler.rb
212
- - lib/nokogiri/ffi/html/document.rb
213
- - lib/nokogiri/ffi/html/element_description.rb
214
- - lib/nokogiri/ffi/html/entity_lookup.rb
215
- - lib/nokogiri/ffi/html/sax/parser_context.rb
216
- - lib/nokogiri/ffi/io_callbacks.rb
217
- - lib/nokogiri/ffi/libxml.rb
218
- - lib/nokogiri/ffi/structs/common_node.rb
219
- - lib/nokogiri/ffi/structs/html_elem_desc.rb
220
- - lib/nokogiri/ffi/structs/html_entity_desc.rb
221
- - lib/nokogiri/ffi/structs/xml_alloc.rb
222
- - lib/nokogiri/ffi/structs/xml_attr.rb
223
- - lib/nokogiri/ffi/structs/xml_attribute.rb
224
- - lib/nokogiri/ffi/structs/xml_buffer.rb
225
- - lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb
226
- - lib/nokogiri/ffi/structs/xml_document.rb
227
- - lib/nokogiri/ffi/structs/xml_dtd.rb
228
- - lib/nokogiri/ffi/structs/xml_element.rb
229
- - lib/nokogiri/ffi/structs/xml_element_content.rb
230
- - lib/nokogiri/ffi/structs/xml_entity.rb
231
- - lib/nokogiri/ffi/structs/xml_enumeration.rb
232
- - lib/nokogiri/ffi/structs/xml_node.rb
233
- - lib/nokogiri/ffi/structs/xml_node_set.rb
234
- - lib/nokogiri/ffi/structs/xml_notation.rb
235
- - lib/nokogiri/ffi/structs/xml_ns.rb
236
- - lib/nokogiri/ffi/structs/xml_parser_context.rb
237
- - lib/nokogiri/ffi/structs/xml_parser_input.rb
238
- - lib/nokogiri/ffi/structs/xml_relax_ng.rb
239
- - lib/nokogiri/ffi/structs/xml_sax_handler.rb
240
- - lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb
241
- - lib/nokogiri/ffi/structs/xml_schema.rb
242
- - lib/nokogiri/ffi/structs/xml_syntax_error.rb
243
- - lib/nokogiri/ffi/structs/xml_text_reader.rb
244
- - lib/nokogiri/ffi/structs/xml_xpath_context.rb
245
- - lib/nokogiri/ffi/structs/xml_xpath_object.rb
246
- - lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb
247
- - lib/nokogiri/ffi/structs/xslt_stylesheet.rb
248
- - lib/nokogiri/ffi/weak_bucket.rb
249
- - lib/nokogiri/ffi/xml/attr.rb
250
- - lib/nokogiri/ffi/xml/attribute_decl.rb
251
- - lib/nokogiri/ffi/xml/cdata.rb
252
- - lib/nokogiri/ffi/xml/comment.rb
253
- - lib/nokogiri/ffi/xml/document.rb
254
- - lib/nokogiri/ffi/xml/document_fragment.rb
255
- - lib/nokogiri/ffi/xml/dtd.rb
256
- - lib/nokogiri/ffi/xml/element_content.rb
257
- - lib/nokogiri/ffi/xml/element_decl.rb
258
- - lib/nokogiri/ffi/xml/entity_decl.rb
259
- - lib/nokogiri/ffi/xml/entity_reference.rb
260
- - lib/nokogiri/ffi/xml/namespace.rb
261
- - lib/nokogiri/ffi/xml/node.rb
262
- - lib/nokogiri/ffi/xml/node_set.rb
263
- - lib/nokogiri/ffi/xml/processing_instruction.rb
264
- - lib/nokogiri/ffi/xml/reader.rb
265
- - lib/nokogiri/ffi/xml/relax_ng.rb
266
- - lib/nokogiri/ffi/xml/sax/parser.rb
267
- - lib/nokogiri/ffi/xml/sax/parser_context.rb
268
- - lib/nokogiri/ffi/xml/sax/push_parser.rb
269
- - lib/nokogiri/ffi/xml/schema.rb
270
- - lib/nokogiri/ffi/xml/syntax_error.rb
271
- - lib/nokogiri/ffi/xml/text.rb
272
- - lib/nokogiri/ffi/xml/xpath.rb
273
- - lib/nokogiri/ffi/xml/xpath_context.rb
274
- - lib/nokogiri/ffi/xslt/stylesheet.rb
275
250
  - lib/nokogiri/html.rb
276
251
  - lib/nokogiri/html/builder.rb
277
252
  - lib/nokogiri/html/document.rb
278
253
  - lib/nokogiri/html/document_fragment.rb
279
254
  - lib/nokogiri/html/element_description.rb
255
+ - lib/nokogiri/html/element_description_defaults.rb
280
256
  - lib/nokogiri/html/entity_lookup.rb
281
257
  - lib/nokogiri/html/sax/parser.rb
282
258
  - lib/nokogiri/html/sax/parser_context.rb
@@ -327,15 +303,11 @@ files:
327
303
  - test/css/test_parser.rb
328
304
  - test/css/test_tokenizer.rb
329
305
  - test/css/test_xpath_visitor.rb
330
- - test/decorators/test_slop.rb
331
- - test/ffi/test_document.rb
332
306
  - test/files/2ch.html
333
307
  - test/files/address_book.rlx
334
308
  - test/files/address_book.xml
335
309
  - test/files/bar/bar.xsd
336
310
  - test/files/dont_hurt_em_why.xml
337
- - test/files/encoding.html
338
- - test/files/encoding.xhtml
339
311
  - test/files/exslt.xml
340
312
  - test/files/exslt.xslt
341
313
  - test/files/foo/foo.xsd
@@ -402,7 +374,6 @@ files:
402
374
  - test/xml/test_text.rb
403
375
  - test/xml/test_unparented_node.rb
404
376
  - test/xml/test_xpath.rb
405
- - test/xslt/test_custom_functions.rb
406
377
  has_rdoc: true
407
378
  homepage: http://nokogiri.org
408
379
  licenses: []
@@ -418,77 +389,82 @@ required_ruby_version: !ruby/object:Gem::Requirement
418
389
  requirements:
419
390
  - - ">="
420
391
  - !ruby/object:Gem::Version
392
+ hash: 3
393
+ segments:
394
+ - 0
421
395
  version: "0"
422
396
  required_rubygems_version: !ruby/object:Gem::Requirement
423
397
  none: false
424
398
  requirements:
425
- - - ">="
399
+ - - ">"
426
400
  - !ruby/object:Gem::Version
427
- version: "0"
401
+ hash: 25
402
+ segments:
403
+ - 1
404
+ - 3
405
+ - 1
406
+ version: 1.3.1
428
407
  requirements: []
429
408
 
430
409
  rubyforge_project: nokogiri
431
- rubygems_version: 1.5.2
410
+ rubygems_version: 1.3.7
432
411
  signing_key:
433
412
  specification_version: 3
434
413
  summary: "Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
435
414
  test_files:
436
- - test/test_convert_xpath.rb
437
- - test/test_soap4r_sax.rb
438
- - test/test_memory_leak.rb
439
- - test/test_nokogiri.rb
440
- - test/test_css_cache.rb
441
415
  - test/css/test_nthiness.rb
442
- - test/css/test_xpath_visitor.rb
443
416
  - test/css/test_parser.rb
444
417
  - test/css/test_tokenizer.rb
445
- - test/decorators/test_slop.rb
418
+ - test/css/test_xpath_visitor.rb
419
+ - test/html/sax/test_parser.rb
420
+ - test/html/sax/test_parser_context.rb
421
+ - test/html/test_builder.rb
446
422
  - test/html/test_document.rb
447
423
  - test/html/test_document_encoding.rb
448
- - test/html/test_named_characters.rb
449
424
  - test/html/test_document_fragment.rb
425
+ - test/html/test_element_description.rb
426
+ - test/html/test_named_characters.rb
450
427
  - test/html/test_node.rb
451
- - test/html/test_builder.rb
452
- - test/html/sax/test_parser_context.rb
453
- - test/html/sax/test_parser.rb
454
428
  - test/html/test_node_encoding.rb
455
- - test/html/test_element_description.rb
456
- - test/ffi/test_document.rb
429
+ - test/test_convert_xpath.rb
430
+ - test/test_css_cache.rb
431
+ - test/test_encoding_handler.rb
432
+ - test/test_memory_leak.rb
433
+ - test/test_nokogiri.rb
457
434
  - test/test_reader.rb
458
- - test/xml/test_parse_options.rb
459
- - test/xml/test_unparented_node.rb
460
- - test/xml/test_element_decl.rb
461
- - test/xml/test_document.rb
462
- - test/xml/test_dtd.rb
463
- - test/xml/test_document_encoding.rb
464
- - test/xml/test_entity_decl.rb
465
- - test/xml/test_dtd_encoding.rb
435
+ - test/test_soap4r_sax.rb
436
+ - test/test_xslt_transforms.rb
466
437
  - test/xml/node/test_save_options.rb
467
438
  - test/xml/node/test_subclass.rb
468
- - test/xml/test_document_fragment.rb
469
- - test/xml/test_cdata.rb
470
- - test/xml/test_text.rb
471
- - test/xml/test_reader_encoding.rb
472
- - test/xml/test_xpath.rb
473
- - test/xml/test_element_content.rb
474
- - test/xml/test_node.rb
475
- - test/xml/test_builder.rb
476
- - test/xml/sax/test_push_parser.rb
477
- - test/xml/sax/test_parser_context.rb
478
439
  - test/xml/sax/test_parser.rb
479
- - test/xml/test_schema.rb
480
- - test/xml/test_node_set.rb
440
+ - test/xml/sax/test_parser_context.rb
441
+ - test/xml/sax/test_push_parser.rb
481
442
  - test/xml/test_attr.rb
482
- - test/xml/test_processing_instruction.rb
483
- - test/xml/test_node_encoding.rb
484
- - test/xml/test_syntax_error.rb
443
+ - test/xml/test_attribute_decl.rb
444
+ - test/xml/test_builder.rb
445
+ - test/xml/test_cdata.rb
485
446
  - test/xml/test_comment.rb
447
+ - test/xml/test_document.rb
448
+ - test/xml/test_document_encoding.rb
449
+ - test/xml/test_document_fragment.rb
450
+ - test/xml/test_dtd.rb
451
+ - test/xml/test_dtd_encoding.rb
452
+ - test/xml/test_element_content.rb
453
+ - test/xml/test_element_decl.rb
454
+ - test/xml/test_entity_decl.rb
486
455
  - test/xml/test_entity_reference.rb
487
- - test/xml/test_node_reparenting.rb
488
- - test/xml/test_attribute_decl.rb
489
- - test/xml/test_relax_ng.rb
490
456
  - test/xml/test_namespace.rb
457
+ - test/xml/test_node.rb
491
458
  - test/xml/test_node_attributes.rb
492
- - test/test_xslt_transforms.rb
493
- - test/xslt/test_custom_functions.rb
494
- - test/test_encoding_handler.rb
459
+ - test/xml/test_node_encoding.rb
460
+ - test/xml/test_node_reparenting.rb
461
+ - test/xml/test_node_set.rb
462
+ - test/xml/test_parse_options.rb
463
+ - test/xml/test_processing_instruction.rb
464
+ - test/xml/test_reader_encoding.rb
465
+ - test/xml/test_relax_ng.rb
466
+ - test/xml/test_schema.rb
467
+ - test/xml/test_syntax_error.rb
468
+ - test/xml/test_text.rb
469
+ - test/xml/test_unparented_node.rb
470
+ - test/xml/test_xpath.rb