diff options
author | Lachlan Sylvester <lachlan.sylvester@publicisfrontfoot.com.au> | 2015-07-22 11:03:47 +1000 |
---|---|---|
committer | Lachlan Sylvester <lachlan.sylvester@publicisfrontfoot.com.au> | 2015-07-28 17:31:37 +1000 |
commit | 5954fd1e0aa907e07ffff932aedc51109d4ce56d (patch) | |
tree | 76fc4b396065d92d6b62b0f3ce74b122d97901b1 /test/channel | |
parent | 6ee8bb9310f78de85e6b89c8cac33493b0582383 (diff) | |
download | rails-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.rb | 29 | ||||
-rw-r--r-- | test/channel/naming_test.rb | 10 | ||||
-rw-r--r-- | test/channel/stream_test.rb | 14 |
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 |