link_oracle 0.1.8 → 0.1.9

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: be327867cb2f7bb24b4f06cfd40d609fac3171c9
4
- data.tar.gz: aeaea157fe4058f168e2130b50f286453afa97eb
3
+ metadata.gz: 22de0311b5c6ff2460a3b3af8334693daebcaba3
4
+ data.tar.gz: 5c4e063fcb0e5723afc2ae015d956753684629e1
5
5
  SHA512:
6
- metadata.gz: 37b17d27fc7f6ec1988cc75f1e0baebe92ec98775039740b7bddbbadabd3009a4fcc0db2b35abb8930645c91382c4f3cbdbd9af0495426bbab29f4717f375735
7
- data.tar.gz: bc5f0db1a7cdfdc8abd5e0ba3e51dc62058239298441c62eaf3a49eeb96c889e468b0b62e79ed1da74fd4cfcdf9a52e48d4014d83ed4acf03ca9d8c3b9af3798
6
+ metadata.gz: d142a141bfb054ba44fafc6570d356b1697e740863474c8d9e46540c4daeebb28f483524aff3bdeb3dd536e882387178de9caed11cbca591e508a30389d8c64a
7
+ data.tar.gz: 52dcbb19795887a351118f17d552ac9f34b206ef7562f1584eaac1ba07e372cf894d97bb98090d946e195363641353bf69221ae04fd0aafda9944f111785bb80
@@ -52,6 +52,8 @@ class LinkOracle
52
52
  c
53
53
  rescue Curl::Err::HostResolutionError
54
54
  raise ServerNotFound
55
+ rescue Curl::Err::SSLCACertificateError
56
+ raise BadSslCertificate
55
57
  end
56
58
 
57
59
  def error_class
@@ -75,4 +77,5 @@ class LinkOracle
75
77
  class BadThingsHappened < StandardError; end
76
78
  class InvalidUrl < StandardError; end
77
79
  class ParsingError < StandardError; end
80
+ class BadSslCertificate < StandardError ; end
78
81
  end
@@ -1,3 +1,3 @@
1
1
  class LinkOracle
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
@@ -29,62 +29,66 @@ describe LinkOracle::Request do
29
29
  describe '#parsed_url' do
30
30
  context 'request failures' do
31
31
  before do
32
- stub_request(:any, url).to_return(response_hash)
32
+ stub_request(:get, url).to_return(response_hash)
33
33
  end
34
34
 
35
- context 'page not found' do
36
- context 'response code is 404' do
37
- let(:code) { 404 }
35
+ context 'response code is 404' do
36
+ let(:code) { 404 }
38
37
 
39
- it 'should raise PageNotFound' do
40
- expect {
41
- requester.parsed_url
42
- }.to raise_error(LinkOracle::PageNotFound)
43
- end
38
+ it 'should raise PageNotFound' do
39
+ expect {
40
+ requester.parsed_url
41
+ }.to raise_error(LinkOracle::PageNotFound)
44
42
  end
43
+ end
45
44
 
46
- context 'nonexistant url' do
47
- it 'should raise ServerNotFound' do
48
- curl = double('curl', "follow_location=" => true, "max_redirects=" => true)
49
- allow(curl).to receive(:perform).and_raise(Curl::Err::HostResolutionError)
50
- allow(Curl::Easy).to receive(:new).and_return(curl)
51
-
52
- expect {
53
- requester.parsed_url
54
- }.to raise_error(LinkOracle::ServerNotFound)
55
- end
45
+ context 'nonexistant url' do
46
+ it 'should raise ServerNotFound' do
47
+ stub_request(:get, url).to_raise(Curl::Err::HostResolutionError)
48
+ expect {
49
+ requester.parsed_url
50
+ }.to raise_error(LinkOracle::ServerNotFound)
56
51
  end
52
+ end
57
53
 
58
- context 'response code is 403' do
59
- let(:code) { 403 }
54
+ context 'response code is 403' do
55
+ let(:code) { 403 }
60
56
 
61
- it 'should raise PermissionDenied' do
62
- expect {
63
- requester.parsed_url
64
- }.to raise_error(LinkOracle::PermissionDenied)
65
- end
57
+ it 'should raise PermissionDenied' do
58
+ expect {
59
+ requester.parsed_url
60
+ }.to raise_error(LinkOracle::PermissionDenied)
66
61
  end
62
+ end
67
63
 
68
- context 'response code is weird' do
69
- let(:code) { 42 }
64
+ context 'response code is weird' do
65
+ let(:code) { 42 }
70
66
 
71
- it 'should raise BadThingsHappened' do
72
- expect {
73
- requester.parsed_url
74
- }.to raise_error(LinkOracle::BadThingsHappened)
75
- end
67
+ it 'should raise BadThingsHappened' do
68
+ expect {
69
+ requester.parsed_url
70
+ }.to raise_error(LinkOracle::BadThingsHappened)
71
+ end
72
+ end
73
+
74
+ context "when the server's SSL certificate is untrusted" do
75
+ it "raises BadSslCertificate" do
76
+ stub_request(:get, url).to_raise(Curl::Err::SSLCACertificateError)
77
+ expect do
78
+ requester.parsed_url
79
+ end.to raise_error(LinkOracle::BadSslCertificate)
76
80
  end
81
+ end
77
82
 
78
- context 'parsing goes awry' do
79
- before do
80
- ::Nokogiri::HTML.should_receive(:parse).and_raise(ArgumentError)
81
- end
83
+ context 'parsing goes awry' do
84
+ before do
85
+ ::Nokogiri::HTML.should_receive(:parse).and_raise(ArgumentError)
86
+ end
82
87
 
83
- it 'should raise ParsingError' do
84
- expect {
85
- requester.parsed_url
86
- }.to raise_error(LinkOracle::ParsingError)
87
- end
88
+ it 'should raise ParsingError' do
89
+ expect {
90
+ requester.parsed_url
91
+ }.to raise_error(LinkOracle::ParsingError)
88
92
  end
89
93
  end
90
94
  end
@@ -112,7 +116,7 @@ describe LinkOracle::Request do
112
116
 
113
117
  context "the url has weird characters in it" do
114
118
  before do
115
- stub_request(:any, url).to_return(response_hash)
119
+ stub_request(:get, url).to_return(response_hash)
116
120
  end
117
121
 
118
122
  let(:url) { 'http://www.autoblog.com/2014/09/26/porsche-911-nissan-gtr-world-greatest-drag-race-video/?icid=autos|latest-auto-news|content' }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: link_oracle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Cooper
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-11-13 00:00:00.000000000 Z
16
+ date: 2014-11-20 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: nokogiri