EntityEmbedTwigTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 46
rs 10
c 0
b 0
f 0
wmc 3
lcom 1
cbo 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 4 1
A testTwigExtensionLoaded() 0 10 1
A testEntityEmbedTwigFunction() 0 17 1
1
<?php
2
3
namespace Drupal\entity_embed\Tests;
4
5
/**
6
 * Tests Twig extension provided by entity_embed.
7
 *
8
 * @group entity_embed
9
 */
10
class EntityEmbedTwigTest extends EntityEmbedTestBase {
11
12
  /**
13
   *
14
   */
15
  protected function setUp() {
16
    parent::setUp();
17
    \Drupal::service('theme_handler')->install(array('test_theme'));
18
  }
19
20
  /**
21
   * Tests that the provided Twig extension loads the service appropriately.
22
   */
23
  public function testTwigExtensionLoaded() {
24
    $twig_service = \Drupal::service('twig');
25
26
    $ext = $twig_service->getExtension('entity_embed.twig.entity_embed_twig_extension');
27
28
    // @todo why is the string
29
    // 'Drupal\\entity_embed\\Twig\\EntityEmbedTwigExtension'
30
    // and not '\Drupal\entity_embed\Twig\EntityEmbedTwigExtension' ?
31
    $this->assertEqual(get_class($ext), 'Drupal\\entity_embed\\Twig\\EntityEmbedTwigExtension', 'Extension loaded successfully.');
32
  }
33
34
  /**
35
   * Tests that the Twig extension's filter produces expected output.
36
   */
37
  public function testEntityEmbedTwigFunction() {
38
    // Test embedding a node using entity ID.
39
    $this->drupalGet('entity_embed_twig_test/id');
40
    $this->assertText($this->node->body->value, 'Embedded node exists in page');
41
42
    // Test 'Label' Entity Embed Display plugin.
43
    $this->drupalGet('entity_embed_twig_test/label_plugin');
44
    $this->assertText($this->node->title->value, 'Title of the embedded node exists in page.');
45
    $this->assertNoText($this->node->body->value, 'Body of embedded node does not exists in page when "Label" plugin is used.');
46
    $this->assertLinkByHref('node/' . $this->node->id(), 0, 'Link to the embedded node exists when "Label" plugin is used.');
47
48
    // Test 'Label' Entity Embed Display plugin without linking to the node.
49
    $this->drupalGet('entity_embed_twig_test/label_plugin_no_link');
50
    $this->assertText($this->node->title->value, 'Title of the embedded node exists in page.');
51
    $this->assertNoText($this->node->body->value, 'Body of embedded node does not exists in page when "Label" plugin is used.');
52
    $this->assertNoLinkByHref('node/' . $this->node->id(), 0, 'Link to the embedded node does not exists.');
53
  }
54
55
}
56