comparison 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
comparison
equal deleted inserted replaced
13:5fb285c0d0e3 14:1fec387a4317
1 <?php
2
3 namespace Drupal\Tests\node\Kernel;
4
5 use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
6 use Drupal\node\Entity\Node;
7 use Drupal\node\Entity\NodeType;
8 use Drupal\user\Entity\User;
9
10 /**
11 * Tests the node view builder.
12 *
13 * @group node
14 *
15 * @coversDefaultClass \Drupal\node\NodeViewBuilder
16 */
17 class NodeViewBuilderTest extends EntityKernelTestBase {
18
19 /**
20 * {@inheritdoc}
21 */
22 public static $modules = ['node'];
23
24 /**
25 * The node storage.
26 *
27 * @var \Drupal\node\NodeStorageInterface
28 */
29 protected $storage;
30
31 /**
32 * The node view builder.
33 *
34 * @var \Drupal\Core\Entity\EntityViewBuilderInterface
35 */
36 protected $viewBuilder;
37
38 /**
39 * The renderer.
40 *
41 * @var \Drupal\Core\Render\RendererInterface
42 */
43 protected $renderer;
44
45 /**
46 * {@inheritdoc}
47 */
48 protected function setUp() {
49 parent::setUp();
50
51 $this->storage = $this->entityManager->getStorage('node');
52 $this->viewBuilder = $this->entityManager->getViewBuilder('node');
53 $this->renderer = $this->container->get('renderer');
54
55 $type = NodeType::create([
56 'type' => 'article',
57 'name' => 'Article',
58 ]);
59 $type->save();
60
61 $this->installSchema('node', 'node_access');
62 $this->installConfig(['system', 'node']);
63 }
64
65 /**
66 * Tests that node links are displayed correctly in pending revisions.
67 *
68 * @covers ::buildComponents
69 * @covers ::renderLinks
70 * @covers ::buildLinks
71 */
72 public function testPendingRevisionLinks() {
73 $account = User::create([
74 'name' => $this->randomString(),
75 ]);
76 $account->save();
77
78 $title = $this->randomMachineName();
79 $node = Node::create([
80 'type' => 'article',
81 'title' => $title,
82 'uid' => $account->id(),
83 ]);
84 $node->save();
85
86 /** @var \Drupal\node\NodeInterface $pending_revision */
87 $pending_revision = $this->storage->createRevision($node, FALSE);
88 $draft_title = $title . ' draft';
89 $pending_revision->setTitle($draft_title);
90 $pending_revision->save();
91
92 $build = $this->viewBuilder->view($node, 'teaser');
93 $output = (string) $this->renderer->renderPlain($build);
94 $this->assertContains("title=\"$title\"", $output);
95
96 $build = $this->viewBuilder->view($pending_revision, 'teaser');
97 $output = (string) $this->renderer->renderPlain($build);
98 $this->assertContains("title=\"$draft_title\"", $output);
99 }
100
101 }