3 namespace Drupal\Tests\node\Kernel;
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;
11 * Tests the node view builder.
15 * @coversDefaultClass \Drupal\node\NodeViewBuilder
17 class NodeViewBuilderTest extends EntityKernelTestBase {
22 public static $modules = ['node'];
27 * @var \Drupal\node\NodeStorageInterface
32 * The node view builder.
34 * @var \Drupal\Core\Entity\EntityViewBuilderInterface
36 protected $viewBuilder;
41 * @var \Drupal\Core\Render\RendererInterface
48 protected function setUp() {
51 $this->storage = $this->entityManager->getStorage('node');
52 $this->viewBuilder = $this->entityManager->getViewBuilder('node');
53 $this->renderer = $this->container->get('renderer');
55 $type = NodeType::create([
61 $this->installSchema('node', 'node_access');
62 $this->installConfig(['system', 'node']);
66 * Tests that node links are displayed correctly in pending revisions.
68 * @covers ::buildComponents
69 * @covers ::renderLinks
70 * @covers ::buildLinks
72 public function testPendingRevisionLinks() {
73 $account = User::create([
74 'name' => $this->randomString(),
78 $title = $this->randomMachineName();
79 $node = Node::create([
82 'uid' => $account->id(),
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();
92 $build = $this->viewBuilder->view($node, 'teaser');
93 $output = (string) $this->renderer->renderPlain($build);
94 $this->assertContains("title=\"$title\"", $output);
96 $build = $this->viewBuilder->view($pending_revision, 'teaser');
97 $output = (string) $this->renderer->renderPlain($build);
98 $this->assertContains("title=\"$draft_title\"", $output);