em-http-request 0.2.14 → 0.2.15

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of em-http-request might be problematic. Click here for more details.

@@ -27,7 +27,7 @@ module EventMachine
27
27
  attr_reader :options, :method
28
28
 
29
29
  def initialize(host)
30
- @uri = host.kind_of?(Addressable::URI) ? host : Addressable::URI::parse(host)
30
+ @uri = host.kind_of?(Addressable::URI) ? host : Addressable::URI::parse(host.to_s)
31
31
  end
32
32
 
33
33
  # Send an HTTP request and consume the response. Supported options:
@@ -1,8 +1,8 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ require 'rspec'
3
3
  require 'pp'
4
4
 
5
5
  $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
6
6
 
7
7
  require 'em-http'
8
- require 'em-websocket'
8
+ require 'em-websocket'
@@ -5,7 +5,7 @@ describe 'em-http mock' do
5
5
  before(:all) do
6
6
  EventMachine::MockHttpRequest.activate!
7
7
  end
8
-
8
+
9
9
  after(:all) do
10
10
  EventMachine::MockHttpRequest.deactivate!
11
11
  end
@@ -31,7 +31,7 @@ describe 'em-http mock' do
31
31
  EventMachine.stop
32
32
  }
33
33
  }
34
-
34
+
35
35
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {}).should == 1
36
36
  end
37
37
 
@@ -44,7 +44,8 @@ describe 'em-http mock' do
44
44
  http.errback { fail }
45
45
  http.callback {
46
46
  http.response_header.status.should == 200
47
- http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca')).split("\r\n\r\n", 2).last
47
+ http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'), :encoding => 'ISO-8859-1').split("\r\n\r\n", 2).last
48
+ http.response.encoding.to_s.should == 'ISO-8859-1'
48
49
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {}).should == 1
49
50
  EventMachine.stop
50
51
  }
@@ -54,12 +55,13 @@ describe 'em-http mock' do
54
55
  it "should serve a fake http request from a file" do
55
56
  EventMachine::HttpRequest.register_file('http://www.google.ca:80/', :get, {}, File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'))
56
57
  EM.run {
57
-
58
+
58
59
  http = EventMachine::HttpRequest.new('http://www.google.ca/').get
59
60
  http.errback { fail }
60
61
  http.callback {
61
62
  http.response_header.status.should == 200
62
- http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca')).split("\r\n\r\n", 2).last
63
+ http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'), :encoding => 'ISO-8859-1').split("\r\n\r\n", 2).last
64
+ http.response.encoding.to_s.should == 'ISO-8859-1'
63
65
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {}).should == 1
64
66
  EventMachine.stop
65
67
  }
@@ -92,7 +94,7 @@ function a(){google.timers.load.t.ol=(new Date).getTime();google.report&&google.
92
94
  HEREDOC
93
95
  EventMachine::HttpRequest.register('http://www.google.ca:80/', :get, {}, data)
94
96
  EventMachine.run {
95
-
97
+
96
98
  http = EventMachine::HttpRequest.new('http://www.google.ca/').get
97
99
  http.errback { fail }
98
100
  http.callback {
@@ -101,7 +103,7 @@ function a(){google.timers.load.t.ol=(new Date).getTime();google.report&&google.
101
103
  EventMachine.stop
102
104
  }
103
105
  }
104
-
106
+
105
107
  end
106
108
 
107
109
  it "should serve a fake failing http request" do
@@ -130,24 +132,26 @@ function a(){google.timers.load.t.ol=(new Date).getTime();google.report&&google.
130
132
  http.errback { fail }
131
133
  http.callback {
132
134
  http.response_header.status.should == 200
133
- http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca')).split("\r\n\r\n", 2).last
135
+ http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'), :encoding => 'ISO-8859-1').split("\r\n\r\n", 2).last
136
+ http.response.encoding.to_s.should == 'ISO-8859-1'
134
137
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {}).should == 1
135
138
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {:user_agent => 'BERT'}).should == 0
136
139
  EventMachine.stop
137
140
  }
138
141
  }
139
-
142
+
140
143
  EM.run {
141
144
  http = EventMachine::HttpRequest.new('http://www.google.ca/').get({:head => {:user_agent => 'BERT'}})
142
145
  http.errback { fail }
143
146
  http.callback {
144
147
  http.response_header.status.should == 200
145
- http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca')).split("\r\n\r\n", 2).last
148
+ http.response.should == File.read(File.join(File.dirname(__FILE__), 'fixtures', 'google.ca'), :encoding => 'ISO-8859-1').split("\r\n\r\n", 2).last
149
+ http.response.encoding.to_s.should == 'ISO-8859-1'
146
150
  EventMachine::HttpRequest.count('http://www.google.ca:80/', :get, {:user_agent => 'BERT'}).should == 1
147
151
  EventMachine.stop
148
152
  }
149
153
  }
150
-
154
+
151
155
  end
152
156
 
153
157
  it "should raise an exception if pass-thru is disabled" do
@@ -100,6 +100,26 @@ describe EventMachine::HttpRequest do
100
100
  }
101
101
  end
102
102
 
103
+ it "should redirect with missing content-length" do
104
+ EventMachine.run {
105
+ @s = StubServer.new("HTTP/1.0 301 MOVED PERMANENTLY\r\nlocation: http://127.0.0.1:8080/redirect\r\n\r\n")
106
+
107
+ http = EventMachine::HttpRequest.new('http://127.0.0.1:8081/').get :redirects => 2
108
+ http.errback { failed }
109
+
110
+ http.callback {
111
+ http.response_header.status.should == 200
112
+ http.response_header["CONTENT_ENCODING"].should == "gzip"
113
+ http.response.should == "compressed"
114
+ http.last_effective_url.to_s.should == 'http://127.0.0.1:8080/gzip'
115
+ http.redirects.should == 2
116
+
117
+ @s.stop
118
+ EM.stop
119
+ }
120
+ }
121
+ end
122
+
103
123
  it "should follow redirects on HEAD method" do
104
124
  EventMachine.run {
105
125
  http = EventMachine::HttpRequest.new('http://127.0.0.1:8080/redirect/head').head :redirects => 1
@@ -1,22 +1,22 @@
1
- class StubServer
2
- module Server
3
- def receive_data(data)
4
- send_data @response
5
- close_connection_after_writing
6
- end
7
-
8
- def response=(response)
9
- @response = response
10
- end
11
- end
12
-
13
- def initialize(response, port=8081)
14
- @sig = EventMachine::start_server("127.0.0.1", port, Server) { |s|
15
- s.response = response
16
- }
17
- end
18
-
19
- def stop
20
- EventMachine.stop_server @sig
21
- end
22
- end
1
+ class StubServer
2
+ module Server
3
+ def receive_data(data)
4
+ send_data @response
5
+ close_connection_after_writing
6
+ end
7
+
8
+ def response=(response)
9
+ @response = response
10
+ end
11
+ end
12
+
13
+ def initialize(response, port=8081)
14
+ @sig = EventMachine::start_server("127.0.0.1", port, Server) { |s|
15
+ s.response = response
16
+ }
17
+ end
18
+
19
+ def stop
20
+ EventMachine.stop_server @sig
21
+ end
22
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 14
9
- version: 0.2.14
8
+ - 15
9
+ version: 0.2.15
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ilya Grigorik
@@ -60,10 +60,12 @@ extra_rdoc_files:
60
60
  files:
61
61
  - .gitignore
62
62
  - Changelog.md
63
+ - Gemfile
63
64
  - LICENSE
64
65
  - README.md
65
66
  - Rakefile
66
67
  - VERSION
68
+ - autotest/discover.rb
67
69
  - em-http-request.gemspec
68
70
  - examples/fetch.rb
69
71
  - examples/fibered-http.rb
@@ -94,7 +96,6 @@ files:
94
96
  - spec/mock_spec.rb
95
97
  - spec/multi_spec.rb
96
98
  - spec/request_spec.rb
97
- - spec/spec.opts
98
99
  - spec/stallion.rb
99
100
  - spec/stub_server.rb
100
101
  has_rdoc: true
@@ -1,7 +0,0 @@
1
- --colour
2
- --format
3
- specdoc
4
- --loadby
5
- mtime
6
- --reverse
7
- --backtrace