diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2015-07-29 21:57:20 +0200 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2015-07-29 21:57:20 +0200 |
commit | ae61460cb2ebcc25528686d896c136522690f083 (patch) | |
tree | 65036480d3fddc27f0bfafd17d10eb1e27debc91 /test | |
parent | 437ed97f7611cb34c6f47d27df25053f988a228f (diff) | |
parent | 5954fd1e0aa907e07ffff932aedc51109d4ce56d (diff) | |
download | rails-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')
-rw-r--r-- | test/channel/broadcasting_test.rb | 29 | ||||
-rw-r--r-- | test/channel/naming_test.rb | 10 | ||||
-rw-r--r-- | test/channel/stream_test.rb | 14 | ||||
-rw-r--r-- | test/stubs/room.rb | 4 |
4 files changed, 54 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 diff --git a/test/stubs/room.rb b/test/stubs/room.rb index 388b5ae33f..246d6a98af 100644 --- a/test/stubs/room.rb +++ b/test/stubs/room.rb @@ -9,4 +9,8 @@ class Room def to_global_id "Room##{id}-#{name}" end + + def to_gid_param + to_global_id.to_param + end end |