Yaffs site version 1.1
[yaffs-website] / vendor / twig / twig / test / Twig / Tests / Loader / ArrayTest.php
diff --git a/vendor/twig/twig/test/Twig/Tests/Loader/ArrayTest.php b/vendor/twig/twig/test/Twig/Tests/Loader/ArrayTest.php
new file mode 100644 (file)
index 0000000..7e1ea81
--- /dev/null
@@ -0,0 +1,137 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+class Twig_Tests_Loader_ArrayTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * @group legacy
+     */
+    public function testGetSource()
+    {
+        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
+
+        $this->assertEquals('bar', $loader->getSource('foo'));
+    }
+
+    /**
+     * @group legacy
+     * @expectedException Twig_Error_Loader
+     */
+    public function testGetSourceWhenTemplateDoesNotExist()
+    {
+        $loader = new Twig_Loader_Array(array());
+
+        $loader->getSource('foo');
+    }
+
+    /**
+     * @expectedException Twig_Error_Loader
+     */
+    public function testGetSourceContextWhenTemplateDoesNotExist()
+    {
+        $loader = new Twig_Loader_Array(array());
+
+        $loader->getSourceContext('foo');
+    }
+
+    public function testGetCacheKey()
+    {
+        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
+
+        $this->assertEquals('foo:bar', $loader->getCacheKey('foo'));
+    }
+
+    public function testGetCacheKeyWhenTemplateHasDuplicateContent()
+    {
+        $loader = new Twig_Loader_Array(array(
+            'foo' => 'bar',
+            'baz' => 'bar',
+        ));
+
+        $this->assertEquals('foo:bar', $loader->getCacheKey('foo'));
+        $this->assertEquals('baz:bar', $loader->getCacheKey('baz'));
+    }
+
+    public function testGetCacheKeyIsProtectedFromEdgeCollisions()
+    {
+        $loader = new Twig_Loader_Array(array(
+            'foo__' => 'bar',
+            'foo' => '__bar',
+        ));
+
+        $this->assertEquals('foo__:bar', $loader->getCacheKey('foo__'));
+        $this->assertEquals('foo:__bar', $loader->getCacheKey('foo'));
+    }
+
+    /**
+     * @expectedException Twig_Error_Loader
+     */
+    public function testGetCacheKeyWhenTemplateDoesNotExist()
+    {
+        $loader = new Twig_Loader_Array(array());
+
+        $loader->getCacheKey('foo');
+    }
+
+    public function testSetTemplate()
+    {
+        $loader = new Twig_Loader_Array(array());
+        $loader->setTemplate('foo', 'bar');
+
+        $this->assertEquals('bar', $loader->getSourceContext('foo')->getCode());
+    }
+
+    public function testIsFresh()
+    {
+        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
+        $this->assertTrue($loader->isFresh('foo', time()));
+    }
+
+    /**
+     * @expectedException Twig_Error_Loader
+     */
+    public function testIsFreshWhenTemplateDoesNotExist()
+    {
+        $loader = new Twig_Loader_Array(array());
+
+        $loader->isFresh('foo', time());
+    }
+
+    public function testTemplateReference()
+    {
+        $name = new Twig_Test_Loader_TemplateReference('foo');
+        $loader = new Twig_Loader_Array(array('foo' => 'bar'));
+
+        $loader->getCacheKey($name);
+        $loader->getSourceContext($name);
+        $loader->isFresh($name, time());
+        $loader->setTemplate($name, 'foo:bar');
+
+        // add a dummy assertion here to satisfy PHPUnit, the only thing we want to test is that the code above
+        // can be executed without crashing PHP
+        $this->addToAssertionCount(1);
+    }
+}
+
+class Twig_Test_Loader_TemplateReference
+{
+    private $name;
+
+    public function __construct($name)
+    {
+        $this->name = $name;
+    }
+
+    public function __toString()
+    {
+        return $this->name;
+    }
+}