mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-04 00:00:37 -04:00
connection After the connection has been upgraded and session is kept open, subsequent requests were still trying to upgrade it. This fixes it by marking the connection as upgraded, and falling back to normal behaviour when it is.
41 lines
1.4 KiB
Ruby
41 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Requests
|
|
module Plugins
|
|
module H2C
|
|
def test_plugin_h2c
|
|
HTTPX.plugin(SessionWithPool).plugin(:h2c).wrap do |session|
|
|
uri = build_uri("/get")
|
|
|
|
request = session.build_request(:get, uri)
|
|
request2 = session.build_request(:get, uri)
|
|
response = session.request(request)
|
|
verify_status(response, 200)
|
|
assert response.version == "2.0", "http h2c requests should be in HTTP/2"
|
|
response.close
|
|
# verifies that first request was used to upgrade the connection
|
|
verify_header(request.headers, "connection", "upgrade, http2-settings")
|
|
|
|
response = session.request(request2)
|
|
verify_status(response, 200)
|
|
assert response.version == "2.0", "http h2c requests should be in HTTP/2"
|
|
response.close
|
|
# verifies that first request was used to upgrade the connection
|
|
verify_no_header(request2.headers, "connection")
|
|
end
|
|
end
|
|
|
|
def test_plugin_h2c_multiple
|
|
session = HTTPX.plugin(SessionWithPool).plugin(:h2c)
|
|
uri = build_uri("/get")
|
|
responses = session.get(uri, uri, uri)
|
|
responses.each do |response|
|
|
verify_status(response, 200)
|
|
assert response.version == "2.0", "http h2c requests should be in HTTP/2"
|
|
response.close
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|