aboutsummaryrefslogtreecommitdiffstats
path: root/test/channel
diff options
context:
space:
mode:
authorLachlan Sylvester <lachlan.sylvester@publicisfrontfoot.com.au>2015-07-22 11:03:47 +1000
committerLachlan Sylvester <lachlan.sylvester@publicisfrontfoot.com.au>2015-07-28 17:31:37 +1000
commit5954fd1e0aa907e07ffff932aedc51109d4ce56d (patch)
tree76fc4b396065d92d6b62b0f3ce74b122d97901b1 /test/channel
parent6ee8bb9310f78de85e6b89c8cac33493b0582383 (diff)
downloadrails-5954fd1e0aa907e07ffff932aedc51109d4ce56d.tar.gz
rails-5954fd1e0aa907e07ffff932aedc51109d4ce56d.tar.bz2
rails-5954fd1e0aa907e07ffff932aedc51109d4ce56d.zip
add broadcast_to and stream_for methods as per #26
Diffstat (limited to 'test/channel')
-rw-r--r--test/channel/broadcasting_test.rb29
-rw-r--r--test/channel/naming_test.rb10
-rw-r--r--test/channel/stream_test.rb14
3 files changed, 50 insertions, 3 deletions
diff --git a/test/channel/broadcasting_test.rb b/test/channel/broadcasting_test.rb
new file mode 100644
index 0000000000..1de04243e5
--- /dev/null
+++ b/test/channel/broadcasting_test.rb
@@ -0,0 +1,29 @@
+require 'test_helper'
+require 'stubs/test_connection'
+require 'stubs/room'
+
+class ActionCable::Channel::BroadcastingTest < ActiveSupport::TestCase
+ class ChatChannel < ActionCable::Channel::Base
+ end
+
+ setup do
+ @connection = TestConnection.new
+ end
+
+ test "broadcasts_to" do
+ ActionCable.stubs(:server).returns mock().tap { |m| m.expects(:broadcast).with('action_cable:channel:broadcasting_test:chat:Room#1-Campfire', "Hello World") }
+ ChatChannel.broadcast_to(Room.new(1), "Hello World")
+ end
+
+ test "broadcasting_for with an object" do
+ assert_equal "Room#1-Campfire", ChatChannel.broadcasting_for(Room.new(1))
+ end
+
+ test "broadcasting_for with an array" do
+ assert_equal "Room#1-Campfire:Room#2-Campfire", ChatChannel.broadcasting_for([ Room.new(1), Room.new(2) ])
+ end
+
+ test "broadcasting_for with a string" do
+ assert_equal "hello", ChatChannel.broadcasting_for("hello")
+ end
+end
diff --git a/test/channel/naming_test.rb b/test/channel/naming_test.rb
new file mode 100644
index 0000000000..89ef6ad8b0
--- /dev/null
+++ b/test/channel/naming_test.rb
@@ -0,0 +1,10 @@
+require 'test_helper'
+
+class ActionCable::Channel::NamingTest < ActiveSupport::TestCase
+ class ChatChannel < ActionCable::Channel::Base
+ end
+
+ test "channel_name" do
+ assert_equal "action_cable:channel:naming_test:chat", ChatChannel.channel_name
+ end
+end
diff --git a/test/channel/stream_test.rb b/test/channel/stream_test.rb
index 1a8c259d11..b0a6f49072 100644
--- a/test/channel/stream_test.rb
+++ b/test/channel/stream_test.rb
@@ -5,8 +5,10 @@ require 'stubs/room'
class ActionCable::Channel::StreamTest < ActiveSupport::TestCase
class ChatChannel < ActionCable::Channel::Base
def subscribed
- @room = Room.new params[:id]
- stream_from "test_room_#{@room.id}"
+ if params[:id]
+ @room = Room.new params[:id]
+ stream_from "test_room_#{@room.id}"
+ end
end
end
@@ -15,10 +17,16 @@ class ActionCable::Channel::StreamTest < ActiveSupport::TestCase
end
test "streaming start and stop" do
- @connection.expects(:pubsub).returns mock().tap { |m| m.expects(:subscribe) }
+ @connection.expects(:pubsub).returns mock().tap { |m| m.expects(:subscribe).with("test_room_1") }
channel = ChatChannel.new @connection, "{id: 1}", { id: 1 }
@connection.expects(:pubsub).returns mock().tap { |m| m.expects(:unsubscribe_proc) }
channel.unsubscribe_from_channel
end
+
+ test "stream_for" do
+ @connection.expects(:pubsub).returns mock().tap { |m| m.expects(:subscribe).with("action_cable:channel:stream_test:chat:Room#1-Campfire") }
+ channel = ChatChannel.new @connection, ""
+ channel.stream_for Room.new(1)
+ end
end