diff -u b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php --- b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php +++ b/core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php @@ -20,35 +20,21 @@ class TwigExtensionTest extends UnitTestCase { /** - * The Twig environment. + * Tests the escaping * - * @var \Twig_Environment - */ - protected $twig; - - /** - * {@inheritdoc} + * @dataProvider providerTestEscaping */ - protected function setUp() { - parent::setUp(); + public function testEscaping($template, $expected) { $renderer = $this->getMock('\Drupal\Core\Render\RendererInterface'); - $this->twig = new \Twig_Environment(NULL, array( + $twig = new \Twig_Environment(NULL, array( 'debug' => TRUE, 'cache' => FALSE, 'autoescape' => TRUE, 'optimizations' => 0 )); - $this->twig->addExtension((new TwigExtension($renderer))->setGenerators($this->getMock('Drupal\Core\Routing\UrlGeneratorInterface'), $this->getMock('Drupal\Core\Theme\ThemeManagerInterface'))); - - } + $twig->addExtension((new TwigExtension($renderer))->setGenerators($this->getMock('Drupal\Core\Routing\UrlGeneratorInterface'), $this->getMock('Drupal\Core\Theme\ThemeManagerInterface'))); - /** - * Tests the escaping - * - * @dataProvider providerTestEscaping - */ - public function testEscaping($template, $expected) { - $nodes = $this->twig->parse($this->twig->tokenize($template)); + $nodes = $twig->parse($twig->tokenize($template)); $this->assertSame($expected, $nodes->getNode('body') ->getNode(0) @@ -90,10 +76,28 @@ * Tests the active_theme function. */ public function testActiveTheme() { - $nodes = $this->twig->parse($this->twig->tokenize('{{ active_theme() }}')); - - // @todo Assert that the active theme name was rendered. - $this->assertFalse(FALSE); + $renderer = $this->getMock('\Drupal\Core\Render\RendererInterface'); + $extension = new TwigExtension($renderer); + $url_generator = $this->getMock('\Drupal\Core\Routing\UrlGeneratorInterface'); + $theme_manager = $this->getMock('\Drupal\Core\Theme\ThemeManagerInterface'); + $active_theme = $this->getMockBuilder('\Drupal\Core\Theme\ActiveTheme') + ->disableOriginalConstructor() + ->getMock(); + $active_theme + ->expects($this->once()) + ->method('getName') + ->willReturn('test_theme'); + $theme_manager + ->expects($this->once()) + ->method('getActiveTheme') + ->willReturn($active_theme); + $extension->setGenerators($url_generator, $theme_manager); + + $loader = new \Twig_Loader_String(); + $twig = new \Twig_Environment($loader); + $twig->addExtension($extension); + $result = $twig->render('{{ active_theme() }}'); + $this->assertEquals('test_theme', $result); } }