diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2015-12-11 17:22:56 +0100 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2015-12-11 17:22:56 +0100 |
commit | a86d50633939efead3a057302210dc25ee614b2f (patch) | |
tree | 44b9355919fb6eadd957ed9f932f58312dc7cc75 /test/connection | |
parent | cf4d9aa992f99ca19fd32446d081ba7d145fbeae (diff) | |
parent | 952887a8bd1fc1e197a482b01c6b1b1ccbcdba2d (diff) | |
download | rails-a86d50633939efead3a057302210dc25ee614b2f.tar.gz rails-a86d50633939efead3a057302210dc25ee614b2f.tar.bz2 rails-a86d50633939efead3a057302210dc25ee614b2f.zip |
Merge pull request #115 from habermann24/master
Fix an error when using multiple gid identifiers
Diffstat (limited to 'test/connection')
-rw-r--r-- | test/connection/multiple_identifiers_test.rb | 41 |
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 |