3 namespace Drupal\Tests\node\Functional;
6 * Tests node template suggestions.
10 class NodeTemplateSuggestionsTest extends NodeTestBase {
13 * Tests if template_preprocess_node() generates the correct suggestions.
15 public function testNodeThemeHookSuggestions() {
16 // Create node to be rendered.
17 $node = $this->drupalCreateNode();
20 // Simulate theming of the node.
21 $build = \Drupal::entityManager()->getViewBuilder('node')->view($node, $view_mode);
23 $variables['elements'] = $build;
24 $suggestions = \Drupal::moduleHandler()->invokeAll('theme_suggestions_node', [$variables]);
26 $this->assertEqual($suggestions, ['node__full', 'node__page', 'node__page__full', 'node__' . $node->id(), 'node__' . $node->id() . '__full'], 'Found expected node suggestions.');
28 // Change the view mode.
29 $view_mode = 'node.my_custom_view_mode';
30 $build = \Drupal::entityManager()->getViewBuilder('node')->view($node, $view_mode);
32 $variables['elements'] = $build;
33 $suggestions = \Drupal::moduleHandler()->invokeAll('theme_suggestions_node', [$variables]);
35 $this->assertEqual($suggestions, ['node__node_my_custom_view_mode', 'node__page', 'node__page__node_my_custom_view_mode', 'node__' . $node->id(), 'node__' . $node->id() . '__node_my_custom_view_mode'], 'Found expected node suggestions.');