aboutsummaryrefslogtreecommitdiffstats
path: root/test/connection/multiple_identifiers_test.rb
diff options
context:
space:
mode:
authorJan Habermann <jan@habermann24.com>2015-11-06 00:28:58 +0100
committerJan Habermann <jan@habermann24.com>2015-11-06 00:28:58 +0100
commita74bcae30a69039baa75205f538b523835929887 (patch)
treef45c53c0de4c7e8d8719ba7440813b4771ee5d5b /test/connection/multiple_identifiers_test.rb
parente95e598b43d4468107b23097e44700275d11af5e (diff)
downloadrails-a74bcae30a69039baa75205f538b523835929887.tar.gz
rails-a74bcae30a69039baa75205f538b523835929887.tar.bz2
rails-a74bcae30a69039baa75205f538b523835929887.zip
Add multiple identifiers test
Diffstat (limited to 'test/connection/multiple_identifiers_test.rb')
-rw-r--r--test/connection/multiple_identifiers_test.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/connection/multiple_identifiers_test.rb b/test/connection/multiple_identifiers_test.rb
new file mode 100644
index 0000000000..55a9f96cb3
--- /dev/null
+++ b/test/connection/multiple_identifiers_test.rb
@@ -0,0 +1,41 @@
+require 'test_helper'
+require 'stubs/test_server'
+require 'stubs/user'
+
+class ActionCable::Connection::MultipleIdentifiersTest < ActionCable::TestCase
+ class Connection < ActionCable::Connection::Base
+ identified_by :current_user, :current_room
+
+ def connect
+ self.current_user = User.new "lifo"
+ self.current_room = Room.new "my", "room"
+ end
+ end
+
+ test "multiple connection identifiers" do
+ run_in_eventmachine do
+ open_connection_with_stubbed_pubsub
+ assert_equal "Room#my-room:User#lifo", @connection.connection_identifier
+ end
+ end
+
+ protected
+ def open_connection_with_stubbed_pubsub
+ server = TestServer.new
+ server.stubs(:pubsub).returns(stub_everything('pubsub'))
+
+ open_connection server: server
+ end
+
+ def open_connection(server:)
+ env = Rack::MockRequest.env_for "/test", 'HTTP_CONNECTION' => 'upgrade', 'HTTP_UPGRADE' => 'websocket'
+ @connection = Connection.new(server, env)
+
+ @connection.process
+ @connection.send :on_open
+ end
+
+ def close_connection
+ @connection.send :on_close
+ end
+end