* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Monolog\Handler; use Monolog\TestCase; use Monolog\Logger; /** * @covers Monolog\Handler\BrowserConsoleHandlerTest */ class BrowserConsoleHandlerTest extends TestCase { protected function setUp() { BrowserConsoleHandler::reset(); } protected function generateScript() { $reflMethod = new \ReflectionMethod('Monolog\Handler\BrowserConsoleHandler', 'generateScript'); $reflMethod->setAccessible(true); return $reflMethod->invoke(null); } public function testStyling() { $handler = new BrowserConsoleHandler(); $handler->setFormatter($this->getIdentityFormatter()); $handler->handle($this->getRecord(Logger::DEBUG, 'foo[[bar]]{color: red}')); $expected = <<assertEquals($expected, $this->generateScript()); } public function testEscaping() { $handler = new BrowserConsoleHandler(); $handler->setFormatter($this->getIdentityFormatter()); $handler->handle($this->getRecord(Logger::DEBUG, "[foo] [[\"bar\n[baz]\"]]{color: red}")); $expected = <<assertEquals($expected, $this->generateScript()); } public function testAutolabel() { $handler = new BrowserConsoleHandler(); $handler->setFormatter($this->getIdentityFormatter()); $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); $handler->handle($this->getRecord(Logger::DEBUG, '[[bar]]{macro: autolabel}')); $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}')); $expected = <<assertEquals($expected, $this->generateScript()); } public function testContext() { $handler = new BrowserConsoleHandler(); $handler->setFormatter($this->getIdentityFormatter()); $handler->handle($this->getRecord(Logger::DEBUG, 'test', array('foo' => 'bar'))); $expected = <<assertEquals($expected, $this->generateScript()); } public function testConcurrentHandlers() { $handler1 = new BrowserConsoleHandler(); $handler1->setFormatter($this->getIdentityFormatter()); $handler2 = new BrowserConsoleHandler(); $handler2->setFormatter($this->getIdentityFormatter()); $handler1->handle($this->getRecord(Logger::DEBUG, 'test1')); $handler2->handle($this->getRecord(Logger::DEBUG, 'test2')); $handler1->handle($this->getRecord(Logger::DEBUG, 'test3')); $handler2->handle($this->getRecord(Logger::DEBUG, 'test4')); $expected = <<assertEquals($expected, $this->generateScript()); } }