Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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