Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 337 lines (192 sloc) 13.027 kB
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
1 #Changelog
2
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
3 ## 1.5.0
f0408f8 @bblimke Added support for dynamically evaluated raw responses recorded with `…
authored
4
5 * Support for dynamically evaluated raw responses recorded with `curl -is` <br/>
6 i.e.
7
8 `curl -is www.example.com > /tmp/www.example.com.txt`
9 stub_request(:get, "www.example.com").to_return(lambda { |request| File.new("/tmp/#{request.uri.host.to_s}.txt" }))
10
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
11 * `:net_http_connect_on_start` option can be passed to `WebMock.allow_net_connect!` and `WebMock.disable_net_connect!` methods, i.e.
ffbcdb3 @bblimke Updated changelog with the latest changes in master branch
authored
12
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
13 WebMock.allow_net_connect!(:net_http_connect_on_start => true)
ffbcdb3 @bblimke Updated changelog with the latest changes in master branch
authored
14
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
15 This forces WebMock Net::HTTP adapter to always connect on `Net::HTTP.start`. Check 'Connecting on Net::HTTP.start' in README for more information.
ffbcdb3 @bblimke Updated changelog with the latest changes in master branch
authored
16
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
17 Thanks to Alastair Brunton for reporting the issue and for fix suggestions.
4e313c2 @bblimke Updated CHANGELOG and README with information about net_http_connect_…
authored
18
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
19 * Fixed an issue where Patron spec tried to remove system temporary directory.
20 Thanks to Hans de Graaff
4e313c2 @bblimke Updated CHANGELOG and README with information about net_http_connect_…
authored
21
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
22 * WebMock specs now use RSpec 2
4e313c2 @bblimke Updated CHANGELOG and README with information about net_http_connect_…
authored
23
079a719 @bblimke Updated changelog with version 1.5.0 changes
authored
24 * `rake spec NO_CONNECTION=true` can now be used to only run WebMock specs which do not make real network connections
4e313c2 @bblimke Updated CHANGELOG and README with information about net_http_connect_…
authored
25
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
26 ## 1.4.0
6eb8bb5 @bblimke WebMock tries to use already loaded version of RSpec (1.x or 2.x) (pr…
authored
27
aaf774b @bblimke Added info to changelog and readme about Curb support, implemented by…
authored
28 * Curb support!!! Thanks to the awesome work of Pete Higgins!
29
2328c00 @bblimke Updated Changelog with the latest changes in master
authored
30 * `include WebMock` is now deprecated to avoid method and constant name conflicts. Please `include WebMock::API` instead.
31
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
32 * `WebMock::API#request` is renamed to `WebMock::API#a_request` to prevent method name conflicts with i.e. Rails controller specs.
2328c00 @bblimke Updated Changelog with the latest changes in master
authored
33 WebMock.request is still available.
34
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
35 * Deprecated `WebMock#request`, `WebMock#allow_net_connect!`, `WebMock#net_connect_allowed?`, `WebMock#registered_request?`, `WebMock#reset_callbacks`, `WebMock#after_request` instance methods. These methods are still available, but only as WebMock class methods.
9fded75 @bblimke Updated CHANGELOG with more detailed information on changes in master
authored
36
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
37 * Removed `WebMock.response_for_request` and `WebMock.assertion_failure` which were only used internally and were not documented.
9fded75 @bblimke Updated CHANGELOG with more detailed information on changes in master
authored
38
c646491 @bblimke :allow_localhost => true' now permits 0.0.0.0 in addition to 127.0.0.…
authored
39 * :allow_localhost => true' now permits 0.0.0.0 in addition to 127.0.0.1 and 'localhost'. Thanks to Myron Marston and Mike Gehard for suggesting this.
40
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
41 * Fixed issue with both RSpec 1.x and 2.x being available.
6eb8bb5 @bblimke WebMock tries to use already loaded version of RSpec (1.x or 2.x) (pr…
authored
42
a53f1a0 @bblimke Updated CHANGELOG with version 1.4.0 changes
authored
43 WebMock now tries to use already loaded version of RSpec (1.x or 2.x). Previously it was loading RSpec 2.0 if available, even if RSpec 1.3 was already loaded.
6eb8bb5 @bblimke WebMock tries to use already loaded version of RSpec (1.x or 2.x) (pr…
authored
44
45 Thanks to Hans de Graaff for reporting this.
46
9acf181 @bblimke Updated changelog for version 1.4.0
authored
47 * Changed runtime dependency on Addressable version 2.2.2 which fixes handling of percent-escaped '+'
48
67a0819 @bblimke Version 1.3.5 changelog + updated docs
authored
49 ## 1.3.5
50
51 * External requests can be disabled while allowing selected hosts. Thanks to Charles Li and Ryan Bigg
52
53 This feature was available before only for localhost with `:allow_localhost => true`
54
55 WebMock.disable_net_connect!(:allow => "www.example.org")
56
57 Net::HTTP.get('www.something.com', '/') # ===> Failure
58
59 Net::HTTP.get('www.example.org', '/') # ===> Allowed.
60
61 * Fixed Net::HTTP adapter so that it preserves the original behavior of Net::HTTP.
62
63 When making a request with a block that calls #read_body on the request,
64 Net::HTTP causes the body to be set to a Net::ReadAdapter, but WebMock was causing the body to be set to a string.
65
688e687 Version 1.3.4 changelog
Bartosz Blimke and Oliver Nightingale authored
66 ## 1.3.4
67
68 * Fixed Net::HTTP adapter to handle cases where a block with `read_body` call is passed to `request`.
69 This fixes compatibility with `open-uri`. Thanks to Mark Evans for reporting the issue.
70
db5fcf4 Version 1.3.3 changelog.
Bartosz Blimke and Ben Pickles authored
71 ## 1.3.3
72
73 * Fixed handling of multiple values for the same response header for Net::HTTP. Thanks to Myron Marston for reporting the issue.
74
27c0f65 Version 1.3.2 changelog
Bartosz Blimke and Ben Pickles authored
75 ## 1.3.2
76
77 * Fixed compatibility with EM-HTTP-Request >= 0.2.9. Thanks to Myron Marston for reporting the issue.
78
15f888e @bblimke The less hacky way to get the stream behaviour working for em-http-re…
authored
79 ## 1.3.1
80
60fa244 @bblimke Updated changelog
authored
81 * The less hacky way to get the stream behaviour working for em-http-request. Thanks to Martyn Loughran
82
83 * Fixed issues where Net::HTTP was not accepting valid nil response body. Thanks to Muness Alrubaie
15f888e @bblimke The less hacky way to get the stream behaviour working for em-http-re…
authored
84
354af66 Updated CHANGELOG width version 1.3.0 changes
Bartosz Blimke authored
85 ## 1.3.0
86
87 * Added support for [em-http-request](http://github.com/igrigorik/em-http-request)
88
89 * Matching query params using a hash
90
91 stub_http_request(:get, "www.example.com").with(:query => {"a" => ["b", "c"]})
92
93 RestClient.get("http://www.example.com/?a[]=b&a[]=c") # ===> Success
94
95 request(:get, "www.example.com").with(:query => {"a" => ["b", "c"]}).should have_been_made # ===> Success
96
97 * Matching request body against a hash. Body can be URL-Encoded, JSON or XML.
26cb92f Small improvements to CHANGELOG for version 1.3.0
Bartosz Blimke authored
98
354af66 Updated CHANGELOG width version 1.3.0 changes
Bartosz Blimke authored
99 (Thanks to Steve Tooke for the idea and a solution for url-encoded bodies)
100
101 stub_http_request(:post, "www.example.com").
102 with(:body => {:data => {:a => '1', :b => 'five'}})
103
104 RestClient.post('www.example.com', "data[a]=1&data[b]=five",
105 :content_type => 'application/x-www-form-urlencoded') # ===> Success
106
107 RestClient.post('www.example.com', '{"data":{"a":"1","b":"five"}}',
108 :content_type => 'application/json') # ===> Success
109
110 RestClient.post('www.example.com', '<data a="1" b="five" />',
111 :content_type => 'application/xml' ) # ===> Success
112
113 request(:post, "www.example.com").
114 with(:body => {:data => {:a => '1', :b => 'five'}},
115 :headers => 'Content-Type' => 'application/json').should have_been_made # ===> Success
116
117 * Request callbacks (Thanks to Myron Marston for all suggestions)
118
119 WebMock can now invoke callbacks for stubbed or real requests:
120
121 WebMock.after_request do |request_signature, response|
122 puts "Request #{request_signature} was made and #{response} was returned"
123 end
124
125 invoke callbacks for real requests only and except requests made with Patron client
126
127 WebMock.after_request(:except => [:patron], :real_requests_only => true) do |request_signature, response|
128 puts "Request #{request_signature} was made and #{response} was returned"
129 end
130
131 * `to_raise()` now accepts an exception instance or a string as argument in addition to an exception class
132
133 stub_request(:any, 'www.example.net').to_raise(StandardError.new("some error"))
134
135 stub_request(:any, 'www.example.net').to_raise("some error")
136
26cb92f Small improvements to CHANGELOG for version 1.3.0
Bartosz Blimke authored
137 * Matching requests based on a URI is 30% faster
354af66 Updated CHANGELOG width version 1.3.0 changes
Bartosz Blimke authored
138
139 * Fixed constant namespace issues in HTTPClient adapter. Thanks to Nathaniel Bibler for submitting a patch.
140
fd2472a Version 1.2.2 changelog
Bartosz Blimke authored
141 ## 1.2.2
142
143 * Fixed problem where ArgumentError was raised if query params were made up of an array e.g. data[]=a&data[]=b. Thanks to Steve Tooke
144
5803f31 Version bump to 1.2.1
Bartosz Blimke authored
145 ## 1.2.1
146
147 * Changed license from GPL to MIT
148
149 * Fixed gemspec file. Thanks to Razic
150
31b3ffb Added version 1.2.0 changelog
Bartosz Blimke authored
151 ## 1.2.0
152
153 * RSpec 2 compatibility. Thanks to Sam Phillips!
154
155 * :allow_localhost => true' now permits 127.0.0.1 as well as 'localhost'. Thanks to Mack Earnhardt
156
157 * Request URI matching in now 2x faster!
158
159
4a04017 Added 1.1.0 changelog
Bartosz Blimke authored
160 ## 1.1.0
161
ee7b3b4 Fixed spelling
Bartosz Blimke authored
162 * [VCR](http://github.com/myronmarston/vcr/) compatibility. Many thanks to Myron Marston for all suggestions.
4a04017 Added 1.1.0 changelog
Bartosz Blimke authored
163
164 * Support for stubbing requests and returning responses with multiple headers with the same name. i.e multiple Accept headers.
165
166 stub_http_request(:get, 'www.example.com').
167 with(:headers => {'Accept' => ['image/png', 'image/jpeg']}).
168 to_return(:body => 'abc')
169 RestClient.get('www.example.com',
170 {"Accept" => ['image/png', 'image/jpeg']}) # ===> "abc\n"
171
172 * When real net connections are disabled and unstubbed request is made, WebMock throws WebMock::NetConnectNotAllowedError instead of assertion error or StandardError.
173
174 * Added WebMock.version()
175
176
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
177 ## 1.0.0
178
179 * Added support for [Patron](http://toland.github.com/patron/)
180
181 * Responses dynamically evaluated from block (idea and implementation by Tom Ward)
182
183 stub_request(:any, 'www.example.net').
184 to_return { |request| {:body => request.body} }
185
186 RestClient.post('www.example.net', 'abc') # ===> "abc\n"
187
188 * Responses dynamically evaluated from lambda (idea and implementation by Tom Ward)
189
190 stub_request(:any, 'www.example.net').
191 to_return(lambda { |request| {:body => request.body} })
192
193 RestClient.post('www.example.net', 'abc') # ===> "abc\n"
194
195 * Response with custom status message
196
197 stub_request(:any, "www.example.com").to_return(:status => [500, "Internal Server Error"])
198
199 req = Net::HTTP::Get.new("/")
200 Net::HTTP.start("www.example.com") { |http| http.request(req) }.message # ===> "Internal Server Error"
201
c3c92ba Added information about allowing localhost to version 1.0.0 changelog
Bartosz Blimke authored
202 * Raising timeout errors (suggested by Jeffrey Jones) (compatibility with Ruby 1.8.6 by Mack Earnhardt)
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
203
204 stub_request(:any, 'www.example.net').to_timeout
205
206 RestClient.post('www.example.net', 'abc') # ===> RestClient::RequestTimeout
207
c3c92ba Added information about allowing localhost to version 1.0.0 changelog
Bartosz Blimke authored
208 * External requests can be disabled while allowing localhost (idea and implementation by Mack Earnhardt)
209
210 WebMock.disable_net_connect!(:allow_localhost => true)
211
212 Net::HTTP.get('www.something.com', '/') # ===> Failure
213
214 Net::HTTP.get('localhost:9887', '/') # ===> Allowed. Perhaps to Selenium?
215
216
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
217 ### Bug fixes
218
219 * Fixed issue where Net::HTTP adapter didn't work for requests with body responding to read (reported by Tekin Suleyman)
c3c92ba Added information about allowing localhost to version 1.0.0 changelog
Bartosz Blimke authored
220 * Fixed issue where request stub with headers declared as nil was matching requests with non empty headers
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
221
b6c3b3b Version bump to 0.9.1
Bartosz Blimke authored
222 ## 0.9.1
223
224 * Fixed issue where response status code was not read from raw (curl -is) responses
225
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
226 ## 0.9.0
227
228 * Matching requests against provided block (by Sergio Gil)
229
230 stub_request(:post, "www.example.com").with { |request| request.body == "abc" }.to_return(:body => "def")
231 RestClient.post('www.example.com', 'abc') # ===> "def\n"
232 request(:post, "www.example.com").with { |req| req.body == "abc" }.should have_been_made
233 #or
234 assert_requested(:post, "www.example.com") { |req| req.body == "abc" }
235
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
236 * Matching request body against regular expressions (suggested by Ben Pickles)
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
237
238 stub_request(:post, "www.example.com").with(:body => /^.*world$/).to_return(:body => "abc")
239 RestClient.post('www.example.com', 'hello world') # ===> "abc\n"
240
66519c1 Updated changelog with 1.0.0 changes
Bartosz Blimke authored
241 * Matching request headers against regular expressions (suggested by Ben Pickles)
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
242
243 stub_request(:post, "www.example.com").with(:headers => {"Content-Type" => /image\/.+/}).to_return(:body => "abc")
244 RestClient.post('www.example.com', '', {'Content-Type' => 'image/png'}) # ===> "abc\n"
245
246 * Replaying raw responses recorded with `curl -is`
247
248 `curl -is www.example.com > /tmp/example_curl_-is_output.txt`
249 raw_response_file = File.new("/tmp/example_curl_-is_output.txt")
250
c2648fc Fixed formatting in 0.9.0 changelog
Bartosz Blimke authored
251 from file
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
252
253 stub_request(:get, "www.example.com").to_return(raw_response_file)
254
c2648fc Fixed formatting in 0.9.0 changelog
Bartosz Blimke authored
255 or string
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
256
257 stub_request(:get, "www.example.com").to_return(raw_response_file.read)
258
259 * Multiple responses for repeated requests
260
261 stub_request(:get, "www.example.com").to_return({:body => "abc"}, {:body => "def"})
262 Net::HTTP.get('www.example.com', '/') # ===> "abc\n"
263 Net::HTTP.get('www.example.com', '/') # ===> "def\n"
264
265 * Multiple responses using chained `to_return()` or `to_raise()` declarations
266
267 stub_request(:get, "www.example.com").
268 to_return({:body => "abc"}).then. #then() just is a syntactic sugar
269 to_return({:body => "def"}).then.
270 to_raise(MyException)
271 Net::HTTP.get('www.example.com', '/') # ===> "abc\n"
272 Net::HTTP.get('www.example.com', '/') # ===> "def\n"
273 Net::HTTP.get('www.example.com', '/') # ===> MyException raised
274
275 * Specifying number of times given response should be returned
276
277 stub_request(:get, "www.example.com").
278 to_return({:body => "abc"}).times(2).then.
279 to_return({:body => "def"})
280
281 Net::HTTP.get('www.example.com', '/') # ===> "abc\n"
282 Net::HTTP.get('www.example.com', '/') # ===> "abc\n"
283 Net::HTTP.get('www.example.com', '/') # ===> "def\n"
284
285 * Added support for `Net::HTTP::Post#body_stream`
286
c2648fc Fixed formatting in 0.9.0 changelog
Bartosz Blimke authored
287 This fixes compatibility with new versions of RestClient
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
288
289 * WebMock doesn't suppress default request headers added by http clients anymore.
290
c2648fc Fixed formatting in 0.9.0 changelog
Bartosz Blimke authored
291 i.e. Net::HTTP adds `'Accept'=>'*/*'` to all requests by default
5313e02 Added version 0.9.0 features to CHANGELOG and README
Bartosz Blimke authored
292
293
294
295 ## 0.8.2
296
297 * Fixed issue where WebMock was not closing IO object passed as response body after reading it.
298 * Ruby 1.9.2 compat: Use `File#expand_path` for require path because "." is not be included in LOAD_PATH since Ruby 1.9.2
299
300
301 ## 0.8.1
302
303 * Fixed HTTPClient adapter compatibility with Ruby 1.8.6 (reported by Piotr Usewicz)
304 * Net:HTTP adapter now handles request body assigned as Net::HTTP::Post#body attribute (fixed by Mack Earnhardt)
305 * Fixed issue where requests were not matching stubs with Accept header set.(reported by Piotr Usewicz)
306 * Fixed compatibility with Ruby 1.9.1, 1.9.2 and JRuby 1.3.1 (reported by Diego E. “Flameeyes” Pettenò)
307 * Fixed issue with response body declared as IO object and multiple requests (reported by Niels Meersschaert)
308 * Fixed "undefined method `assertion_failure'" error (reported by Nick Plante)
309
310
311 ## 0.8.0
312
313 * Support for HTTPClient (sync and async requests)
314 * Support for dynamic responses. Response body and headers can be now declared as lambda.
315 (Thanks to Ivan Vega ( @ivanyv ) for suggesting this feature)
316 * Support for stubbing and expecting requests with empty body
317 * Executing non-stubbed request leads to failed expectation instead of error
318
319
320 ### Bug fixes
321
322 * Basic authentication now works correctly
323 * Fixed problem where WebMock didn't call a block with the response when block was provided
324 * Fixed problem where uris with single slash were not matching uris without path provided
325
326
327 ## 0.7.3
328
329 * Clarified documentation
330 * Fixed some issues with loading of Webmock classes
331 * Test::Unit and RSpec adapters have to be required separately
332
333
334 ## 0.7.2
335
336 * Added support for matching escaped and non escaped URLs
Something went wrong with that request. Please try again.