frameworks-capybara 0.2.9 → 0.2.10

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.
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