nokogiri 1.8.5 → 1.9.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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/ext/nokogiri/extconf.rb +10 -6
  4. data/ext/nokogiri/xml_attr.c +26 -21
  5. data/ext/nokogiri/xml_document.c +4 -1
  6. data/ext/nokogiri/xml_namespace.c +3 -3
  7. data/ext/nokogiri/xml_namespace.h +1 -2
  8. data/ext/nokogiri/xml_node.c +55 -15
  9. data/lib/nokogiri/css/parser.rb +61 -61
  10. data/lib/nokogiri/version.rb +1 -1
  11. data/lib/nokogiri/xml/document_fragment.rb +11 -0
  12. data/lib/nokogiri/xml/node.rb +12 -0
  13. data/lib/nokogiri/xml/node_set.rb +4 -8
  14. metadata +17 -153
  15. data/.autotest +0 -22
  16. data/.cross_rubies +0 -8
  17. data/.editorconfig +0 -17
  18. data/.gemtest +0 -0
  19. data/.travis.yml +0 -63
  20. data/CHANGELOG.md +0 -1368
  21. data/CONTRIBUTING.md +0 -42
  22. data/C_CODING_STYLE.rdoc +0 -33
  23. data/Gemfile +0 -23
  24. data/Gemfile-libxml-ruby +0 -3
  25. data/Manifest.txt +0 -370
  26. data/ROADMAP.md +0 -111
  27. data/Rakefile +0 -348
  28. data/SECURITY.md +0 -19
  29. data/STANDARD_RESPONSES.md +0 -47
  30. data/Y_U_NO_GEMSPEC.md +0 -155
  31. data/appveyor.yml +0 -29
  32. data/build_all +0 -44
  33. data/patches/sort-patches-by-date +0 -25
  34. data/suppressions/README.txt +0 -1
  35. data/suppressions/nokogiri_ruby-2.supp +0 -10
  36. data/tasks/test.rb +0 -100
  37. data/test/css/test_nthiness.rb +0 -226
  38. data/test/css/test_parser.rb +0 -386
  39. data/test/css/test_tokenizer.rb +0 -215
  40. data/test/css/test_xpath_visitor.rb +0 -96
  41. data/test/decorators/test_slop.rb +0 -23
  42. data/test/files/2ch.html +0 -108
  43. data/test/files/GH_1042.html +0 -18
  44. data/test/files/address_book.rlx +0 -12
  45. data/test/files/address_book.xml +0 -10
  46. data/test/files/atom.xml +0 -344
  47. data/test/files/bar/bar.xsd +0 -4
  48. data/test/files/bogus.xml +0 -0
  49. data/test/files/dont_hurt_em_why.xml +0 -422
  50. data/test/files/encoding.html +0 -82
  51. data/test/files/encoding.xhtml +0 -84
  52. data/test/files/exslt.xml +0 -8
  53. data/test/files/exslt.xslt +0 -35
  54. data/test/files/foo/foo.xsd +0 -4
  55. data/test/files/metacharset.html +0 -10
  56. data/test/files/namespace_pressure_test.xml +0 -1684
  57. data/test/files/noencoding.html +0 -47
  58. data/test/files/po.xml +0 -32
  59. data/test/files/po.xsd +0 -66
  60. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  61. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  62. data/test/files/saml/xenc_schema.xsd +0 -146
  63. data/test/files/saml/xmldsig_schema.xsd +0 -318
  64. data/test/files/shift_jis.html +0 -10
  65. data/test/files/shift_jis.xml +0 -5
  66. data/test/files/shift_jis_no_charset.html +0 -9
  67. data/test/files/slow-xpath.xml +0 -25509
  68. data/test/files/snuggles.xml +0 -3
  69. data/test/files/staff.dtd +0 -10
  70. data/test/files/staff.xml +0 -59
  71. data/test/files/staff.xslt +0 -32
  72. data/test/files/test_document_url/bar.xml +0 -2
  73. data/test/files/test_document_url/document.dtd +0 -4
  74. data/test/files/test_document_url/document.xml +0 -6
  75. data/test/files/tlm.html +0 -851
  76. data/test/files/to_be_xincluded.xml +0 -2
  77. data/test/files/valid_bar.xml +0 -2
  78. data/test/files/xinclude.xml +0 -4
  79. data/test/helper.rb +0 -271
  80. data/test/html/sax/test_parser.rb +0 -168
  81. data/test/html/sax/test_parser_context.rb +0 -46
  82. data/test/html/sax/test_parser_text.rb +0 -163
  83. data/test/html/sax/test_push_parser.rb +0 -87
  84. data/test/html/test_attributes.rb +0 -85
  85. data/test/html/test_builder.rb +0 -164
  86. data/test/html/test_document.rb +0 -712
  87. data/test/html/test_document_encoding.rb +0 -143
  88. data/test/html/test_document_fragment.rb +0 -310
  89. data/test/html/test_element_description.rb +0 -105
  90. data/test/html/test_named_characters.rb +0 -14
  91. data/test/html/test_node.rb +0 -212
  92. data/test/html/test_node_encoding.rb +0 -91
  93. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  94. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  95. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  96. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  97. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  98. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  99. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  100. data/test/test_convert_xpath.rb +0 -135
  101. data/test/test_css_cache.rb +0 -47
  102. data/test/test_encoding_handler.rb +0 -48
  103. data/test/test_memory_leak.rb +0 -156
  104. data/test/test_nokogiri.rb +0 -138
  105. data/test/test_soap4r_sax.rb +0 -52
  106. data/test/test_xslt_transforms.rb +0 -314
  107. data/test/xml/node/test_save_options.rb +0 -28
  108. data/test/xml/node/test_subclass.rb +0 -44
  109. data/test/xml/sax/test_parser.rb +0 -402
  110. data/test/xml/sax/test_parser_context.rb +0 -115
  111. data/test/xml/sax/test_parser_text.rb +0 -202
  112. data/test/xml/sax/test_push_parser.rb +0 -265
  113. data/test/xml/test_attr.rb +0 -74
  114. data/test/xml/test_attribute_decl.rb +0 -86
  115. data/test/xml/test_builder.rb +0 -341
  116. data/test/xml/test_c14n.rb +0 -180
  117. data/test/xml/test_cdata.rb +0 -54
  118. data/test/xml/test_comment.rb +0 -40
  119. data/test/xml/test_document.rb +0 -982
  120. data/test/xml/test_document_encoding.rb +0 -31
  121. data/test/xml/test_document_fragment.rb +0 -298
  122. data/test/xml/test_dtd.rb +0 -187
  123. data/test/xml/test_dtd_encoding.rb +0 -31
  124. data/test/xml/test_element_content.rb +0 -56
  125. data/test/xml/test_element_decl.rb +0 -73
  126. data/test/xml/test_entity_decl.rb +0 -122
  127. data/test/xml/test_entity_reference.rb +0 -262
  128. data/test/xml/test_namespace.rb +0 -96
  129. data/test/xml/test_node.rb +0 -1325
  130. data/test/xml/test_node_attributes.rb +0 -115
  131. data/test/xml/test_node_encoding.rb +0 -75
  132. data/test/xml/test_node_inheritance.rb +0 -32
  133. data/test/xml/test_node_reparenting.rb +0 -592
  134. data/test/xml/test_node_set.rb +0 -809
  135. data/test/xml/test_parse_options.rb +0 -64
  136. data/test/xml/test_processing_instruction.rb +0 -30
  137. data/test/xml/test_reader.rb +0 -620
  138. data/test/xml/test_reader_encoding.rb +0 -134
  139. data/test/xml/test_relax_ng.rb +0 -60
  140. data/test/xml/test_schema.rb +0 -142
  141. data/test/xml/test_syntax_error.rb +0 -36
  142. data/test/xml/test_text.rb +0 -60
  143. data/test/xml/test_unparented_node.rb +0 -483
  144. data/test/xml/test_xinclude.rb +0 -83
  145. data/test/xml/test_xpath.rb +0 -470
  146. data/test/xslt/test_custom_functions.rb +0 -133
  147. data/test/xslt/test_exception_handling.rb +0 -37
@@ -1,115 +0,0 @@
1
- require "helper"
2
-
3
- module Nokogiri
4
- module XML
5
- class TestNodeAttributes < Nokogiri::TestCase
6
- def test_attribute_with_ns
7
- doc = Nokogiri::XML <<-eoxml
8
- <root xmlns:tlm='http://tenderlovemaking.com/'>
9
- <node tlm:foo='bar' foo='baz' />
10
- </root>
11
- eoxml
12
-
13
- node = doc.at('node')
14
-
15
- assert_equal 'bar',
16
- node.attribute_with_ns('foo', 'http://tenderlovemaking.com/').value
17
- end
18
-
19
- def test_prefixed_attributes
20
- doc = Nokogiri::XML "<root xml:lang='en-GB' />"
21
-
22
- node = doc.root
23
-
24
- assert_equal 'en-GB', node['xml:lang']
25
- assert_equal 'en-GB', node.attributes['lang'].value
26
- assert_nil node['lang']
27
- end
28
-
29
- def test_unknown_namespace_prefix_should_not_be_removed
30
- doc = Nokogiri::XML ''
31
- elem = doc.create_element 'foo', 'bar:attr' => 'something'
32
- assert_equal elem.attribute_nodes.first.name, 'bar:attr'
33
- end
34
-
35
- def test_set_prefixed_attributes
36
- doc = Nokogiri::XML %Q{<root xmlns:foo="x"/>}
37
-
38
- node = doc.root
39
-
40
- node['xml:lang'] = 'en-GB'
41
- node['foo:bar'] = 'bazz'
42
-
43
- assert_equal 'en-GB', node['xml:lang']
44
- assert_equal 'en-GB', node.attributes['lang'].value
45
- assert_nil node['lang']
46
- assert_equal 'http://www.w3.org/XML/1998/namespace', node.attributes['lang'].namespace.href
47
-
48
- assert_equal 'bazz', node['foo:bar']
49
- assert_equal 'bazz', node.attributes['bar'].value
50
- assert_nil node['bar']
51
- assert_equal 'x', node.attributes['bar'].namespace.href
52
- end
53
-
54
- def test_append_child_namespace_definitions_prefixed_attributes
55
- doc = Nokogiri::XML "<root/>"
56
- node = doc.root
57
-
58
- node['xml:lang'] = 'en-GB'
59
-
60
- assert_equal [], node.namespace_definitions.map(&:prefix)
61
-
62
- child_node = Nokogiri::XML::Node.new 'foo', doc
63
- node << child_node
64
-
65
- assert_equal [], node.namespace_definitions.map(&:prefix)
66
- end
67
-
68
- def test_append_child_element_with_prefixed_attributes
69
- doc = Nokogiri::XML "<root/>"
70
- node = doc.root
71
-
72
- assert_equal [], node.namespace_definitions.map(&:prefix)
73
-
74
-
75
- # assert_nothing_raised do
76
- child_node = Nokogiri::XML::Node.new 'foo', doc
77
- child_node['xml:lang'] = 'en-GB'
78
-
79
- node << child_node
80
- # end
81
-
82
- assert_equal [], child_node.namespace_definitions.map(&:prefix)
83
- end
84
-
85
- def test_namespace_key?
86
- doc = Nokogiri::XML <<-eoxml
87
- <root xmlns:tlm='http://tenderlovemaking.com/'>
88
- <node tlm:foo='bar' foo='baz' />
89
- </root>
90
- eoxml
91
-
92
- node = doc.at('node')
93
-
94
- assert node.namespaced_key?('foo', 'http://tenderlovemaking.com/')
95
- assert node.namespaced_key?('foo', nil)
96
- assert !node.namespaced_key?('foo', 'foo')
97
- end
98
-
99
- def test_set_attribute_frees_nodes # testing a segv
100
- skip("JRuby doesn't do GC.") if Nokogiri.jruby?
101
- document = Nokogiri::XML.parse("<foo></foo>")
102
-
103
- node = document.root
104
- node['visible'] = 'foo'
105
- attribute = node.attribute('visible')
106
- text = Nokogiri::XML::Text.new 'bar', document
107
- attribute.add_child(text)
108
-
109
- stress_memory_while do
110
- node['visible'] = 'attr'
111
- end
112
- end
113
- end
114
- end
115
- end
@@ -1,75 +0,0 @@
1
- # encoding: UTF-8
2
- require "helper"
3
-
4
- module Nokogiri
5
- module XML
6
- class TestNodeEncoding < Nokogiri::TestCase
7
- def test_serialize_encoding_xml
8
- @xml = Nokogiri::XML(File.open(SHIFT_JIS_XML))
9
- assert_equal @xml.encoding.downcase,
10
- @xml.serialize.encoding.name.downcase
11
-
12
- @doc = Nokogiri::XML(@xml.serialize)
13
- assert_equal @xml.serialize, @doc.serialize
14
- end
15
-
16
- def test_default_encoding
17
- doc = Nokogiri::XML(VEHICLE_XML)
18
- assert_nil doc.encoding
19
- assert_equal 'UTF-8', doc.serialize.encoding.name
20
- end
21
-
22
- def test_encoding_GH_1113
23
- utf8 = '<frag>shahid ὡ 𐄣 𢂁</frag>'
24
- hex = '<frag>shahid &#x1f61; &#x10123; &#x22081;</frag>'
25
- decimal = '<frag>shahid &#8033; &#65827; &#139393;</frag>'
26
- expected = Nokogiri.jruby? ? hex : decimal
27
-
28
- frag = Nokogiri::XML(utf8, nil, 'UTF-8', Nokogiri::XML::ParseOptions::STRICT)
29
- assert_equal utf8, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
30
-
31
- frag = Nokogiri::XML(expected, nil, 'UTF-8', Nokogiri::XML::ParseOptions::STRICT)
32
- assert_equal utf8, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
33
-
34
- frag = Nokogiri::XML(expected, nil, 'US-ASCII', Nokogiri::XML::ParseOptions::STRICT)
35
- assert_equal expected, frag.to_xml.sub(/^<.xml[^>]*>\n/m, '').strip
36
- end
37
-
38
- VEHICLE_XML = <<-eoxml
39
- <root>
40
- <car xmlns:part="http://general-motors.com/">
41
- <part:tire>Michelin Model XGV</part:tire>
42
- </car>
43
- <bicycle xmlns:part="http://schwinn.com/">
44
- <part:tire>I'm a bicycle tire!</part:tire>
45
- </bicycle>
46
- </root>
47
- eoxml
48
-
49
- def test_namespace
50
- doc = Nokogiri::XML(VEHICLE_XML.encode('Shift_JIS'), nil, 'Shift_JIS')
51
- assert_equal 'Shift_JIS', doc.encoding
52
- n = doc.xpath('//part:tire', { 'part' => 'http://schwinn.com/' }).first
53
- assert n
54
- assert_equal 'UTF-8', n.namespace.href.encoding.name
55
- assert_equal 'UTF-8', n.namespace.prefix.encoding.name
56
- end
57
-
58
- def test_namespace_as_hash
59
- doc = Nokogiri::XML(VEHICLE_XML.encode('Shift_JIS'), nil, 'Shift_JIS')
60
- assert_equal 'Shift_JIS', doc.encoding
61
- assert n = doc.xpath('//car').first
62
-
63
- n.namespace_definitions.each do |nd|
64
- assert_equal 'UTF-8', nd.href.encoding.name
65
- assert_equal 'UTF-8', nd.prefix.encoding.name
66
- end
67
-
68
- n.namespaces.each do |k,v|
69
- assert_equal 'UTF-8', k.encoding.name
70
- assert_equal 'UTF-8', v.encoding.name
71
- end
72
- end
73
- end
74
- end
75
- end
@@ -1,32 +0,0 @@
1
- # issue#560
2
-
3
- require 'helper'
4
-
5
- module Nokogiri
6
- module XML
7
- class TestNodeInheritance < Nokogiri::TestCase
8
- MyNode = Class.new Nokogiri::XML::Node
9
- def setup
10
- super
11
- @node = MyNode.new 'foo', Nokogiri::XML::Document.new
12
- @node['foo'] = 'bar'
13
- end
14
-
15
- def test_node_name
16
- assert @node.name == 'foo'
17
- end
18
-
19
- def test_node_writing_an_attribute_accessing_via_attributes
20
- assert @node.attributes['foo']
21
- end
22
-
23
- def test_node_writing_an_attribute_accessing_via_key
24
- assert @node.key? 'foo'
25
- end
26
-
27
- def test_node_writing_an_attribute_accessing_via_brackets
28
- assert @node['foo'] == 'bar'
29
- end
30
- end
31
- end
32
- end