* * 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:----RHmxNrGnVaYX6vTZi7c1KJS2t2NrZ0Wrs3N7pOLzAtOaH2AvEEVovB/cMvKXcHn0JSmOYcI2moMeP1KsiFjESKUueh5mG7fiwtUih0ndb+p8iF377NnguH4qEt/6ZZQLjSSwNg13QG9j3lRFYvg8xBLdYl+20TmjTHN+K8LrZkJkHY7FWq9zBJBLERCyuGXvUu7rEiGKni4JyxOJs5XtuNmBZYxKS2Izkx71kUL0kJQBop3kZcGVFnHo8LZnQ+W/US4g6DGPgp9Q12OezGcmNRKZSw+4qTwZFVStCB1HQGcC7E40nMF4RGCzbQc2M8oCgkt09W9l8vZScxbApet+5wD7N9SdFPWiVFzMetUVlBGxJElreYKe0WwtgZbA5aAl5oRBk2f60kf3XndzrlgY0bo1OmIEHX0Rc3qDTl+bD2eekL8vje1X47ofAVc0baR/dz88bp50o6HgX6jXNE0BOdab6oLEdrgF0NU5mHlnAUl5C2908g7K7STXUQbcJKJwsMdsvKz2i6xmpF5DWusC7imaoXm2O4EAnZ5BHRQsnF39Y8LKnhLgyCSJJrA7tqIr7GF23r69/F4aRxzpUO/TWixCssJFLpds9huW5RdfTzeZjaiIZGfy5/dd3pmVIFdcCEesrboYd9Y0M6eN0bRAe3LK9Ve6X93KjlI7+MvRrP0=----ATTACHMENT:----NDQ0MDc4NTUwNzg1NDU0MyAzMzM3NDQzMjIzOTY3MTY5IDU1NzczOTM1MTc4MTg2MTc=