From e2e041eded86fdd362b4e6136dca60532b5b0aac Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 29 Jul 2013 00:07:51 +0200 Subject: [PATCH] Store user in a temporary property instead of hacking it into the record --- src/Monolog/Handler/PushoverHandler.php | 9 ++++++--- tests/Monolog/Handler/PushoverHandlerTest.php | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/Monolog/Handler/PushoverHandler.php b/src/Monolog/Handler/PushoverHandler.php index f982d463..2cf4f577 100644 --- a/src/Monolog/Handler/PushoverHandler.php +++ b/src/Monolog/Handler/PushoverHandler.php @@ -24,13 +24,14 @@ class PushoverHandler extends SocketHandler private $token; private $users; private $title; + private $user; private $highPriorityLevel; private $emergencyLevel; /** * @param string $token Pushover api token - * @param string $user Pushover user ids the message will be sent to + * @param string|array $users Pushover user id or array of ids the message will be sent to * @param string $title Title sent to the Pushover API * @param integer $level The minimum logging level at which this handler will be triggered * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not @@ -69,7 +70,7 @@ class PushoverHandler extends SocketHandler $dataArray = array( 'token' => $this->token, - 'user' => $record['extra']['user'], + 'user' => $this->user, 'message' => $message, 'title' => $this->title, 'timestamp' => $timestamp @@ -98,11 +99,13 @@ class PushoverHandler extends SocketHandler public function write(array $record) { foreach ($this->users as $user) { - $record['extra']['user'] = $user; + $this->user = $user; parent::write($record); $this->closeSocket(); } + + $this->user = null; } public function setHighPriorityLevel($value) { diff --git a/tests/Monolog/Handler/PushoverHandlerTest.php b/tests/Monolog/Handler/PushoverHandlerTest.php index a64a7feb..a7d24d2a 100644 --- a/tests/Monolog/Handler/PushoverHandlerTest.php +++ b/tests/Monolog/Handler/PushoverHandlerTest.php @@ -82,7 +82,7 @@ class PushoverHandlerTest extends TestCase $this->assertRegexp('/message=' . $expectedMessage . '&title/', $content); } - public function testWriteWithHighPriority() + public function testWriteWithHighPriority() { $this->createHandler(); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); @@ -92,7 +92,7 @@ class PushoverHandlerTest extends TestCase $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=1$/', $content); } - public function testWriteWithEmergencyPriority() + public function testWriteWithEmergencyPriority() { $this->createHandler(); $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); @@ -102,6 +102,17 @@ class PushoverHandlerTest extends TestCase $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=2$/', $content); } + public function testWriteToMultipleUsers() + { + $this->createHandler('myToken', array('userA', 'userB')); + $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/token=myToken&user=userA&message=test1&title=Monolog×tamp=\d{10}&priority=2POST/', $content); + $this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog×tamp=\d{10}&priority=2$/', $content); + } + private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog') { $constructorArgs = array($token, $user, $title);