Mercurial > hg > isophonics-drupal-site
diff core/modules/node/tests/src/Kernel/NodeViewBuilderTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/node/tests/src/Kernel/NodeViewBuilderTest.php Mon Apr 23 09:46:53 2018 +0100 @@ -0,0 +1,101 @@ +<?php + +namespace Drupal\Tests\node\Kernel; + +use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; +use Drupal\node\Entity\Node; +use Drupal\node\Entity\NodeType; +use Drupal\user\Entity\User; + +/** + * Tests the node view builder. + * + * @group node + * + * @coversDefaultClass \Drupal\node\NodeViewBuilder + */ +class NodeViewBuilderTest extends EntityKernelTestBase { + + /** + * {@inheritdoc} + */ + public static $modules = ['node']; + + /** + * The node storage. + * + * @var \Drupal\node\NodeStorageInterface + */ + protected $storage; + + /** + * The node view builder. + * + * @var \Drupal\Core\Entity\EntityViewBuilderInterface + */ + protected $viewBuilder; + + /** + * The renderer. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected $renderer; + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + + $this->storage = $this->entityManager->getStorage('node'); + $this->viewBuilder = $this->entityManager->getViewBuilder('node'); + $this->renderer = $this->container->get('renderer'); + + $type = NodeType::create([ + 'type' => 'article', + 'name' => 'Article', + ]); + $type->save(); + + $this->installSchema('node', 'node_access'); + $this->installConfig(['system', 'node']); + } + + /** + * Tests that node links are displayed correctly in pending revisions. + * + * @covers ::buildComponents + * @covers ::renderLinks + * @covers ::buildLinks + */ + public function testPendingRevisionLinks() { + $account = User::create([ + 'name' => $this->randomString(), + ]); + $account->save(); + + $title = $this->randomMachineName(); + $node = Node::create([ + 'type' => 'article', + 'title' => $title, + 'uid' => $account->id(), + ]); + $node->save(); + + /** @var \Drupal\node\NodeInterface $pending_revision */ + $pending_revision = $this->storage->createRevision($node, FALSE); + $draft_title = $title . ' draft'; + $pending_revision->setTitle($draft_title); + $pending_revision->save(); + + $build = $this->viewBuilder->view($node, 'teaser'); + $output = (string) $this->renderer->renderPlain($build); + $this->assertContains("title=\"$title\"", $output); + + $build = $this->viewBuilder->view($pending_revision, 'teaser'); + $output = (string) $this->renderer->renderPlain($build); + $this->assertContains("title=\"$draft_title\"", $output); + } + +}