nokogiri 1.7.2 → 1.8.0

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.cross_rubies +4 -4
  3. data/.travis.yml +43 -24
  4. data/CHANGELOG.md +54 -6
  5. data/Gemfile +8 -7
  6. data/Gemfile-libxml-ruby +3 -0
  7. data/LICENSE-DEPENDENCIES.md +1612 -0
  8. data/{LICENSE.txt → LICENSE.md} +1 -1
  9. data/Manifest.txt +5 -8
  10. data/README.md +8 -5
  11. data/Rakefile +15 -31
  12. data/appveyor.yml +2 -0
  13. data/dependencies.yml +12 -7
  14. data/ext/nokogiri/extconf.rb +12 -17
  15. data/ext/nokogiri/nokogiri.h +0 -10
  16. data/ext/nokogiri/xml_attr.c +12 -8
  17. data/ext/nokogiri/xml_node.c +17 -14
  18. data/ext/nokogiri/xml_sax_push_parser.c +56 -12
  19. data/lib/nokogiri/html/sax/parser.rb +10 -0
  20. data/lib/nokogiri/version.rb +5 -4
  21. data/lib/nokogiri/xml/document.rb +9 -9
  22. data/lib/nokogiri/xml/node.rb +7 -7
  23. data/lib/nokogiri/xml/node_set.rb +12 -7
  24. data/lib/nokogiri/xml/sax/parser.rb +6 -7
  25. data/lib/nokogiri/xml/searchable.rb +34 -25
  26. data/lib/nokogiri/xml/syntax_error.rb +24 -1
  27. data/test/decorators/test_slop.rb +4 -1
  28. data/test/helper.rb +10 -0
  29. data/test/html/sax/test_parser.rb +27 -0
  30. data/test/html/test_document.rb +12 -1
  31. data/test/html/test_document_encoding.rb +1 -3
  32. data/test/html/test_document_fragment.rb +3 -0
  33. data/test/xml/sax/test_push_parser.rb +48 -0
  34. data/test/xml/test_attr.rb +7 -0
  35. data/test/xml/test_document.rb +1 -1
  36. data/test/xml/test_document_fragment.rb +27 -0
  37. data/test/xml/test_entity_reference.rb +2 -2
  38. data/test/xml/test_node.rb +12 -15
  39. data/test/xml/test_node_reparenting.rb +14 -0
  40. data/test/xml/test_node_set.rb +8 -6
  41. data/test/xml/test_reader.rb +19 -0
  42. data/test/xml/test_syntax_error.rb +21 -15
  43. data/test/xml/test_unparented_node.rb +54 -11
  44. data/test/xml/test_xpath.rb +23 -6
  45. metadata +31 -19
  46. data/suppressions/nokogiri_ree-1.8.7.358.supp +0 -61
  47. data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
  48. data/suppressions/nokogiri_ruby-1.9.2.320.supp +0 -28
  49. data/suppressions/nokogiri_ruby-1.9.3.327.supp +0 -28
  50. data/test_all +0 -105
@@ -56,6 +56,10 @@ module Nokogiri
56
56
  def value
57
57
  123.456
58
58
  end
59
+
60
+ def anint
61
+ 1230456
62
+ end
59
63
  }.new
60
64
  end
61
65
 
@@ -200,12 +204,7 @@ module Nokogiri
200
204
  end
201
205
  stop = Time.now
202
206
  elapsed_time = stop - start
203
- time_limit =
204
- if ENV['TRAVIS'] && ENV['CI']
205
- 20 # Travis CI box slowness
206
- else
207
- 10
208
- end
207
+ time_limit = 20
209
208
  assert_send [elapsed_time, :<, time_limit], "XPath is taking too long"
210
209
  end
211
210
 
@@ -346,6 +345,15 @@ module Nokogiri
346
345
  assert_equal 123.456, value
347
346
  end
348
347
 
348
+ def test_custom_xpath_without_arguments_returning_int
349
+ if Nokogiri.uses_libxml?
350
+ value = @xml.xpath('anint()', @handler)
351
+ else
352
+ value = @xml.xpath('nokogiri:anint()', @ns, @handler)
353
+ end
354
+ assert_equal 1230456, value
355
+ end
356
+
349
357
  def test_custom_xpath_with_bullshit_arguments
350
358
  xml = %q{<foo> </foo>}
351
359
  doc = Nokogiri::XML.parse(xml)
@@ -440,6 +448,15 @@ XML
440
448
  assert_equal 1, sections.size
441
449
  assert_equal "[TEXT_INSIDE_SECTION]", sections.first.text
442
450
  end
451
+
452
+ def test_xpath_syntax_error
453
+ doc = Nokogiri::XML('<ns1:Root></ns1:Root>')
454
+ begin
455
+ doc.xpath('//ns1:Root')
456
+ rescue => e
457
+ assert_equal false, e.message.include?('0:0')
458
+ end
459
+ end
443
460
  end
444
461
  end
445
462
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2017-05-09 00:00:00.000000000 Z
15
+ date: 2017-06-05 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: mini_portile2
@@ -20,14 +20,14 @@ dependencies:
20
20
  requirements:
21
21
  - - "~>"
22
22
  - !ruby/object:Gem::Version
23
- version: 2.1.0
23
+ version: 2.2.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - "~>"
29
29
  - !ruby/object:Gem::Version
30
- version: 2.1.0
30
+ version: 2.2.0
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: hoe-bundler
33
33
  requirement: !ruby/object:Gem::Requirement
@@ -48,14 +48,14 @@ dependencies:
48
48
  requirements:
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
- version: 1.2.1
51
+ version: 1.3.0
52
52
  type: :development
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - "~>"
57
57
  - !ruby/object:Gem::Version
58
- version: 1.2.1
58
+ version: 1.3.0
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: hoe-gemspec
61
61
  requirement: !ruby/object:Gem::Requirement
@@ -104,42 +104,42 @@ dependencies:
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 10.5.0
107
+ version: '12.0'
108
108
  type: :development
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
- version: 10.5.0
114
+ version: '12.0'
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: rake-compiler
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: 0.9.2
121
+ version: 1.0.3
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: 0.9.2
128
+ version: 1.0.3
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: rake-compiler-dock
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - "~>"
134
134
  - !ruby/object:Gem::Version
135
- version: 0.5.1
135
+ version: 0.6.0
136
136
  type: :development
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  requirements:
140
140
  - - "~>"
141
141
  - !ruby/object:Gem::Version
142
- version: 0.5.1
142
+ version: 0.6.0
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: racc
145
145
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +168,20 @@ dependencies:
168
168
  - - "~>"
169
169
  - !ruby/object:Gem::Version
170
170
  version: 1.0.5
171
+ - !ruby/object:Gem::Dependency
172
+ name: concourse
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '0.11'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '0.11'
171
185
  - !ruby/object:Gem::Dependency
172
186
  name: rdoc
173
187
  requirement: !ruby/object:Gem::Requirement
@@ -214,7 +228,8 @@ extra_rdoc_files:
214
228
  - CHANGELOG.md
215
229
  - CONTRIBUTING.md
216
230
  - C_CODING_STYLE.rdoc
217
- - LICENSE.txt
231
+ - LICENSE-DEPENDENCIES.md
232
+ - LICENSE.md
218
233
  - Manifest.txt
219
234
  - README.md
220
235
  - ROADMAP.md
@@ -265,7 +280,9 @@ files:
265
280
  - CONTRIBUTING.md
266
281
  - C_CODING_STYLE.rdoc
267
282
  - Gemfile
268
- - LICENSE.txt
283
+ - Gemfile-libxml-ruby
284
+ - LICENSE-DEPENDENCIES.md
285
+ - LICENSE.md
269
286
  - Manifest.txt
270
287
  - README.md
271
288
  - ROADMAP.md
@@ -417,10 +434,6 @@ files:
417
434
  - ports/archives/libxml2-2.9.4.tar.gz
418
435
  - ports/archives/libxslt-1.1.29.tar.gz
419
436
  - suppressions/README.txt
420
- - suppressions/nokogiri_ree-1.8.7.358.supp
421
- - suppressions/nokogiri_ruby-1.8.7.370.supp
422
- - suppressions/nokogiri_ruby-1.9.2.320.supp
423
- - suppressions/nokogiri_ruby-1.9.3.327.supp
424
437
  - tasks/test.rb
425
438
  - test/css/test_nthiness.rb
426
439
  - test/css/test_parser.rb
@@ -530,7 +543,6 @@ files:
530
543
  - test/xml/test_xpath.rb
531
544
  - test/xslt/test_custom_functions.rb
532
545
  - test/xslt/test_exception_handling.rb
533
- - test_all
534
546
  homepage: http://nokogiri.org
535
547
  licenses:
536
548
  - MIT
@@ -1,61 +0,0 @@
1
- {
2
- <insert_a_suppression_name_here>
3
- Memcheck:Addr8
4
- fun:garbage_collect
5
- fun:rb_newobj
6
- fun:rb_node_newnode
7
- fun:ruby_yyparse
8
- fun:yycompile
9
- fun:load_file
10
- fun:rb_load
11
- fun:rb_require_safe
12
- fun:rb_call0
13
- fun:rb_call
14
- fun:eval_fcall
15
- fun:rb_eval
16
- fun:rb_load
17
- fun:rb_require_safe
18
- fun:rb_call0
19
- fun:rb_call
20
- fun:eval_fcall
21
- fun:rb_eval
22
- fun:rb_load
23
- fun:rb_require_safe
24
- fun:rb_protect
25
- fun:require_libraries
26
- fun:proc_options
27
- fun:ruby_process_options
28
- }
29
- {
30
- <insert_a_suppression_name_here>
31
- Memcheck:Addr8
32
- fun:garbage_collect_0
33
- fun:rb_newobj
34
- fun:rb_node_newnode
35
- fun:ruby_yyparse
36
- fun:yycompile
37
- fun:load_file
38
- fun:rb_load
39
- fun:rb_require_safe
40
- fun:rb_call0
41
- fun:rb_call
42
- fun:eval_fcall
43
- fun:rb_eval
44
- fun:rb_load
45
- fun:rb_require_safe
46
- fun:rb_call0
47
- fun:rb_call
48
- fun:eval_fcall
49
- fun:rb_eval
50
- fun:rb_load
51
- fun:rb_require_safe
52
- fun:rb_protect
53
- fun:require_libraries
54
- fun:proc_options
55
- fun:ruby_process_options
56
- }
57
- {
58
- <insert_a_suppression_name_here>
59
- Memcheck:Addr8
60
- fun:rb_gc_wipe_stack
61
- }
File without changes
@@ -1,28 +0,0 @@
1
- {
2
- <insert_a_suppression_name_here>
3
- Memcheck:Addr4
4
- fun:glob_helper
5
- fun:ruby_glob0
6
- fun:rb_push_glob
7
- fun:vm_call_method
8
- fun:vm_exec_core
9
- fun:vm_exec
10
- fun:rb_yield
11
- fun:rb_ary_each
12
- fun:vm_call_method
13
- fun:vm_exec_core
14
- fun:vm_exec
15
- fun:vm_call0
16
- fun:rb_iterate
17
- fun:rb_block_call
18
- fun:enum_find_all
19
- fun:vm_call_method
20
- fun:vm_exec_core
21
- fun:vm_exec
22
- fun:vm_call0
23
- fun:rb_class_new_instance
24
- fun:vm_call_method
25
- fun:vm_exec_core
26
- fun:vm_exec
27
- fun:vm_call0
28
- }
@@ -1,28 +0,0 @@
1
- {
2
- <insert_a_suppression_name_here>
3
- Memcheck:Addr4
4
- fun:glob_helper
5
- fun:ruby_glob0
6
- fun:rb_push_glob
7
- fun:vm_call_method
8
- fun:vm_exec_core
9
- fun:vm_exec
10
- fun:rb_yield
11
- fun:rb_ary_each
12
- fun:vm_call_method
13
- fun:vm_exec_core
14
- fun:vm_exec
15
- fun:vm_call0
16
- fun:rb_iterate
17
- fun:rb_block_call
18
- fun:enum_find_all
19
- fun:vm_call_method
20
- fun:vm_exec_core
21
- fun:vm_exec
22
- fun:vm_call0
23
- fun:rb_class_new_instance
24
- fun:vm_call_method
25
- fun:vm_exec_core
26
- fun:vm_exec
27
- fun:vm_call0
28
- }
data/test_all DELETED
@@ -1,105 +0,0 @@
1
- #! /usr/bin/env bash
2
- #
3
- # script to run tests on all relevant rubies, and valgrind on supported rubies.
4
- # outputs tests to `test.log` and valgrind output to `valgrind.log`.
5
- #
6
- # requires `rvm` to be installed. sorry about that, multiruby dudes.
7
- #
8
- # it's worth periodically using hoe-debugger's ability to generate
9
- # valgrind suppression files to remove spurious valgrind messages
10
- # (e.g., 1.9.3's glob_helper). ["rake test:valgrind:suppression"]
11
- #
12
-
13
- # I'd add rubinius, but rvm errors when building it on my machine. :(
14
- RUBIES="\
15
- ruby-2.4 \
16
- ruby-2.3 \
17
- ruby-2.2 \
18
- ruby-2.1 \
19
- jruby-9.1.6.0 \
20
- jruby-1.7.19
21
- "
22
-
23
- TEST_LOG=test.log
24
- VALGRIND_LOG=valgrind.log
25
-
26
- # make sure we can test with libxml-ruby installed
27
- export BUNDLE_GEMFILE="$(pwd)/Gemfile_test_all"
28
- cat > $BUNDLE_GEMFILE <<EOF
29
- gem "libxml-ruby", :platform => :mri, :require => false
30
- eval_gemfile File.join(File.dirname(ENV['BUNDLE_GEMFILE']),"Gemfile")
31
- EOF
32
-
33
- # Load RVM into a shell session *as a function*
34
- if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
35
- source "$HOME/.rvm/scripts/rvm"
36
- elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
37
- source "/usr/local/rvm/scripts/rvm"
38
- else
39
- echo "ERROR: An RVM installation was not found.\n"
40
- fi
41
-
42
- > $TEST_LOG
43
- > $VALGRIND_LOG
44
- set -o errexit
45
-
46
- function rvm_use {
47
- current_ruby=$1
48
- rvm use "${1}@nokogiri" --create
49
- }
50
-
51
- function clean {
52
- bundle exec rake clean clobber 2>&1 > /dev/null
53
- }
54
-
55
- function compile {
56
- echo "** compiling ..."
57
- bundle exec rake compile 2>&1 > /dev/null
58
- }
59
-
60
- # quick check that we have All The Rubies
61
- for ruby in $RUBIES ; do
62
- rvm_use ${ruby}
63
- done
64
-
65
- for ruby in $RUBIES ; do
66
- rvm_use ${ruby}
67
- if ! [[ $(bundle -v) =~ "1.12." ]] ; then
68
- yes | gem uninstall --force bundler
69
- gem install bundler -v 1.12.5
70
- bundle -v
71
- fi
72
- bundle install --quiet --local || bundle install
73
- clean
74
- done
75
-
76
- for ruby in $RUBIES ; do
77
- rvm_use ${ruby}
78
- echo -e "**\n** testing nokogiri on ${ruby}\n**"
79
- clean
80
- compile
81
- echo "** running tests ..."
82
- bundle exec rake test 2>&1
83
- if [[ ! $ruby =~ "jruby" ]] ; then
84
- echo "** running tests again with libxml-ruby loaded ..."
85
- if ! gem list libxml-ruby | fgrep 2.8.0 ; then
86
- gem install libxml-ruby
87
- fi
88
- bundle exec rake test:libxml-ruby 2>&1
89
- fi
90
- clean
91
- done | tee -a $TEST_LOG
92
-
93
- for ruby in $RUBIES ; do
94
- if [[ ! $ruby =~ "jruby" ]] ; then
95
- rvm_use ${ruby}
96
- echo -e "**\n** nokogiri prerelease: ${ruby}\n**"
97
- clean
98
- compile
99
- echo "** running valgrind on tests ..."
100
- bundle exec rake test:valgrind 2>&1
101
- echo "** running valgrind again with libxml-ruby loaded ..."
102
- bundle exec rake test:valgrind:libxml-ruby 2>&1
103
- clean
104
- fi
105
- done | tee -a $VALGRIND_LOG