From 68d3116161f41f5be6af9bc943519c499de6983e Mon Sep 17 00:00:00 2001
From: paranojik <paranojik@19501.no-reply.drupal.org>
Date: Wed, 4 May 2016 18:26:48 +0200
Subject: [PATCH] Issue #2717937 by paranojik: RevisionControllerTrait doesn't
 properly display operation links

---
 src/Controller/RevisionControllerTrait.php    |  8 +++++++-
 src/Controller/RevisionOverviewController.php |  8 ++++----
 tests/src/Kernel/RevisionBasicUITest.php      | 14 ++++++++++++++
 3 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/Controller/RevisionControllerTrait.php b/src/Controller/RevisionControllerTrait.php
index 5c3319c..80adc1d 100644
--- a/src/Controller/RevisionControllerTrait.php
+++ b/src/Controller/RevisionControllerTrait.php
@@ -155,7 +155,13 @@ trait RevisionControllerTrait {
           }
         }
         else {
-          $row[] = $this->getOperationLinks($revision);
+          $links = $this->getOperationLinks($revision);
+          $row[] = [
+            'data' => [
+              '#type' => 'operations',
+              '#links' => $links,
+            ],
+          ];
         }
       }
 
diff --git a/src/Controller/RevisionOverviewController.php b/src/Controller/RevisionOverviewController.php
index c92410e..b3f815d 100644
--- a/src/Controller/RevisionOverviewController.php
+++ b/src/Controller/RevisionOverviewController.php
@@ -72,10 +72,10 @@ class RevisionOverviewController extends ControllerBase {
    * {@inheritdoc}
    */
   protected function buildRevertRevisionLink(EntityInterface $entity_revision) {
-    if ($entity_revision->hasLinkTemplate('revision-revert')) {
+    if ($entity_revision->hasLinkTemplate('revision-revert-form')) {
       return [
         'title' => t('Revert'),
-        'url' => $entity_revision->toUrl('revision-revert'),
+        'url' => $entity_revision->toUrl('revision-revert-form'),
       ];
     }
   }
@@ -84,10 +84,10 @@ class RevisionOverviewController extends ControllerBase {
    * {@inheritdoc}
    */
   protected function buildDeleteRevisionLink(EntityInterface $entity_revision) {
-    if ($entity_revision->hasLinkTemplate('revision-delete')) {
+    if ($entity_revision->hasLinkTemplate('revision-delete-form')) {
       return [
         'title' => t('Delete'),
-        'url' => $entity_revision->toUrl('revision-delete'),
+        'url' => $entity_revision->toUrl('revision-delete-form'),
       ];
     }
   }
diff --git a/tests/src/Kernel/RevisionBasicUITest.php b/tests/src/Kernel/RevisionBasicUITest.php
index f452efc..741b586 100644
--- a/tests/src/Kernel/RevisionBasicUITest.php
+++ b/tests/src/Kernel/RevisionBasicUITest.php
@@ -84,6 +84,20 @@ class RevisionBasicUITest extends KernelTestBase {
     // This ensures that the default revision is still the first revision.
     $this->assertTrue(strpos($response->getContent(), 'entity_test_enhanced/1/revisions/2/view') !== FALSE);
     $this->assertTrue(strpos($response->getContent(), 'entity_test_enhanced/1') !== FALSE);
+
+    // Publish a new revision.
+    $revision = clone $entity;
+    $revision->name->value = 'rev 3';
+    $revision->setNewRevision(TRUE);
+    $revision->isDefaultRevision(TRUE);
+    $revision->save();
+
+    $request = Request::create($revision->url('version-history'));
+    $response = $http_kernel->handle($request);
+    $this->assertEquals(200, $response->getStatusCode());
+
+    // The first revision row should now include a revert link.
+    $this->assertTrue(strpos($response->getContent(), 'entity_test_enhanced/1/revisions/1/revert') !== FALSE);
   }
 
   public function testRevisionView() {
-- 
GitLab