init without trunk
This commit is contained in:
parent
ed24ac4994
commit
bb809e7233
14652 changed files with 177862 additions and 94817 deletions
358
vendor/symfony/monolog-bundle/Tests/DependencyInjection/MonologExtensionTest.php
vendored
Normal file
358
vendor/symfony/monolog-bundle/Tests/DependencyInjection/MonologExtensionTest.php
vendored
Normal file
|
|
@ -0,0 +1,358 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bundle\MonologBundle\Tests\DependencyInjection;
|
||||
|
||||
use Symfony\Bundle\MonologBundle\DependencyInjection\MonologExtension;
|
||||
use Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\LoggerChannelPass;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Reference;
|
||||
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
|
||||
|
||||
class MonologExtensionTest extends DependencyInjectionTest
|
||||
{
|
||||
public function testLoadWithDefault()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'stream')))));
|
||||
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.main'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.main')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.main');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.stream.class%');
|
||||
$this->assertDICConstructorArguments($handler, array('%kernel.logs_dir%/%kernel.environment%.log', \Monolog\Logger::DEBUG, true, null));
|
||||
$this->assertDICDefinitionMethodCallAt(0, $handler, 'pushProcessor', array(new Reference('monolog.processor.psr_log_message')));
|
||||
}
|
||||
|
||||
public function testLoadWithCustomValues()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array(
|
||||
'custom' => array('type' => 'stream', 'path' => '/tmp/symfony.log', 'bubble' => false, 'level' => 'ERROR', 'file_permission' => '0666')
|
||||
))));
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.custom'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.custom')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.custom');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.stream.class%');
|
||||
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666));
|
||||
}
|
||||
|
||||
public function testLoadWithNestedHandler()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array(
|
||||
'custom' => array('type' => 'stream', 'path' => '/tmp/symfony.log', 'bubble' => false, 'level' => 'ERROR', 'file_permission' => '0666'),
|
||||
'nested' => array('type' => 'stream', 'path' => '/tmp/symfony.log', 'bubble' => false, 'level' => 'ERROR', 'file_permission' => '0666', 'nested' => true)
|
||||
))));
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.custom'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.nested'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
// Nested handler must not be pushed to logger
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.custom')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.custom');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.stream.class%');
|
||||
$this->assertDICConstructorArguments($handler, array('/tmp/symfony.log', \Monolog\Logger::ERROR, false, 0666));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException InvalidArgumentException
|
||||
*/
|
||||
public function testExceptionWhenInvalidHandler()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('main' => array('type' => 'invalid_handler')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingFingerscrossedWithoutHandler()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('main' => array('type' => 'fingers_crossed')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingFilterWithoutHandler()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('main' => array('type' => 'filter')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingBufferWithoutHandler()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('main' => array('type' => 'buffer')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingGelfWithoutPublisher()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('gelf' => array('type' => 'gelf')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingGelfWithoutPublisherHostname()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('gelf' => array('type' => 'gelf', 'publisher' => array())))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingServiceWithoutId()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('main' => array('type' => 'service')))), $container);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
|
||||
*/
|
||||
public function testExceptionWhenUsingDebugName()
|
||||
{
|
||||
// logger
|
||||
$container = new ContainerBuilder();
|
||||
$loader = new MonologExtension();
|
||||
|
||||
$loader->load(array(array('handlers' => array('debug' => array('type' => 'stream')))), $container);
|
||||
}
|
||||
|
||||
public function testSyslogHandlerWithLogopts()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'syslog', 'logopts' => LOG_CONS)))));
|
||||
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.main'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.main')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.main');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.syslog.class%');
|
||||
$this->assertDICConstructorArguments($handler, array(false, 'user', \Monolog\Logger::DEBUG, true, LOG_CONS));
|
||||
}
|
||||
|
||||
public function testRollbarHandlerCreatesNotifier()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'rollbar', 'token' => 'MY_TOKEN')))));
|
||||
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.main'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.main')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.main');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.rollbar.class%');
|
||||
$this->assertDICConstructorArguments($handler, array(new Reference('monolog.rollbar.notifier.1c8e6a67728dff6a209f828427128dd8b3c2b746'), \Monolog\Logger::DEBUG, true));
|
||||
}
|
||||
|
||||
public function testRollbarHandlerReusesNotifier()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('main' => array('type' => 'rollbar', 'id' => 'my_rollbar_id')))));
|
||||
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.main'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.main')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.main');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.rollbar.class%');
|
||||
$this->assertDICConstructorArguments($handler, array(new Reference('my_rollbar_id'), \Monolog\Logger::DEBUG, true));
|
||||
}
|
||||
|
||||
public function testSocketHandler()
|
||||
{
|
||||
try {
|
||||
$this->getContainer(array(array('handlers' => array('socket' => array('type' => 'socket')))));
|
||||
$this->fail();
|
||||
} catch (InvalidConfigurationException $e) {
|
||||
$this->assertContains('connection_string', $e->getMessage());
|
||||
}
|
||||
|
||||
$container = $this->getContainer(array(array('handlers' => array('socket' => array(
|
||||
'type' => 'socket', 'timeout' => 1, 'persistent' => true,
|
||||
'connection_string' => 'localhost:50505', 'connection_timeout' => '0.6')
|
||||
))));
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.socket'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.socket')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.socket');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.socket.class%');
|
||||
$this->assertDICConstructorArguments($handler, array('localhost:50505', \Monolog\Logger::DEBUG, true));
|
||||
$this->assertDICDefinitionMethodCallAt(0, $handler, 'pushProcessor', array(new Reference('monolog.processor.psr_log_message')));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $handler, 'setTimeout', array('1'));
|
||||
$this->assertDICDefinitionMethodCallAt(2, $handler, 'setConnectionTimeout', array('0.6'));
|
||||
$this->assertDICDefinitionMethodCallAt(3, $handler, 'setPersistent', array(true));
|
||||
}
|
||||
|
||||
public function testRavenHandlerWhenConfigurationIsWrong()
|
||||
{
|
||||
try {
|
||||
$this->getContainer(array(array('handlers' => array('raven' => array('type' => 'raven')))));
|
||||
$this->fail();
|
||||
} catch (InvalidConfigurationException $e) {
|
||||
$this->assertContains('DSN', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function testRavenHandlerWhenADSNIsSpecified()
|
||||
{
|
||||
$dsn = 'http://43f6017361224d098402974103bfc53d:a6a0538fc2934ba2bed32e08741b2cd3@marca.python.live.cheggnet.com:9000/1';
|
||||
|
||||
$container = $this->getContainer(array(array('handlers' => array('raven' => array(
|
||||
'type' => 'raven', 'dsn' => $dsn)
|
||||
))));
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.raven'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.raven')));
|
||||
|
||||
$this->assertTrue($container->hasDefinition('monolog.raven.client.'.sha1($dsn)));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.raven');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.raven.class%');
|
||||
}
|
||||
|
||||
public function testRavenHandlerWhenADSNAndAClientAreSpecified()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('raven' => array(
|
||||
'type' => 'raven', 'dsn' => 'foobar', 'client_id' => 'raven.client')
|
||||
))));
|
||||
|
||||
$this->assertFalse($container->hasDefinition('raven.client'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.raven')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.raven');
|
||||
$this->assertDICConstructorArguments($handler, array(new Reference('raven.client'), 100, true));
|
||||
}
|
||||
|
||||
public function testRavenHandlerWhenAClientIsSpecified()
|
||||
{
|
||||
$container = $this->getContainer(array(array('handlers' => array('raven' => array(
|
||||
'type' => 'raven', 'client_id' => 'raven.client')
|
||||
))));
|
||||
|
||||
$this->assertFalse($container->hasDefinition('raven.client'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.raven')));
|
||||
|
||||
$handler = $container->getDefinition('monolog.handler.raven');
|
||||
$this->assertDICConstructorArguments($handler, array(new Reference('raven.client'), 100, true));
|
||||
}
|
||||
|
||||
public function testLogglyHandler()
|
||||
{
|
||||
$token = '026308d8-2b63-4225-8fe9-e01294b6e472';
|
||||
try {
|
||||
$this->getContainer(array(array('handlers' => array('loggly' => array('type' => 'loggly')))));
|
||||
$this->fail();
|
||||
} catch (InvalidConfigurationException $e) {
|
||||
$this->assertContains('token', $e->getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
$this->getContainer(array(array('handlers' => array('loggly' => array(
|
||||
'type' => 'loggly', 'token' => $token, 'tags' => 'x, 1zone ,www.loggly.com,-us,apache$')
|
||||
))));
|
||||
$this->fail();
|
||||
} catch (InvalidConfigurationException $e) {
|
||||
$this->assertContains('-us, apache$', $e->getMessage());
|
||||
}
|
||||
|
||||
$container = $this->getContainer(array(array('handlers' => array('loggly' => array(
|
||||
'type' => 'loggly', 'token' => $token)
|
||||
))));
|
||||
$this->assertTrue($container->hasDefinition('monolog.logger'));
|
||||
$this->assertTrue($container->hasDefinition('monolog.handler.loggly'));
|
||||
|
||||
$logger = $container->getDefinition('monolog.logger');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $logger, 'useMicrosecondTimestamps', array('%monolog.use_microseconds%'));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $logger, 'pushHandler', array(new Reference('monolog.handler.loggly')));
|
||||
$handler = $container->getDefinition('monolog.handler.loggly');
|
||||
$this->assertDICDefinitionClass($handler, '%monolog.handler.loggly.class%');
|
||||
$this->assertDICConstructorArguments($handler, array($token, \Monolog\Logger::DEBUG, true));
|
||||
$this->assertDICDefinitionMethodCallAt(0, $handler, 'pushProcessor', array(new Reference('monolog.processor.psr_log_message')));
|
||||
|
||||
$container = $this->getContainer(array(array('handlers' => array('loggly' => array(
|
||||
'type' => 'loggly', 'token' => $token, 'tags' => array(' ', 'foo', '', 'bar'))
|
||||
))));
|
||||
$handler = $container->getDefinition('monolog.handler.loggly');
|
||||
$this->assertDICDefinitionMethodCallAt(0, $handler, 'pushProcessor', array(new Reference('monolog.processor.psr_log_message')));
|
||||
$this->assertDICDefinitionMethodCallAt(1, $handler, 'setTag', array('foo,bar'));
|
||||
}
|
||||
|
||||
protected function getContainer(array $config = array())
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->getCompilerPassConfig()->setOptimizationPasses(array());
|
||||
$container->getCompilerPassConfig()->setRemovingPasses(array());
|
||||
$container->addCompilerPass(new LoggerChannelPass());
|
||||
|
||||
$loader = new MonologExtension();
|
||||
$loader->load($config, $container);
|
||||
$container->compile();
|
||||
|
||||
return $container;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue