From a74bcae30a69039baa75205f538b523835929887 Mon Sep 17 00:00:00 2001 From: Jan Habermann Date: Fri, 6 Nov 2015 00:28:58 +0100 Subject: Add multiple identifiers test --- test/connection/multiple_identifiers_test.rb | 41 ++++++++++++++++++++++++++++ test/stubs/global_id.rb | 8 ++++++ test/stubs/room.rb | 2 +- test/stubs/user.rb | 2 +- 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 test/connection/multiple_identifiers_test.rb create mode 100644 test/stubs/global_id.rb (limited to 'test') 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 diff --git a/test/stubs/global_id.rb b/test/stubs/global_id.rb new file mode 100644 index 0000000000..334f0d03e8 --- /dev/null +++ b/test/stubs/global_id.rb @@ -0,0 +1,8 @@ +class GlobalID + attr_reader :uri + delegate :to_param, :to_s, to: :uri + + def initialize(gid, options = {}) + @uri = gid + end +end diff --git a/test/stubs/room.rb b/test/stubs/room.rb index 246d6a98af..cd66a0b687 100644 --- a/test/stubs/room.rb +++ b/test/stubs/room.rb @@ -7,7 +7,7 @@ class Room end def to_global_id - "Room##{id}-#{name}" + GlobalID.new("Room##{id}-#{name}") end def to_gid_param diff --git a/test/stubs/user.rb b/test/stubs/user.rb index bce7dfc49e..d033e6208b 100644 --- a/test/stubs/user.rb +++ b/test/stubs/user.rb @@ -6,6 +6,6 @@ class User end def to_global_id - "User##{name}" + GlobalID.new("User##{name}") end end -- cgit v1.2.3