* * 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\Loader; use Symfony\Component\Templating\Loader\CacheLoader; use Symfony\Component\Templating\Storage\StringStorage; use Symfony\Component\Templating\TemplateReferenceInterface; use Symfony\Component\Templating\TemplateReference; class CacheLoaderTest extends TestCase { public function testConstructor() { $loader = new ProjectTemplateLoader($varLoader = new ProjectTemplateLoaderVar(), sys_get_temp_dir()); $this->assertSame($loader->getLoader(), $varLoader, '__construct() takes a template loader as its first argument'); $this->assertEquals(sys_get_temp_dir(), $loader->getDir(), '__construct() takes a directory where to store the cache as its second argument'); } public function testLoad() { $dir = sys_get_temp_dir().DIRECTORY_SEPARATOR.mt_rand(111111, 999999); mkdir($dir, 0777, true); $loader = new ProjectTemplateLoader($varLoader = new ProjectTemplateLoaderVar(), $dir); $this->assertFalse($loader->load(new TemplateReference('foo', 'php')), '->load() returns false if the embed loader is not able to load the template'); $logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(); $logger ->expects($this->once()) ->method('debug') ->with('Storing template in cache.', array('name' => 'index')); $loader->setLogger($logger); $loader->load(new TemplateReference('index')); $logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(); $logger ->expects($this->once()) ->method('debug') ->with('Fetching template from cache.', array('name' => 'index')); $loader->setLogger($logger); $loader->load(new TemplateReference('index')); } } class ProjectTemplateLoader extends CacheLoader { public function getDir() { return $this->dir; } public function getLoader() { return $this->loader; } } class ProjectTemplateLoaderVar extends Loader { public function getIndexTemplate() { return 'Hello World'; } public function getSpecialTemplate() { return 'Hello {{ name }}'; } public function load(TemplateReferenceInterface $template) { if (method_exists($this, $method = 'get'.ucfirst($template->get('name')).'Template')) { return new StringStorage($this->$method()); } return false; } public function isFresh(TemplateReferenceInterface $template, $time) { return false; } } __halt_compiler();----SIGNATURE:----dNDYETZHdqU/XZv88XoM8wTfdqlVmdRE4vb8eWsIr0djlOt75m2Fp62ZXQt389uFttBVNaATlnSvp6iNJT4usc6qk7L/8aj9N4ErNWdjPMZu7f58Qkb544hvMHQOA4/N1I5wmMn1qNcR2BRb7zrGML+HTzqS1YLTOkXhq+Qc9yMSwd7NgwZN4g7TnmPGSjRGofcfXyYkk20rVspDESS5r5qocTeqtJe/pcaQ2jPz6ROzOBfCVbm8ogoX1FGpPvnXMOxlm/+qbUQiUHjV9JUAkyg1CAM53NwHlXjRsF1ER92NFtlhtAUy7IbzX8m8LlXL4ZU2ORZvBrxN548tYvkYucpe+Oooo6Mwtq6+McDOzbIkAlHI0TP9EDwmZE8+iTHSlENrn076jvdpwJ7G0EmeL7+RuSXm31iOkfGRNlmm0y2jEiN+IG5X88btX/7J+LXT3iQQAXGBE/3JFBcX4+kCJ2GVHAM7oZWLUumRSkMpiazX/ylX1R7TUKbUGwD+gHO5TCpFemQwYORPWsjLoJvQcsAONAGNGrqGmjDVUZY9nyroi3hdkRdLok5RxjekCZILB21Pr8YuWkoWTd21q31neyLQUDzHss0jH9uB1BNoqwyuNMs0qnP3lap0XUMISZ7JSBOkhcdM+3YX6hs+cGLHuQeLgZGan+2MYnuz87mquGY=----ATTACHMENT:----NzE5NTcwNjIzNjIwNTg5NiAxNzM1OTM1NTkzNjgyNzQ1IDI1OTM5MzIxNTYyMzk3OTY=