aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/test
diff options
context:
space:
mode:
authorJon Moss <me@jonathanmoss.me>2016-02-24 21:48:59 -0500
committerJon Moss <me@jonathanmoss.me>2016-02-24 21:48:59 -0500
commita536cc8f1e31e09526b6b43c07ec255d66cd2049 (patch)
tree43c52cc9a4b8472ce3846e86361b5b15c8875a4d /actioncable/test
parent8db771bb6977b83408317b6588967d288f5a44cc (diff)
downloadrails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.tar.gz
rails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.tar.bz2
rails-a536cc8f1e31e09526b6b43c07ec255d66cd2049.zip
Only hijack Rack socket when first needed
Fixes #23471
Diffstat (limited to 'actioncable/test')
-rw-r--r--actioncable/test/connection/base_test.rb20
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',