frameworks-capybara 0.2.9 → 0.2.10

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- frameworks-capybara (0.2.9)
4
+ frameworks-capybara (0.2.10)
5
5
  capybara (>= 1.0.0)
6
6
  capybara-celerity
7
7
  capybara-mechanize (>= 0.3.0)
@@ -57,3 +57,111 @@ end
57
57
  end
58
58
  =end
59
59
 
60
+ # This patch prevents Mechanize from raising a Mechanize::ResponseCodeError
61
+ # when the HTTP Response Code is 503 or 404. This lets capybara continue the journey.
62
+ class Mechanize::HTTP::Agent
63
+ def fetch uri, method = :get, headers = {}, params = [],
64
+ referer = current_page, redirects = 0
65
+ referer_uri = referer ? referer.uri : nil
66
+
67
+ uri = resolve uri, referer
68
+
69
+ uri, params = resolve_parameters uri, method, params
70
+
71
+ request = http_request uri, method, params
72
+
73
+ connection = connection_for uri
74
+
75
+ request_auth request, uri
76
+
77
+ disable_keep_alive request
78
+ enable_gzip request
79
+
80
+ request_language_charset request
81
+ request_cookies request, uri
82
+ request_host request, uri
83
+ request_referer request, uri, referer_uri
84
+ request_user_agent request
85
+ request_add_headers request, headers
86
+
87
+ pre_connect request
88
+
89
+ # Consult robots.txt
90
+ if robots && uri.is_a?(URI::HTTP)
91
+ robots_allowed?(uri) or raise Mechanize::RobotsDisallowedError.new(uri)
92
+ end
93
+
94
+ # Add If-Modified-Since if page is in history
95
+ page = visited_page(uri)
96
+
97
+ if (page = visited_page(uri)) and page.response['Last-Modified']
98
+ request['If-Modified-Since'] = page.response['Last-Modified']
99
+ end if(@conditional_requests)
100
+
101
+ # Specify timeouts if given
102
+ connection.open_timeout = @open_timeout if @open_timeout
103
+ connection.read_timeout = @read_timeout if @read_timeout
104
+
105
+ request_log request
106
+
107
+ response_body_io = nil
108
+
109
+ # Send the request
110
+ begin
111
+ response = connection.request(uri, request) { |res|
112
+ response_log res
113
+
114
+ response_body_io = response_read res, request, uri
115
+
116
+ res
117
+ }
118
+ rescue Mechanize::ChunkedTerminationError => e
119
+ raise unless @ignore_bad_chunking
120
+
121
+ response = e.response
122
+ response_body_io = e.body_io
123
+ end
124
+
125
+ hook_content_encoding response, uri, response_body_io
126
+
127
+ response_body_io = response_content_encoding response, response_body_io if
128
+ request.response_body_permitted?
129
+
130
+ post_connect uri, response, response_body_io
131
+
132
+ page = response_parse response, response_body_io, uri
133
+
134
+ response_cookies response, uri, page
135
+
136
+ meta = response_follow_meta_refresh response, uri, page, redirects
137
+
138
+ return meta if meta
139
+
140
+ case response
141
+ when Net::HTTPSuccess
142
+ if robots && page.is_a?(Mechanize::Page)
143
+ page.parser.noindex? and raise Mechanize::RobotsDisallowedError.new(uri)
144
+ end
145
+
146
+ page
147
+ when Mechanize::FileResponse
148
+ page
149
+ when Net::HTTPNotModified
150
+ log.debug("Got cached page") if log
151
+ visited_page(uri) || page
152
+ when Net::HTTPRedirection
153
+ response_redirect response, method, page, redirects, headers, referer
154
+ when Net::HTTPUnauthorized
155
+ response_authenticate(response, page, uri, request, headers, params,
156
+ referer)
157
+ else
158
+ # BEGIN PATCH
159
+ if page.code == "503" or page.code == "404"
160
+ page
161
+ else
162
+ raise Mechanize::ResponseCodeError.new(page, 'unhandled response')
163
+ end
164
+ # END PATCH
165
+ end
166
+ end
167
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FrameworksCapybara
2
- VERSION = '0.2.9'
2
+ VERSION = '0.2.10'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frameworks-capybara
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 9
10
- version: 0.2.9
9
+ - 10
10
+ version: 0.2.10
11
11
  platform: ruby
12
12
  authors:
13
13
  - matt robbins
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-06 00:00:00 +01:00
18
+ date: 2012-06-29 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency