* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bridge\Twig\Tests\Extension; use PHPUnit\Framework\TestCase; use Symfony\Bridge\Twig\Extension\CodeExtension; use Symfony\Component\HttpKernel\Debug\FileLinkFormatter; class CodeExtensionTest extends TestCase { public function testFormatFile() { $expected = sprintf('%s at line 25', substr(__FILE__, 5), __FILE__); $this->assertEquals($expected, $this->getExtension()->formatFile(__FILE__, 25)); } /** * @dataProvider getClassNameProvider */ public function testGettingClassAbbreviation($class, $abbr) { $this->assertEquals($this->getExtension()->abbrClass($class), $abbr); } /** * @dataProvider getMethodNameProvider */ public function testGettingMethodAbbreviation($method, $abbr) { $this->assertEquals($this->getExtension()->abbrMethod($method), $abbr); } public function getClassNameProvider() { return array( array('F\Q\N\Foo', 'Foo'), array('Bare', 'Bare'), ); } public function getMethodNameProvider() { return array( array('F\Q\N\Foo::Method', 'Foo::Method()'), array('Bare::Method', 'Bare::Method()'), array('Closure', 'Closure'), array('Method', 'Method()'), ); } public function testGetName() { $this->assertEquals('code', $this->getExtension()->getName()); } protected function getExtension() { return new CodeExtension(new FileLinkFormatter('proto://%f#&line=%l&'.substr(__FILE__, 0, 5).'>foobar'), '/root', 'UTF-8'); } }