Файл: symfony-2.7/src/Symfony/Bundle/TwigBundle/Tests/Loader/FilesystemLoaderTest.php
Строк: 147
<?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 SymfonyBundleTwigBundleTestsLoader;
use SymfonyBundleFrameworkBundleTemplatingTemplateReference;
use SymfonyBundleTwigBundleLoaderFilesystemLoader;
use SymfonyBundleTwigBundleTestsTestCase;
class FilesystemLoaderTest extends TestCase
{
public function testGetSource()
{
$parser = $this->getMock('SymfonyComponentTemplatingTemplateNameParserInterface');
$locator = $this->getMock('SymfonyComponentConfigFileLocatorInterface');
$locator
->expects($this->once())
->method('locate')
->will($this->returnValue(__DIR__.'/../DependencyInjection/Fixtures/Resources/views/layout.html.twig'))
;
$loader = new FilesystemLoader($locator, $parser);
$loader->addPath(__DIR__.'/../DependencyInjection/Fixtures/Resources/views', 'namespace');
// Twig-style
$this->assertEquals("This is a layoutn", $loader->getSource('@namespace/layout.html.twig'));
// Symfony-style
$this->assertEquals("This is a layoutn", $loader->getSource('TwigBundle::layout.html.twig'));
}
public function testExists()
{
// should return true for templates that Twig does not find, but Symfony does
$parser = $this->getMock('SymfonyComponentTemplatingTemplateNameParserInterface');
$locator = $this->getMock('SymfonyComponentConfigFileLocatorInterface');
$locator
->expects($this->once())
->method('locate')
->will($this->returnValue($template = __DIR__.'/../DependencyInjection/Fixtures/Resources/views/layout.html.twig'))
;
$loader = new FilesystemLoader($locator, $parser);
return $this->assertTrue($loader->exists($template));
}
/**
* @expectedException Twig_Error_Loader
*/
public function testTwigErrorIfLocatorThrowsInvalid()
{
$parser = $this->getMock('SymfonyComponentTemplatingTemplateNameParserInterface');
$parser
->expects($this->once())
->method('parse')
->with('name.format.engine')
->will($this->returnValue(new TemplateReference('', '', 'name', 'format', 'engine')))
;
$locator = $this->getMock('SymfonyComponentConfigFileLocatorInterface');
$locator
->expects($this->once())
->method('locate')
->will($this->throwException(new InvalidArgumentException('Unable to find template "NonExistent".')))
;
$loader = new FilesystemLoader($locator, $parser);
$loader->getCacheKey('name.format.engine');
}
/**
* @expectedException Twig_Error_Loader
*/
public function testTwigErrorIfLocatorReturnsFalse()
{
$parser = $this->getMock('SymfonyComponentTemplatingTemplateNameParserInterface');
$parser
->expects($this->once())
->method('parse')
->with('name.format.engine')
->will($this->returnValue(new TemplateReference('', '', 'name', 'format', 'engine')))
;
$locator = $this->getMock('SymfonyComponentConfigFileLocatorInterface');
$locator
->expects($this->once())
->method('locate')
->will($this->returnValue(false))
;
$loader = new FilesystemLoader($locator, $parser);
$loader->getCacheKey('name.format.engine');
}
}