mirror of
https://github.com/opf/openproject.git
synced 2026-06-13 19:20:00 +00:00
0b87e7543f
Rolling out frozen string literals further by freezing all string literals in core specs.
37 lines
1019 B
Ruby
37 lines
1019 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "webrick"
|
|
require "httpx"
|
|
|
|
RSpec.describe "HTTPX" do
|
|
describe "persistent connections" do
|
|
it "does not hang forever when used to request HTTP 1.1 server" do
|
|
server = WEBrick::HTTPServer.new(
|
|
Port: 0,
|
|
Logger: WEBrick::Log.new(StringIO.new),
|
|
AccessLog: []
|
|
)
|
|
server.mount_proc "/" do |_req, res|
|
|
res.body = "Response Body"
|
|
end
|
|
port = server.listeners[0].addr[1]
|
|
|
|
Thread.new { server.start }
|
|
session = HTTPX.plugin(:persistent).with(timeout: { keep_alive_timeout: 2 })
|
|
number_of_requests_made = 0
|
|
begin
|
|
Timeout.timeout(10) do
|
|
session.post("http://localhost:#{port}").raise_for_status
|
|
number_of_requests_made += 1
|
|
sleep 4
|
|
session.post("http://localhost:#{port}").raise_for_status
|
|
number_of_requests_made += 1
|
|
end
|
|
ensure
|
|
expect(number_of_requests_made).to eq(2)
|
|
server.shutdown
|
|
end
|
|
end
|
|
end
|
|
end
|