grell 1.6.7 → 1.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 416346b7f2b8e8fe95ce0269599227929be4360f
4
- data.tar.gz: 98b06e25d9d87e926a263d28023a2e0f5a22c24e
3
+ metadata.gz: 4fcc56b727dfa90261c133037100f70617f15fed
4
+ data.tar.gz: 3e7d2a46160b4d8406a76b9190b8fdb64e4a0cf4
5
5
  SHA512:
6
- metadata.gz: c435a95ee0d6a6116999e7d916db607ae16eab5f6cdad379d04fdc6e7160b1ff5420460b6c06c87bd39f1ee27a4451e22f10c565ea756690b1833afb093a8c4d
7
- data.tar.gz: 65766dbde21e449906daaf5661d2a74064f05b286033461461196db11345df31bb7a7ca130e6d9b29e6384019fc32d6ea2b27fbe87215f9fb18111e5f475c0f9
6
+ metadata.gz: 1cd4529624bd1d7d8482ab3d30c408c9a3452af73375ab2688e07d361b0c5cd1246dbcfcf0152b9e4ede8ab1b8e7d568733822471d2df8e815bc8e4e48cbad83
7
+ data.tar.gz: 95c2005f0edf3fcd191fa8f16e23d049f68eb4074cd720042eadbb982ffe7d1947b1bba9fe3737800f5252d504d0eaaed8d6ea1be51c4991231b0f2e453d8c5b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 1.6.8
2
+ * Avoid following disabled links
3
+
1
4
  # 1.6.7
2
5
  * Increment '@times_visited' first to avoid infinite retries when rescuing errors
3
6
 
data/grell.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.required_ruby_version = '>= 1.9.3'
23
23
 
24
24
  spec.add_dependency 'capybara', '~> 2.7'
25
- spec.add_dependency 'poltergeist', '~> 1.9'
25
+ spec.add_dependency 'poltergeist', '~> 1.10'
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 1.6"
28
28
  spec.add_development_dependency "byebug", "~> 4.0"
data/lib/grell/page.rb CHANGED
@@ -206,9 +206,12 @@ module Grell
206
206
  private
207
207
  def all_links
208
208
  # <link> can only be used in the <head> as of: https://developer.mozilla.org/en/docs/Web/HTML/Element/link
209
- anchors_in_body = @rawpage.all_anchors.reject{|anchor| anchor.tag_name == 'link' }
209
+ anchors_in_body = @rawpage.all_anchors.reject { |anchor| anchor.tag_name == 'link' }
210
210
 
211
- unique_links = anchors_in_body.map do |anchor|
211
+ # Do not follow disabled links
212
+ enabled_links = anchors_in_body.reject { |anchor| anchor.disabled? }
213
+
214
+ unique_links = enabled_links.map do |anchor|
212
215
  anchor['href'] || anchor['data-href']
213
216
  end.compact
214
217
 
data/lib/grell/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Grell
2
- VERSION = "1.6.7".freeze
2
+ VERSION = "1.6.8".freeze
3
3
  end
@@ -243,6 +243,29 @@ RSpec.describe Grell::Page do
243
243
  end
244
244
  end
245
245
 
246
+
247
+ context 'navigating to the URL we get page with disabled links' do
248
+ let(:visited) { true }
249
+ let(:status) { 200 }
250
+ let(:body) do
251
+ "<html><head></head><body>
252
+ Hello world!
253
+ <a href=\"/trusmis.html\">trusmis</a>
254
+ <a href=\"/help.html\">help</a>
255
+ <a href=\"javascript: void(0)\">help</a>
256
+ </body></html>"
257
+ end
258
+ let(:links) { ['http://www.example.com/trusmis.html', 'http://www.example.com/help.html'] }
259
+ let(:expected_headers) { returned_headers }
260
+
261
+ before do
262
+ proxy.stub(url).and_return(body: body, code: status, headers: returned_headers.dup)
263
+ page.navigate
264
+ end
265
+
266
+ it_behaves_like 'a grell page'
267
+ end
268
+
246
269
  context 'navigating to the URL we get page with links with absolute links' do
247
270
  let(:visited) { true }
248
271
  let(:status) { 200 }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grell
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.7
4
+ version: 1.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordi Polo Carres
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-14 00:00:00.000000000 Z
11
+ date: 2016-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.9'
33
+ version: '1.10'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.9'
40
+ version: '1.10'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement