diff --git a/lib/web_push/connections.rb b/lib/web_push/connections.rb index 24a13aa..be6191a 100644 --- a/lib/web_push/connections.rb +++ b/lib/web_push/connections.rb @@ -42,7 +42,7 @@ class WebPush::Connections def request(http, request) unless http.is_a?(HTTP) && http.ipaddr && !http.proxy? && http.use_ssl? && !http.started? - raise ArgumentError, "Only new, direct TLS connections pinned to an address are pooled" + raise ArgumentError, "Only new, direct TLS connections pinned to an address and opened as WebPush::Connections::HTTP are pooled" end address = [ http.address, http.port, http.ipaddr ] diff --git a/test/lib/web_push/connections_test.rb b/test/lib/web_push/connections_test.rb index b93ced3..9eb2b2b 100644 --- a/test/lib/web_push/connections_test.rb +++ b/test/lib/web_push/connections_test.rb @@ -97,14 +97,15 @@ class WebPush::ConnectionsTest < ActiveSupport::TestCase end end - test "only new, direct TLS connections pinned to an address are pooled" do + test "only new, direct TLS connections pinned to an address and opened as WebPush::Connections::HTTP are pooled" do with_push_service do |server| - unpinned = Net::HTTP.new(HOST, server.port, nil).tap { it.use_ssl = true } - proxied = Net::HTTP.new(HOST, server.port, "127.0.0.1", 3128).tap { it.ipaddr = IP; it.use_ssl = true } + unpinned = WebPush::Connections::HTTP.new(HOST, server.port, nil).tap { it.use_ssl = true } + proxied = WebPush::Connections::HTTP.new(HOST, server.port, "127.0.0.1", 3128).tap { it.ipaddr = IP; it.use_ssl = true } plain = pinned_connection(server).tap { it.use_ssl = false } started = pinned_connection(server).tap(&:start) + untracked = Net::HTTP.new(HOST, server.port, nil).tap { it.ipaddr = IP; it.use_ssl = true } - [ unpinned, proxied, plain, started ].each do |http| + [ unpinned, proxied, plain, started, untracked ].each do |http| assert_raises(ArgumentError) { @connections.request(http, push_request) } end assert_empty server.requests