ConfigurationTest.php 4.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection;
  11. use Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration;
  12. use Symfony\Component\Config\Definition\Processor;
  13. class ConfigurationTest extends \PHPUnit_Framework_TestCase
  14. {
  15. /**
  16. * @dataProvider getTestConfigTreeData
  17. */
  18. public function testConfigTree($options, $results)
  19. {
  20. $processor = new Processor();
  21. $configuration = new Configuration(array());
  22. $config = $processor->processConfiguration($configuration, array($options));
  23. $this->assertEquals($results, $config);
  24. }
  25. public function getTestConfigTreeData()
  26. {
  27. return array(
  28. array(array('secret' => 's3cr3t'), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  29. );
  30. }
  31. /**
  32. * @dataProvider getTestValidTrustedProxiesData
  33. */
  34. public function testValidTrustedProxies($options, $results)
  35. {
  36. $processor = new Processor();
  37. $configuration = new Configuration(array());
  38. $config = $processor->processConfiguration($configuration, array($options));
  39. $this->assertEquals($results, $config);
  40. }
  41. public function getTestValidTrustedProxiesData()
  42. {
  43. return array(
  44. array(array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  45. array(array('secret' => 's3cr3t', 'trusted_proxies' => array('::1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('::1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  46. array(array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1', '::1')), array('secret' => 's3cr3t', 'trusted_proxies' => array('127.0.0.1', '::1'), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  47. array(array('secret' => 's3cr3t', 'trusted_proxies' => null), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  48. array(array('secret' => 's3cr3t', 'trusted_proxies' => false), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  49. array(array('secret' => 's3cr3t', 'trusted_proxies' => array()), array('secret' => 's3cr3t', 'trusted_proxies' => array(), 'trust_proxy_headers' => false, 'ide' => NULL, 'annotations' => array('cache' => 'file', 'file_cache_dir' => '%kernel.cache_dir%/annotations', 'debug' => false))),
  50. );
  51. }
  52. /**
  53. * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
  54. */
  55. public function testInvalidTypeTrustedProxies()
  56. {
  57. $processor = new Processor();
  58. $configuration = new Configuration(array());
  59. $config = $processor->processConfiguration($configuration, array(array('secret' => 's3cr3t', 'trusted_proxies' => 'Not an IP address')));
  60. }
  61. /**
  62. * @expectedException Symfony\Component\Config\Definition\Exception\InvalidConfigurationException
  63. */
  64. public function testInvalidValueTrustedProxies()
  65. {
  66. $processor = new Processor();
  67. $configuration = new Configuration(array());
  68. $config = $processor->processConfiguration($configuration, array(array('secret' => 's3cr3t', 'trusted_proxies' => array('Not an IP address'))));
  69. }
  70. }