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 }
|