Merge branch '2.8' into 3.1

* 2.8:
  [TwigBundle] fixed usage of getSource in tests
  Trim constant values in XmlFileLoader
  move test to the HttpKernel component
  [TwigBridge] fixed Twig_Source required argument
This commit is contained in:
Fabien Potencier 2016-10-22 18:13:38 -07:00
commit d1e0ba973c
10 changed files with 35 additions and 42 deletions

View File

@ -23,7 +23,7 @@ class RoutingExtensionTest extends \PHPUnit_Framework_TestCase
$twig = new \Twig_Environment($this->getMock('Twig_LoaderInterface'), array('debug' => true, 'cache' => false, 'autoescape' => 'html', 'optimizations' => 0));
$twig->addExtension(new RoutingExtension($this->getMock('Symfony\Component\Routing\Generator\UrlGeneratorInterface')));
$nodes = $twig->parse($twig->tokenize(new \Twig_Source($template)));
$nodes = $twig->parse($twig->tokenize(new \Twig_Source($template, '')));
$this->assertSame($mustBeEscaped, $nodes->getNode('body')->getNode(0)->getNode('expr') instanceof \Twig_Node_Expression_Filter);
}

View File

@ -25,7 +25,7 @@ class TwigNodeProvider
new \Twig_Node_Expression_Array(array(), 0),
new \Twig_Node_Expression_Array(array(), 0),
null,
new \Twig_Source('')
new \Twig_Source('', '')
);
}

View File

@ -23,7 +23,7 @@ class FormThemeTokenParserTest extends \PHPUnit_Framework_TestCase
{
$env = new \Twig_Environment($this->getMock('Twig_LoaderInterface'), array('cache' => false, 'autoescape' => false, 'optimizations' => 0));
$env->addTokenParser(new FormThemeTokenParser());
$stream = $env->tokenize(new \Twig_Source($source));
$stream = $env->tokenize(new \Twig_Source($source, ''));
$parser = new \Twig_Parser($env);
$this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0));

View File

@ -85,7 +85,7 @@ class TwigExtractor extends AbstractFileExtractor implements ExtractorInterface
$visitor = $this->twig->getExtension('Symfony\Bridge\Twig\Extension\TranslationExtension')->getTranslationNodeVisitor();
$visitor->enable();
$this->twig->parse($this->twig->tokenize(new \Twig_Source($template)));
$this->twig->parse($this->twig->tokenize(new \Twig_Source($template, '')));
foreach ($visitor->getMessages() as $message) {
$catalogue->set(trim($message[0]), $this->prefix.trim($message[0]), $message[1] ?: $this->defaultDomain);

View File

@ -90,26 +90,6 @@ class AddConsoleCommandPassTest extends \PHPUnit_Framework_TestCase
$container->compile();
}
public function testHttpKernelRegisterCommandsIngoreCommandAsAService()
{
$container = new ContainerBuilder();
$container->addCompilerPass(new AddConsoleCommandPass());
$definition = new Definition('Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\MyCommand');
$definition->addTag('console.command');
$container->setDefinition('my-command', $definition);
$container->compile();
$application = $this->getMock('Symfony\Component\Console\Application');
// Never called, because it's the
// Symfony\Bundle\FrameworkBundle\Console\Application that register
// commands as a service
$application->expects($this->never())->method('add');
$bundle = new ExtensionPresentBundle();
$bundle->setContainer($container);
$bundle->registerCommands($application);
}
}
class MyCommand extends Command

View File

@ -17,7 +17,7 @@ use Symfony\Bundle\TwigBundle\Tests\TestCase;
class FilesystemLoaderTest extends TestCase
{
public function testGetSource()
public function testGetSourceContext()
{
$parser = $this->getMock('Symfony\Component\Templating\TemplateNameParserInterface');
$locator = $this->getMock('Symfony\Component\Config\FileLocatorInterface');
@ -30,10 +30,10 @@ class FilesystemLoaderTest extends TestCase
$loader->addPath(__DIR__.'/../DependencyInjection/Fixtures/Resources/views', 'namespace');
// Twig-style
$this->assertEquals("This is a layout\n", $loader->getSource('@namespace/layout.html.twig'));
$this->assertEquals("This is a layout\n", $loader->getSourceContext('@namespace/layout.html.twig')->getCode());
// Symfony-style
$this->assertEquals("This is a layout\n", $loader->getSource('TwigBundle::layout.html.twig'));
$this->assertEquals("This is a layout\n", $loader->getSourceContext('TwigBundle::layout.html.twig')->getCode());
}
public function testExists()

View File

@ -127,7 +127,11 @@ class TemplateManager
}
try {
$loader->getSource($template);
if ($loader instanceof \Twig_SourceContextLoaderInterface) {
$loader->getSourceContext($template);
} else {
$loader->getSource($template);
}
return true;
} catch (\Twig_Error_Loader $e) {

View File

@ -31,11 +31,6 @@ class TemplateManagerTest extends TestCase
*/
protected $profiler;
/**
* @var \PHPUnit_Framework_MockObject_MockObject
*/
protected $profile;
/**
* @var \Symfony\Bundle\WebProfilerBundle\Profiler\TemplateManager
*/
@ -129,11 +124,7 @@ class TemplateManagerTest extends TestCase
protected function mockProfile()
{
$this->profile = $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profile')
->disableOriginalConstructor()
->getMock();
return $this->profile;
return $this->getMockBuilder('Symfony\Component\HttpKernel\Profiler\Profile')->disableOriginalConstructor()->getMock();
}
protected function mockTwigEnvironment()
@ -144,9 +135,12 @@ class TemplateManagerTest extends TestCase
->method('loadTemplate')
->will($this->returnValue('loadedTemplate'));
$this->twigEnvironment->expects($this->any())
->method('getLoader')
->will($this->returnValue($this->getMock('\Twig_LoaderInterface')));
if (interface_exists('\Twig_SourceContextLoaderInterface')) {
$loader = $this->getMock('\Twig_SourceContextLoaderInterface');
} else {
$loader = $this->getMock('\Twig_LoaderInterface');
}
$this->twigEnvironment->expects($this->any())->method('getLoader')->will($this->returnValue($loader));
return $this->twigEnvironment;
}

View File

@ -391,7 +391,7 @@ class XmlFileLoader extends FileLoader
$arguments[$key] = $arg->nodeValue;
break;
case 'constant':
$arguments[$key] = constant($arg->nodeValue);
$arguments[$key] = constant(trim($arg->nodeValue));
break;
default:
$arguments[$key] = XmlUtils::phpize($arg->nodeValue);

View File

@ -11,6 +11,7 @@
namespace Symfony\Component\HttpKernel\Tests\Bundle;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionNotValidBundle\ExtensionNotValidBundle;
use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\ExtensionPresentBundle;
use Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionAbsentBundle\ExtensionAbsentBundle;
@ -51,4 +52,18 @@ class BundleTest extends \PHPUnit_Framework_TestCase
$bundle = new ExtensionNotValidBundle();
$bundle->getContainerExtension();
}
public function testHttpKernelRegisterCommandsIgnoresCommandsThatAreRegisteredAsServices()
{
$container = new ContainerBuilder();
$container->register('console.command.Symfony_Component_HttpKernel_Tests_Fixtures_ExtensionPresentBundle_Command_FooCommand', 'Symfony\Component\HttpKernel\Tests\Fixtures\ExtensionPresentBundle\Command\FooCommand');
$application = $this->getMock('Symfony\Component\Console\Application');
// add() is never called when the found command classes are already registered as services
$application->expects($this->never())->method('add');
$bundle = new ExtensionPresentBundle();
$bundle->setContainer($container);
$bundle->registerCommands($application);
}
}