aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMark Humphreys <mark@mrlhumphreys.com>2015-08-21 21:41:27 +1000
committerMark Humphreys <mark@mrlhumphreys.com>2015-08-24 19:54:14 +1000
commitc74f8df1217e85d2418da43c74c205b888bc2600 (patch)
treeeb0fe9c7e96b94918772714c212c2ac63583939f /test
parent6143352f8ffba303f0c7644be7573f6725554cb3 (diff)
downloadrails-c74f8df1217e85d2418da43c74c205b888bc2600.tar.gz
rails-c74f8df1217e85d2418da43c74c205b888bc2600.tar.bz2
rails-c74f8df1217e85d2418da43c74c205b888bc2600.zip
support connection identifiers that don't implement to_global_id by defaulting to to_s
Diffstat (limited to 'test')
-rw-r--r--test/connection/string_identifier_test.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/connection/string_identifier_test.rb b/test/connection/string_identifier_test.rb
new file mode 100644
index 0000000000..87a9025008
--- /dev/null
+++ b/test/connection/string_identifier_test.rb
@@ -0,0 +1,39 @@
+require 'test_helper'
+require 'stubs/test_server'
+
+class ActionCable::Connection::StringIdentifierTest < ActiveSupport::TestCase
+ class Connection < ActionCable::Connection::Base
+ identified_by :current_token
+
+ def connect
+ self.current_token = "random-string"
+ end
+ end
+
+ setup do
+ @server = TestServer.new
+
+ env = Rack::MockRequest.env_for "/test", 'HTTP_CONNECTION' => 'upgrade', 'HTTP_UPGRADE' => 'websocket'
+ @connection = Connection.new(@server, env)
+ end
+
+ test "connection identifier" do
+ open_connection_with_stubbed_pubsub
+ assert_equal "random-string", @connection.connection_identifier
+ end
+
+ protected
+ def open_connection_with_stubbed_pubsub
+ @server.stubs(:pubsub).returns(stub_everything('pubsub'))
+ open_connection
+ end
+
+ def open_connection
+ @connection.process
+ @connection.send :on_open
+ end
+
+ def close_connection
+ @connection.send :on_close
+ end
+end