diff options
author | Jon Moss <me@jonathanmoss.me> | 2016-02-24 21:48:59 -0500 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2016-02-24 21:48:59 -0500 |
commit | a536cc8f1e31e09526b6b43c07ec255d66cd2049 (patch) | |
tree | 43c52cc9a4b8472ce3846e86361b5b15c8875a4d /actioncable/test/connection | |
parent | 8db771bb6977b83408317b6588967d288f5a44cc (diff) | |
download | rails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.tar.gz rails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.tar.bz2 rails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.zip |
Only hijack Rack socket when first needed
Fixes #23471
Diffstat (limited to 'actioncable/test/connection')
-rw-r--r-- | actioncable/test/connection/base_test.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/actioncable/test/connection/base_test.rb b/actioncable/test/connection/base_test.rb index 3bef9e95a1..fb11f9be64 100644 --- a/actioncable/test/connection/base_test.rb +++ b/actioncable/test/connection/base_test.rb @@ -108,6 +108,26 @@ class ActionCable::Connection::BaseTest < ActionCable::TestCase end end + test "rejecting a connection causes a 404" do + run_in_eventmachine do + class CallMeMaybe + def call(*) + raise 'Do not call me!' + end + end + + env = Rack::MockRequest.env_for( + "/test", + { 'HTTP_CONNECTION' => 'upgrade', 'HTTP_UPGRADE' => 'websocket', + 'HTTP_ORIGIN' => 'http://rubyonrails.org', 'rack.hijack' => CallMeMaybe.new } + ) + + connection = ActionCable::Connection::Base.new(@server, env) + response = connection.process + assert_equal 404, response[0] + end + end + private def open_connection env = Rack::MockRequest.env_for "/test", 'HTTP_CONNECTION' => 'upgrade', 'HTTP_UPGRADE' => 'websocket', |