diff --git a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
index aab0d28..a7c41e4 100644
--- a/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityTranslationTest.php
@@ -8,8 +8,8 @@
 namespace Drupal\system\Tests\Entity;
 
 use Drupal\Component\Utility\String;
-use Drupal\Core\Entity\ContentEntityInterface;
 use Drupal\Core\Language\LanguageInterface;
+use Drupal\entity_test\Entity\EntityTest;
 use Drupal\entity_test\Entity\EntityTestMulRev;
 use Drupal\language\Entity\ConfigurableLanguage;
 
@@ -742,4 +742,45 @@ function testEntityAdapter() {
     }
   }
 
+  /**
+   * Tests the entity constructor works with translations.
+   */
+  function testEntityConstructor() {
+    $default_langcode = $this->languageManager->getDefaultLanguage()->getId();
+    $langcodes = array_unique(array_merge($this->langcodes, [$default_langcode]));
+    $this->assertTrue(count($langcodes) > 1);
+    $bundle = $this->randomMachineName();
+    entity_test_create_bundle($bundle);
+    $field_name = strtolower($this->randomMachineName());
+    entity_create('field_storage_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'type' => 'text',
+      'cardinality' => 1,
+    ))->save();
+    entity_create('field_config', array(
+      'field_name' => $field_name,
+      'entity_type' => 'entity_test',
+      'bundle' => $bundle,
+      'translatable' => TRUE,
+    ))->save();
+    $values = [];
+    foreach ($langcodes as $langcode) {
+      $index = $langcode == $default_langcode ? LanguageInterface::LANGCODE_DEFAULT : $langcode;
+      $values[$field_name][$index][0]['value'] = $this->randomString();
+    }
+    $entity = new EntityTest($values, 'entity_test', $bundle, $langcodes);
+    $expected_languages = array_flip($langcodes);
+    foreach ($entity->getTranslationLanguages() as $language) {
+      /** @var \Drupal\Core\Language\LanguageInterface $language */
+      $this->assertTrue(isset($expected_languages[$language->getId()]));
+      unset($expected_languages[$language->getId()]);
+    }
+    $this->assertFalse($expected_languages);
+    foreach ($langcodes as $langcode) {
+      $index = $langcode == $default_langcode ? LanguageInterface::LANGCODE_DEFAULT : $langcode;
+      $this->assertEqual($entity->getTranslation($langcode)->$field_name->value, $values[$field_name][$index][0]['value']);
+    }
+  }
+
 }
