aboutsummaryrefslogtreecommitdiffstats
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
parente95e598b43d4468107b23097e44700275d11af5e (diff)
downloadrails-a74bcae30a69039baa75205f538b523835929887.tar.gz
rails-a74bcae30a69039baa75205f538b523835929887.tar.bz2
rails-a74bcae30a69039baa75205f538b523835929887.zip
Add multiple identifiers test
-rw-r--r--test/connection/multiple_identifiers_test.rb41
-rw-r--r--test/stubs/global_id.rb8
-rw-r--r--test/stubs/room.rb2
-rw-r--r--test/stubs/user.rb2
4 files changed, 51 insertions, 2 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
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