Chris@0: install(['test_theme', 'bartik']); Chris@0: $this->twig = \Drupal::service('twig'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Checks to see if a value is a twig template. Chris@0: */ Chris@0: public function assertTwigTemplate($value, $message = '', $group = 'Other') { Chris@0: $this->assertTrue($value instanceof \Twig_Template, $message, $group); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests template discovery using namespaces. Chris@0: */ Chris@0: public function testTemplateDiscovery() { Chris@0: // Tests resolving namespaced templates in modules. Chris@0: $this->assertTwigTemplate($this->twig->resolveTemplate('@node/node.html.twig'), 'Found node.html.twig in node module.'); Chris@0: Chris@0: // Tests resolving namespaced templates in themes. Chris@0: $this->assertTwigTemplate($this->twig->resolveTemplate('@bartik/page.html.twig'), 'Found page.html.twig in Bartik theme.'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests template extension and includes using namespaces. Chris@0: */ Chris@0: public function testTwigNamespaces() { Chris@0: // Test twig @extends and @include in template files. Chris@0: $test = ['#theme' => 'twig_namespace_test']; Chris@0: $this->setRawContent(\Drupal::service('renderer')->renderRoot($test)); Chris@0: Chris@0: $this->assertText('This line is from twig_namespace_a/templates/test.html.twig'); Chris@0: $this->assertText('This line is from twig_namespace_b/templates/test.html.twig'); Chris@0: } Chris@0: Chris@0: }