4 * This file is part of Twig.
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 class CustomExtensionTest extends PHPUnit_Framework_TestCase
16 * @dataProvider provideInvalidExtensions
18 public function testGetInvalidOperators(Twig_ExtensionInterface $extension, $expectedExceptionMessage)
20 if (method_exists($this, 'expectException')) {
21 $this->expectException('InvalidArgumentException');
22 $this->expectExceptionMessage($expectedExceptionMessage);
24 $this->setExpectedException('InvalidArgumentException', $expectedExceptionMessage);
27 $env = new Twig_Environment($this->getMockBuilder('Twig_LoaderInterface')->getMock());
28 $env->addExtension($extension);
29 $env->getUnaryOperators();
32 public function provideInvalidExtensions()
35 array(new InvalidOperatorExtension(new stdClass()), '"InvalidOperatorExtension::getOperators()" must return an array with operators, got "stdClass".'),
36 array(new InvalidOperatorExtension(array(1, 2, 3)), '"InvalidOperatorExtension::getOperators()" must return an array of 2 elements, got 3.'),
41 class InvalidOperatorExtension implements Twig_ExtensionInterface
45 public function __construct($operators)
47 $this->operators = $operators;
50 public function initRuntime(Twig_Environment $environment)
54 public function getTokenParsers()
59 public function getNodeVisitors()
64 public function getFilters()
69 public function getTests()
74 public function getFunctions()
79 public function getGlobals()
84 public function getOperators()
86 return $this->operators;
89 public function getName()