* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Templating\Tests\Loader; use PHPUnit\Framework\TestCase; use Symfony\Component\Templating\Loader\FilesystemLoader; use Symfony\Component\Templating\TemplateReference; class FilesystemLoaderTest extends TestCase { protected static $fixturesPath; public static function setUpBeforeClass() { self::$fixturesPath = realpath(__DIR__.'/../Fixtures/'); } public function testConstructor() { $pathPattern = self::$fixturesPath.'/templates/%name%.%engine%'; $path = self::$fixturesPath.'/templates'; $loader = new ProjectTemplateLoader2($pathPattern); $this->assertEquals(array($pathPattern), $loader->getTemplatePathPatterns(), '__construct() takes a path as its second argument'); $loader = new ProjectTemplateLoader2(array($pathPattern)); $this->assertEquals(array($pathPattern), $loader->getTemplatePathPatterns(), '__construct() takes an array of paths as its second argument'); } public function testIsAbsolutePath() { $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('/foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('c:\\\\foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('c:/foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('\\server\\foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('https://server/foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); $this->assertTrue(ProjectTemplateLoader2::isAbsolutePath('phar://server/foo.xml'), '->isAbsolutePath() returns true if the path is an absolute path'); } public function testLoad() { $pathPattern = self::$fixturesPath.'/templates/%name%'; $path = self::$fixturesPath.'/templates'; $loader = new ProjectTemplateLoader2($pathPattern); $storage = $loader->load(new TemplateReference($path.'/foo.php', 'php')); $this->assertInstanceOf('Symfony\Component\Templating\Storage\FileStorage', $storage, '->load() returns a FileStorage if you pass an absolute path'); $this->assertEquals($path.'/foo.php', (string) $storage, '->load() returns a FileStorage pointing to the passed absolute path'); $this->assertFalse($loader->load(new TemplateReference('bar', 'php')), '->load() returns false if the template is not found'); $storage = $loader->load(new TemplateReference('foo.php', 'php')); $this->assertInstanceOf('Symfony\Component\Templating\Storage\FileStorage', $storage, '->load() returns a FileStorage if you pass a relative template that exists'); $this->assertEquals($path.'/foo.php', (string) $storage, '->load() returns a FileStorage pointing to the absolute path of the template'); $logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(); $logger->expects($this->exactly(2))->method('debug'); $loader = new ProjectTemplateLoader2($pathPattern); $loader->setLogger($logger); $this->assertFalse($loader->load(new TemplateReference('foo.xml', 'php')), '->load() returns false if the template does not exist for the given engine'); $loader = new ProjectTemplateLoader2(array(self::$fixturesPath.'/null/%name%', $pathPattern)); $loader->setLogger($logger); $loader->load(new TemplateReference('foo.php', 'php')); } } class ProjectTemplateLoader2 extends FilesystemLoader { public function getTemplatePathPatterns() { return $this->templatePathPatterns; } public static function isAbsolutePath($path) { return parent::isAbsolutePath($path); } } __halt_compiler();----SIGNATURE:----kFJGPHoYGTnPfRny8eGVvQR83iKZ2E0dC6/kdPqganLodBqDmCJRU6RbTe2CMKFkjOoNObcI2XZKtUruHh1buCQAIJzCUHsQU0vI497Dmwr1W4P0rNaOwqmRETemUK5duYCETIo/mQfb07EBKMJFK53AfADb2hVXMzc9kQE1KVp7gz8lHQoBbj2woIK2Igv4KvJgzqTjMYwzrIX5AA9yO5MZ+QN0Ss5+BAC6RWU2hpqPUL6Ox+JJPeXsSZr2TObOTLtE8MLuRnnMMa9p2aZBiYggGUgG2O5yCfhHRQQ2BYUgekzR82a3D5qgGXjV7EQI4uoKBfpI9I48LTkO9nlg6mUxRiJ5JUwbT7fo+DuxkGRAZTJ3+Qo3Ej0jDTm0pUS8s6FU9Gb/lY//vCfZFLEJ0N1dJBBhpLIdvfQNu27TKRBdmSstiL+Hr7wRiwUbKHZHKWjtN1MsZOiAdjk3Irfd1yseIzgqxQEuFrShgLfUGwzdv1NA4f4ift0n0et2TqFkqXISr3jh2WDhWyACG9mf/rT6vFUw0E8nSJiS5zuU0u6vqT0r1jwr7L4QZEJYOFdhBTqZUGbF51CJ/h1TC3GTf+df7k0PqQf6nu5dSLo/IJo3ZDcrdCVpvUtpXJOZzLxTSjaQnpxvc5Ishsdq7MHRAMOMt6nqVkc02lLPrCOPmzw=----ATTACHMENT:----NzY2NzAyODM5MDM0Njk3OCA1NTU0MzA2NzQ4NTg1MDgyIDM3NDcyMjMxNDMyNjQ4NDA=