* * 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:----C+tRmVo5lnZk7G/Wr/MNVP0ekef9bo1htZqf5IzWHf0aU1+lJrrIhrkifwirRq/6z79XHb/SzYYHTvhE1LxCK+iJBOZKqKO67FNOcPqEStteBVWLkL654TgJMsZjS48Wva9f+kfuJgK7XyjljehqQM7YLyKFSegcz+88PMOS/a85UUWj1PVD+g5eFTk8gRXWlBM9W2pu6w+Z7s3hpVP+0xyXzLos0+nEM7gOWF5ciCk5see7syX1KJBNhrWwGzPTipENKggeLeVOhM4Vy2VVS+jBq198fc2JrbqvtwbJC1PVbsbXDIifSU9zWwojBLwrj7FDm3E6L2rj3kmO0yHlCfZ5ZtLmNXDZ/7bYyG1Tj7xgnuyencp0A+uXbCj4aCkoxy6sgTlS3DkLATuJHiqPOXQkv+4BYH1XbfwEy6eba6z4CU/qv0wiJ7RcRNREzXLvQ/B9zDav+5sUi8dPkF9xJQcrvev9ZYeH/kTT2RN3rWGqOZ91CVMLmPqNN4V63aEcQN/yiQmCDZPwpR1HIpyAB9rIWlxvzlkaQoxJJZRkMiXN7oACm+VP5yJVoDoIP1xxiXg7az1o36iiysvI2Sr/Shy7nfvAzqfOxC/ksVSv4OUx90ULK178/r2FuynCuoPEpaoywBYkdU0r4sZjvKyiFWv92wsq/vPnI/rhjiOmWNM=----ATTACHMENT:----MzU0NTM1MjQ0MTg3MDI0NiAxNTA0ODI5ODM1MjU3MTM2IDE2NjY4MTU2MjUyNTQ2MjM=