diff --git a/core/modules/content_translation/src/Tests/ContentTranslationOperationsTest.php b/core/modules/content_translation/src/Tests/ContentTranslationOperationsTest.php
new file mode 100644
index 0000000..0ecfcbb
--- /dev/null
+++ b/core/modules/content_translation/src/Tests/ContentTranslationOperationsTest.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\entity\Tests\ContentTranslationOperationsTest.
+ */
+
+namespace Drupal\content_translation\Tests;
+
+use Drupal\language\Entity\ConfigurableLanguage;
+use Drupal\node\Tests\NodeTestBase;
+
+/**
+ * Tests the content translation operations available in the content listing.
+ *
+ * @group content_translation
+ */
+class ContentTranslationOperationsTest extends NodeTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['language', 'content_translation', 'node', 'views'];
+
+  protected function setUp() {
+    parent::setUp();
+
+    // Enable additional languages.
+    $langcodes = ['es', 'ca'];
+    foreach ($langcodes as $langcode) {
+      ConfigurableLanguage::createFromLangcode($langcode)->save();
+    }
+
+    // Enable translation for the current entity type and ensure the change is
+    // picked up.
+    \Drupal::service('content_translation.manager')->setEnabled('node', 'article', TRUE);
+    drupal_static_reset();
+    \Drupal::entityManager()->clearCachedDefinitions();
+    \Drupal::service('router.builder')->rebuild();
+
+    $this->base_user_1 = $this->drupalCreateUser(['access content overview']);
+    $this->base_user_2 = $this->drupalCreateUser(['access content overview', 'create content translations', 'update content translations', 'delete content translations']);
+  }
+
+  /**
+   * Test that the operation "Translate" is displayed in the content listing.
+   */
+  function testOperationTranslateLink() {
+    $node = $this->drupalCreateNode(['type' => 'article']);
+    // Verify no translation operation links are displayed for users without
+    // permission.
+    $this->drupalLogin($this->base_user_1);
+    $this->drupalGet('admin/content');
+    $this->assertNoLinkByHref('node/' . $node->id() . '/translations');
+    $this->drupalLogout();
+    // Verify there's a translation operation link for users with enough
+    // permissions.
+    $this->drupalLogin($this->base_user_2);
+    $this->drupalGet('admin/content');
+    $this->assertLinkByHref('node/' . $node->id() . '/translations');
+  }
+
+}
diff --git a/core/modules/node/src/Tests/NodeAdminTest.php b/core/modules/node/src/Tests/NodeAdminTest.php
index 616538c..44b77ff 100644
--- a/core/modules/node/src/Tests/NodeAdminTest.php
+++ b/core/modules/node/src/Tests/NodeAdminTest.php
@@ -171,4 +171,5 @@ function testContentAdminPages() {
       $this->assertLinkByHref('node/' . $node->id() . '/delete');
     }
   }
+
 }
