diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-19 22:01:19 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2016-09-19 23:14:24 +0200 |
commit | 3dc7a79a3e88ee543f2f032d39b2354548898034 (patch) | |
tree | 9b614bbf93b0ddb8df727c56b5eb476de1741bce /tests/Monolog/Handler/SlackHandlerTest.php | |
parent | a0f59df992f83c4b8c19cfcb891ae247fd7a3872 (diff) | |
download | monolog-3dc7a79a3e88ee543f2f032d39b2354548898034.zip monolog-3dc7a79a3e88ee543f2f032d39b2354548898034.tar.gz monolog-3dc7a79a3e88ee543f2f032d39b2354548898034.tar.bz2 |
Fixing the socket mess, maybe.
Diffstat (limited to 'tests/Monolog/Handler/SlackHandlerTest.php')
-rw-r--r-- | tests/Monolog/Handler/SlackHandlerTest.php | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/tests/Monolog/Handler/SlackHandlerTest.php b/tests/Monolog/Handler/SlackHandlerTest.php index bfacd65..ee8d8dc 100644 --- a/tests/Monolog/Handler/SlackHandlerTest.php +++ b/tests/Monolog/Handler/SlackHandlerTest.php @@ -14,6 +14,7 @@ namespace Monolog\Handler; use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\LineFormatter; +use Monolog\Util\LocalSocket; /** * @author Greg Kedzierski <greg@gregkedzierski.com> @@ -43,7 +44,7 @@ class SlackHandlerTest extends TestCase $this->initHandlerAndSocket(); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->assertRegexp('/POST \/api\/chat.postMessage HTTP\/1.1\\r\\nHost: slack.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); } @@ -52,7 +53,7 @@ class SlackHandlerTest extends TestCase $this->initHandlerAndSocket(); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=&attachments=.*$/', $content); } @@ -60,12 +61,12 @@ class SlackHandlerTest extends TestCase { $this->initHandlerAndSocket('myToken', 'channel1', 'Monolog', false); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->initHandlerAndSocket('myToken', 'channel1', 'Monolog', false); $this->handler->setFormatter(new LineFormatter('foo--%message%')); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test2')); - $content2 = $this->closeSocket(); + $content2 = $this->socket->getOutput(); $this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=test1.*$/', $content); $this->assertRegexp('/token=myToken&channel=channel1&username=Monolog&text=foo--test2.*$/', $content2); @@ -76,7 +77,7 @@ class SlackHandlerTest extends TestCase $this->initHandlerAndSocket('myToken', 'channel1', 'Monolog', true, 'alien'); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->assertRegexp('/icon_emoji=%3Aalien%3A$/', $content); } @@ -88,7 +89,7 @@ class SlackHandlerTest extends TestCase $this->initHandlerAndSocket(); $this->handler->handle($this->getRecord($level, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->assertRegexp('/color%22%3A%22'.$expectedColor.'/', $content); } @@ -97,7 +98,7 @@ class SlackHandlerTest extends TestCase $this->initHandlerAndSocket('myToken', 'channel1', 'Monolog', false); $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - $content = $this->closeSocket(); + $content = $this->socket->getOutput(); $this->assertRegexp('/text=test1/', $content); } @@ -117,28 +118,7 @@ class SlackHandlerTest extends TestCase private function initHandlerAndSocket($token = 'myToken', $channel = 'channel1', $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeExtra = false) { - $tmpFile = sys_get_temp_dir().'/monolog-test-socket.php'; - file_put_contents($tmpFile, <<<'SCRIPT' -<?php - -$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); -socket_bind($sock, '127.0.0.1', 51984); -socket_listen($sock); - -while (true) { - $res = socket_accept($sock); - socket_set_option($res, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 0, "usec" => 500)); - while ($read = socket_read($res, 1024)) { - echo $read; - } - socket_close($res); -} -SCRIPT -); - - $this->socket = new \Symfony\Component\Process\Process(escapeshellarg(PHP_BINARY).' '.escapeshellarg($tmpFile)); - $this->socket->start(); - + $this->socket = LocalSocket::initSocket(); $this->handler = new SlackHandler($token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra); $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); @@ -148,18 +128,8 @@ SCRIPT $this->handler->setFormatter($this->getIdentityFormatter()); } - private function closeSocket() - { - $this->socket->stop(); - - return $this->socket->getOutput(); - } - public function tearDown() { - if (isset($this->socket)) { - $this->closeSocket(); - unset($this->socket); - } + unset($this->socket, $this->handler); } } |