spec/socksify_proxy_spec.rb in em-http-request-1.0.3 vs spec/socksify_proxy_spec.rb in em-http-request-1.1.0
- old
+ new
@@ -1,8 +1,9 @@
require 'helper'
requires_connection do
+
requires_port(8080) do
describe EventMachine::HttpRequest do
# ssh -D 8080 igvita
let(:proxy) { {:proxy => { :host => '127.0.0.1', :port => 8080, :type => :socks5 }} }
@@ -19,6 +20,41 @@
}
}
end
end
end
+
+ requires_port(8081) do
+ describe EventMachine::HttpRequest do
+
+ # brew install tinyproxy
+ let(:http_proxy) { {:proxy => { :host => '127.0.0.1', :port => 8081 }} }
+
+ it "should use HTTP proxy by default" do
+ EventMachine.run {
+ http = EventMachine::HttpRequest.new('http://jsonip.com/', http_proxy).get
+
+ http.errback { failed(http) }
+ http.callback {
+ http.response_header.status.should == 200
+ http.response.should match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
+ EventMachine.stop
+ }
+ }
+ end
+
+ it "should auto CONNECT via HTTP proxy for HTTPS requests" do
+ EventMachine.run {
+ http = EventMachine::HttpRequest.new('https://ipjson.herokuapp.com/', http_proxy).get
+
+ http.errback { failed(http) }
+ http.callback {
+ http.response_header.status.should == 200
+ http.response.should match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
+ EventMachine.stop
+ }
+ }
+ end
+ end
+ end
+
end