aboutsummaryrefslogtreecommitdiffstats
path: root/test/channel
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2015-07-29 21:57:20 +0200
committerKasper Timm Hansen <kaspth@gmail.com>2015-07-29 21:57:20 +0200
commitae61460cb2ebcc25528686d896c136522690f083 (patch)
tree65036480d3fddc27f0bfafd17d10eb1e27debc91 /test/channel
parent437ed97f7611cb34c6f47d27df25053f988a228f (diff)
parent5954fd1e0aa907e07ffff932aedc51109d4ce56d (diff)
downloadrails-ae61460cb2ebcc25528686d896c136522690f083.tar.gz
rails-ae61460cb2ebcc25528686d896c136522690f083.tar.bz2
rails-ae61460cb2ebcc25528686d896c136522690f083.zip
Merge pull request #34 from lsylvester/add-broadcast_to-and-stream_for-methods-to-channel
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