From 336179b30785896f1ad34d4b7bda9cd2197209ef Mon Sep 17 00:00:00 2001 From: Renegade334 Date: Wed, 19 Dec 2018 14:38:42 +0000 Subject: [PATCH] Do not filter non-zero-length IRC command parameters which cast to boolean false --- src/EventQueue.php | 2 +- tests/EventQueueTest.php | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/EventQueue.php b/src/EventQueue.php index 33e9acc..6288375 100644 --- a/src/EventQueue.php +++ b/src/EventQueue.php @@ -134,7 +134,7 @@ protected function queueRequest(UserEventInterface $event, $command, array $para { $event->setPrefix($this->prefix); $event->setCommand($command); - $event->setParams(array_filter($params)); + $event->setParams(array_filter($params, 'strlen')); $this->queue->insert($event, $this->getPriority($command, $params)); } diff --git a/tests/EventQueueTest.php b/tests/EventQueueTest.php index 66d1e9a..43f7766 100644 --- a/tests/EventQueueTest.php +++ b/tests/EventQueueTest.php @@ -251,4 +251,27 @@ public function testNonDestructiveIteration() $this->assertEquals([ $event ], $contents); } + + /** + * Tests that non-empty parameter strings are not truncated. + */ + public function testRequestFilter() + { + $this->assertNull($this->queue->extract()); + + $this->queue->ircMode('#test', '+n', ''); + $this->queue->ircPrivmsg('TestUser', '0'); + + $event = $this->queue->extract(); + $this->assertInstanceOf('\Phergie\Irc\Event\EventInterface', $event); + $this->assertEquals('MODE', $event->getCommand()); + $this->assertEquals([ '#test', '+n' ], $event->getParams()); + + $event = $this->queue->extract(); + $this->assertInstanceOf('\Phergie\Irc\Event\EventInterface', $event); + $this->assertEquals('PRIVMSG', $event->getCommand()); + $this->assertEquals([ 'TestUser', '0' ], $event->getParams()); + + $this->assertNull($this->queue->extract()); + } }