Yaffs site version 1.1
[yaffs-website] / vendor / twig / twig / test / Twig / Tests / CustomExtensionTest.php
diff --git a/vendor/twig/twig/test/Twig/Tests/CustomExtensionTest.php b/vendor/twig/twig/test/Twig/Tests/CustomExtensionTest.php
new file mode 100644 (file)
index 0000000..c706df2
--- /dev/null
@@ -0,0 +1,93 @@
+<?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 CustomExtensionTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * @requires PHP 5.3
+     * @dataProvider provideInvalidExtensions
+     */
+    public function testGetInvalidOperators(Twig_ExtensionInterface $extension, $expectedExceptionMessage)
+    {
+        if (method_exists($this, 'expectException')) {
+            $this->expectException('InvalidArgumentException');
+            $this->expectExceptionMessage($expectedExceptionMessage);
+        } else {
+            $this->setExpectedException('InvalidArgumentException', $expectedExceptionMessage);
+        }
+
+        $env = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock());
+        $env->addExtension($extension);
+        $env->getUnaryOperators();
+    }
+
+    public function provideInvalidExtensions()
+    {
+        return array(
+            array(new InvalidOperatorExtension(new stdClass()), '"InvalidOperatorExtension::getOperators()" must return an array with operators, got "stdClass".'),
+            array(new InvalidOperatorExtension(array(1, 2, 3)), '"InvalidOperatorExtension::getOperators()" must return an array of 2 elements, got 3.'),
+        );
+    }
+}
+
+class InvalidOperatorExtension implements Twig_ExtensionInterface
+{
+    private $operators;
+
+    public function __construct($operators)
+    {
+        $this->operators = $operators;
+    }
+
+    public function initRuntime(Twig_Environment $environment)
+    {
+    }
+
+    public function getTokenParsers()
+    {
+        return array();
+    }
+
+    public function getNodeVisitors()
+    {
+        return array();
+    }
+
+    public function getFilters()
+    {
+        return array();
+    }
+
+    public function getTests()
+    {
+        return array();
+    }
+
+    public function getFunctions()
+    {
+        return array();
+    }
+
+    public function getGlobals()
+    {
+        return array();
+    }
+
+    public function getOperators()
+    {
+        return $this->operators;
+    }
+
+    public function getName()
+    {
+        return __CLASS__;
+    }
+}