em-http-request 0.2.14 → 0.2.15

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.

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