Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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