From 46bbaa03fb59ea947aac94d3518a88ff5ce0f229 Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Sun, 2 Dec 2018 23:49:45 +0100 Subject: [PATCH 1/3] Add test --- tests/Channels/ChannelTest.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/Channels/ChannelTest.php b/tests/Channels/ChannelTest.php index f7e3ca5..82ff1fe 100644 --- a/tests/Channels/ChannelTest.php +++ b/tests/Channels/ChannelTest.php @@ -28,6 +28,27 @@ class ChannelTest extends TestCase ]); } + /** @test */ + public function clients_can_unsubscribe_from_channels() + { + $connection = $this->getConnectedWebSocketConnection(['test-channel']); + + $channel = $this->getChannel($connection, 'test-channel'); + + $this->assertTrue($channel->hasConnections()); + + $message = new Message(json_encode([ + 'event' => 'pusher:unsubscribe', + 'data' => [ + 'channel' => 'test-channel' + ], + ])); + + $this->pusherServer->onMessage($connection, $message); + + $this->assertFalse($channel->hasConnections()); + } + /** @test */ public function a_client_cannot_broadcast_to_other_clients_by_default() { From ad7d01b6852562f4625362b70e5fa2e8f49db63d Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Sun, 2 Dec 2018 23:55:26 +0100 Subject: [PATCH 2/3] Add test --- tests/Messages/PusherClientMessageTest.php | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/Messages/PusherClientMessageTest.php diff --git a/tests/Messages/PusherClientMessageTest.php b/tests/Messages/PusherClientMessageTest.php new file mode 100644 index 0000000..35a860c --- /dev/null +++ b/tests/Messages/PusherClientMessageTest.php @@ -0,0 +1,27 @@ +getConnectedWebSocketConnection(['test-channel']); + + $message = new Message(json_encode([ + 'event' => 'client-test', + 'channel' => 'test-channel', + 'data' => [ + 'client-event' => 'test' + ], + ])); + + $this->pusherServer->onMessage($connection, $message); + + $connection->assertNotSentEvent('client-test'); + } +} \ No newline at end of file From 7cf9461e1bf8b90bbd9cd25b2340cfa9da822fe3 Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Sun, 2 Dec 2018 23:57:12 +0100 Subject: [PATCH 3/3] Add test --- tests/Messages/PusherClientMessageTest.php | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/Messages/PusherClientMessageTest.php b/tests/Messages/PusherClientMessageTest.php index 35a860c..16ecccc 100644 --- a/tests/Messages/PusherClientMessageTest.php +++ b/tests/Messages/PusherClientMessageTest.php @@ -24,4 +24,36 @@ class PusherClientMessageTest extends TestCase $connection->assertNotSentEvent('client-test'); } + + /** @test */ + public function client_messages_get_broadcasted_when_enabled() + { + $this->app['config']->set('websockets.apps', [ + [ + 'name' => 'Test App', + 'id' => 1234, + 'key' => 'TestKey', + 'secret' => 'TestSecret', + 'enable_client_messages' => true, + ], + ]); + + $connection = $this->getConnectedWebSocketConnection(['test-channel']); + + $message = new Message(json_encode([ + 'event' => 'client-test', + 'channel' => 'test-channel', + 'data' => [ + 'client-event' => 'test' + ], + ])); + + $this->pusherServer->onMessage($connection, $message); + + $connection->assertSentEvent('client-test', [ + 'data' => [ + 'client-event' => 'test' + ] + ]); + } } \ No newline at end of file