annotate core/modules/node/tests/src/Functional/NodeTemplateSuggestionsTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\node\Functional;
Chris@0 4
Chris@0 5 /**
Chris@0 6 * Tests node template suggestions.
Chris@0 7 *
Chris@0 8 * @group node
Chris@0 9 */
Chris@0 10 class NodeTemplateSuggestionsTest extends NodeTestBase {
Chris@0 11
Chris@0 12 /**
Chris@0 13 * Tests if template_preprocess_node() generates the correct suggestions.
Chris@0 14 */
Chris@0 15 public function testNodeThemeHookSuggestions() {
Chris@0 16 // Create node to be rendered.
Chris@0 17 $node = $this->drupalCreateNode();
Chris@0 18 $view_mode = 'full';
Chris@0 19
Chris@0 20 // Simulate theming of the node.
Chris@0 21 $build = \Drupal::entityManager()->getViewBuilder('node')->view($node, $view_mode);
Chris@0 22
Chris@0 23 $variables['elements'] = $build;
Chris@0 24 $suggestions = \Drupal::moduleHandler()->invokeAll('theme_suggestions_node', [$variables]);
Chris@0 25
Chris@0 26 $this->assertEqual($suggestions, ['node__full', 'node__page', 'node__page__full', 'node__' . $node->id(), 'node__' . $node->id() . '__full'], 'Found expected node suggestions.');
Chris@0 27
Chris@0 28 // Change the view mode.
Chris@0 29 $view_mode = 'node.my_custom_view_mode';
Chris@0 30 $build = \Drupal::entityManager()->getViewBuilder('node')->view($node, $view_mode);
Chris@0 31
Chris@0 32 $variables['elements'] = $build;
Chris@0 33 $suggestions = \Drupal::moduleHandler()->invokeAll('theme_suggestions_node', [$variables]);
Chris@0 34
Chris@0 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.');
Chris@0 36 }
Chris@0 37
Chris@0 38 }