Interim commit.
[yaffs-website] / web / modules / contrib / entity_embed / src / Tests / EntityEmbedTwigTest.php
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 }