mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-05 00:02:38 -04:00
53 lines
1.1 KiB
Ruby
53 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "webrick"
|
|
require "webrick/httpproxy"
|
|
require "test_helper"
|
|
require "support/http_helpers"
|
|
require "support/proxy_helper"
|
|
require "support/minitest_extensions"
|
|
|
|
class Bug_0_24_1_Test < Minitest::Test
|
|
include HTTPHelpers
|
|
include ProxyHelper
|
|
|
|
Plugin = Module.new do
|
|
@requests = []
|
|
|
|
class << self
|
|
attr_accessor :requests
|
|
end
|
|
|
|
self::ConnectionMethods = Module.new do
|
|
def send(req)
|
|
Plugin.requests << req
|
|
super
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_proxy_plugin_silencing_conn_send_based_plugin
|
|
start_test_servlet(WEBrick::HTTPProxyServer) do |server|
|
|
def server.origin
|
|
sock = listeners.first
|
|
_, sock, ip, _ = sock.addr
|
|
"http://#{ip}:#{sock}"
|
|
end
|
|
proxy_uri = server.origin
|
|
http = HTTPX.plugin(Plugin).plugin(:proxy).plugin(ProxyResponseDetector).with_proxy(uri: proxy_uri)
|
|
uri = build_uri("/get")
|
|
response = http.get(uri)
|
|
verify_status(response, 200)
|
|
assert response.proxied?
|
|
|
|
assert Plugin.requests.size == 1
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def scheme
|
|
"http://"
|
|
end
|
|
end
|