webmock 1.3.1 → 1.3.2

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.
@@ -1,5 +1,9 @@
1
1
  #Changelog
2
2
 
3
+ ## 1.3.2
4
+
5
+ * Fixed compatibility with EM-HTTP-Request >= 0.2.9. Thanks to Myron Marston for reporting the issue.
6
+
3
7
  ## 1.3.1
4
8
 
5
9
  * The less hacky way to get the stream behaviour working for em-http-request. Thanks to Martyn Loughran
data/README.md CHANGED
@@ -22,20 +22,23 @@ Supported HTTP libraries
22
22
  * Patron
23
23
  * EM-HTTP-Request
24
24
 
25
- Installation
26
- ------------
25
+ ##Installation
27
26
 
28
27
  gem install webmock --source http://gemcutter.org
29
28
 
30
- In your `test/test_helper.rb` add these two lines:
29
+ ### Test::Unit
31
30
 
32
- require 'webmock/test_unit'
31
+ Add the following code to `test/test_helper.rb`
32
+
33
+ require 'webmock/test_unit'
33
34
 
34
35
  class Test::Unit::TestCase
35
- include WebMock
36
+ config.include WebMock
36
37
  end
37
38
 
38
- or if you use RSpec add these lines to `spec/spec_helper`:
39
+ ### RSpec
40
+
41
+ Add the following code to `spec/spec_helper`:
39
42
 
40
43
  require 'webmock/rspec'
41
44
 
@@ -43,11 +46,33 @@ or if you use RSpec add these lines to `spec/spec_helper`:
43
46
  config.include WebMock
44
47
  end
45
48
 
46
- You can also use WebMock without RSpec or Test::Unit support:
49
+ ### RSpec 2
47
50
 
48
- require 'webmock'
51
+ Add the following code to `spec/spec_helper`:
49
52
 
53
+ require 'webmock/rspec'
54
+
55
+ RSpec.configure do |config|
56
+ config.include WebMock
57
+ end
58
+
59
+ ### Cucumber
60
+
61
+ Add the following code to `features/support/env.rb`
62
+
63
+ require 'webmock/rspec'
64
+ module WebMockWorld
65
+ include WebMock
66
+ include WebMock::Matchers
67
+ end
68
+
69
+ World(WebMockWorld)
70
+
71
+ You can also use WebMock outside a test framework:
72
+
73
+ require 'webmock'
50
74
  include WebMock
75
+ include WebMock::Matchers
51
76
 
52
77
  ## Examples
53
78
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.3.2
@@ -18,13 +18,11 @@ if defined?(EventMachine::HttpRequest)
18
18
  end
19
19
  end
20
20
 
21
- # def stream(&blk)
22
- # blk.call(@response)
23
- # end
24
-
25
21
  def unbind
26
22
  end
27
23
 
24
+ def close_connection
25
+ end
28
26
  end
29
27
 
30
28
  def send_request_with_webmock(&block)
@@ -72,22 +70,31 @@ if defined?(EventMachine::HttpRequest)
72
70
  end
73
71
 
74
72
  def build_request_signature
75
-
76
- if @options[:authorization] || @options['authorization']
77
- auth = (@options[:authorization] || @options['authorization'])
73
+ if @req
74
+ options = @req.options
75
+ method = @req.method
76
+ uri = @req.uri
77
+ else
78
+ options = @options
79
+ method = @method
80
+ uri = @uri
81
+ end
82
+
83
+ if options[:authorization] || options['authorization']
84
+ auth = (options[:authorization] || options['authorization'])
78
85
  userinfo = auth.join(':')
79
86
  userinfo = WebMock::Util::URI.encode_unsafe_chars_in_userinfo(userinfo)
80
- @options.reject! {|k,v| k.to_s == 'authorization' } #we added it to url userinfo
81
- @uri.userinfo = userinfo
87
+ options.reject! {|k,v| k.to_s == 'authorization' } #we added it to url userinfo
88
+ uri.userinfo = userinfo
82
89
  end
83
90
 
84
- @uri.query_values = (@uri.query_values || {}).merge(@options[:query]) if @options[:query]
91
+ uri.query_values = (uri.query_values || {}).merge(options[:query]) if options[:query]
85
92
 
86
93
  WebMock::RequestSignature.new(
87
- @method.downcase.to_sym,
88
- @uri.to_s,
89
- :body => (@options[:body] || @options['body']),
90
- :headers => (@options[:head] || @options['head'])
94
+ method.downcase.to_sym,
95
+ uri.to_s,
96
+ :body => (options[:body] || options['body']),
97
+ :headers => (options[:head] || options['head'])
91
98
  )
92
99
  end
93
100
 
@@ -18,7 +18,11 @@ module EMHttpRequestSpecHelper
18
18
  'authorization' => [uri.user, uri.password],
19
19
  :head => options[:headers]}, &block)
20
20
  http.errback {
21
- error = http.errors
21
+ error = if http.respond_to?(:errors)
22
+ http.errors
23
+ else
24
+ http.error
25
+ end
22
26
  failed
23
27
  }
24
28
  http.callback {
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{webmock}
8
- s.version = "1.3.1"
8
+ s.version = "1.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bartosz Blimke"]
12
- s.date = %q{2010-07-12}
12
+ s.date = %q{2010-07-23}
13
13
  s.description = %q{WebMock allows stubbing HTTP requests and setting expectations on HTTP requests.}
14
14
  s.email = %q{bartosz.blimke@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -92,8 +92,7 @@ Gem::Specification.new do |s|
92
92
  s.rubygems_version = %q{1.3.6}
93
93
  s.summary = %q{Library for stubbing HTTP requests in Ruby.}
94
94
  s.test_files = [
95
- "spec/benchmark.rb",
96
- "spec/em_http_request_spec.rb",
95
+ "spec/em_http_request_spec.rb",
97
96
  "spec/em_http_request_spec_helper.rb",
98
97
  "spec/httpclient_spec.rb",
99
98
  "spec/httpclient_spec_helper.rb",
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 3
8
- - 1
9
- version: 1.3.1
8
+ - 2
9
+ version: 1.3.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Bartosz Blimke
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-07-12 00:00:00 +01:00
17
+ date: 2010-07-23 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -211,7 +211,6 @@ signing_key:
211
211
  specification_version: 3
212
212
  summary: Library for stubbing HTTP requests in Ruby.
213
213
  test_files:
214
- - spec/benchmark.rb
215
214
  - spec/em_http_request_spec.rb
216
215
  - spec/em_http_request_spec_helper.rb
217
216
  - spec/httpclient_spec.rb
@@ -1,61 +0,0 @@
1
- # require 'rubygems'
2
- require 'benchmark'
3
- require 'net/http'
4
- # require 'fakeweb'
5
- require 'spec/spec_helper'
6
-
7
- def http_request
8
- res = Net::HTTP.get_response(URI.parse('http://example.com'))
9
- raise "Body should be 'Hello'" unless res.body == 'Hello'
10
- end
11
-
12
- def fakeweb
13
- FakeWeb.register_uri(:get, 'http://example.com', :body => 'Hello')
14
- yield
15
- ensure
16
- FakeWeb.clean_registry
17
- end
18
-
19
- def webmock
20
- WebMock.stub_request(:get, 'http://example.com').to_return(:body => 'Hello')
21
- yield
22
- ensure
23
- WebMock.reset_webmock
24
- end
25
-
26
- def perform_benchmark(name)
27
- puts "\n\nBenchmarking #{name}:"
28
- Benchmark.benchmark do |b|
29
- %w(webmock).each do |type|
30
- b.report(type) do
31
- # this is a bit convoluted, but we want to ensure that each benchmark runs without the other library loaded,
32
- # so we fork off a sub-process before requiring the libraries.
33
- Process.fork do
34
- require type
35
- yield type
36
- end
37
- Process.wait
38
- end
39
- end
40
- end
41
- end
42
-
43
- n = 5000
44
- perform_benchmark("Single setup/teardown") do |type|
45
- send(type) { n.times { http_request } }
46
- end
47
-
48
- perform_benchmark("Setup/teardown for each http request") do |type|
49
- n.times { send(type) { http_request } }
50
- end
51
-
52
- # Output on my machine:
53
- #
54
- # Benchmarking Single setup/teardown:
55
- # webmock 0.000000 0.000000 18.830000 ( 19.350281)
56
- # fakeweb 0.000000 0.000000 1.930000 ( 2.049569)
57
- #
58
- #
59
- # Benchmarking Setup/teardown for each http request:
60
- # webmock 0.000000 0.000000 21.350000 ( 21.795557)
61
- # fakeweb 0.000000 0.000000 2.490000 ( 2.707574)