Sha256: e043844434949062eef7966ad3a44ac8e42608be659b9a0e78143b15d9417d1e
Contents?: true
Size: 895 Bytes
Versions: 2
Compression:
Stored size: 895 Bytes
Contents
require 'spec_helper' class Interleaving < Goliath::API use Goliath::Rack::Params def response(env) delay = env.params['delay'] EM::Synchrony.sleep(delay.to_f) [200, {}, delay] end end describe 'HTTP Pipelining support' do it 'serves multiple requests via single connection' do with_api(Interleaving) do start = Time.now.to_f res = [] conn = EM::HttpRequest.new('http://localhost:9000') r1 = conn.aget :query => {:delay => 0.3}, :keepalive => true r2 = conn.aget :query => {:delay => 0.2} r1.errback { fail } r1.callback do |c| res << c.response c.response.should match('0.3') end r2.errback { fail } r2.callback do |c| res << c.response res.should == ['0.3', '0.2'] (Time.now.to_f - start).should be_within(0.1).of(0.3) stop end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
goliath-0.9.2 | spec/integration/pipelining_spec.rb |
goliath-0.9.1 | spec/integration/pipelining_spec.rb |