diff --git a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php
index 69bf5f5..efd72e0 100644
--- a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php
+++ b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php
@@ -101,9 +101,12 @@ public function viewElements(FieldItemListInterface $items) {
     $image_link_setting = $this->getSetting('image_link');
     // Check if the formatter involves a link.
     if ($image_link_setting == 'content') {
-      $uri = $items->getEntity()->urlInfo();
-      // @todo Remove when theme_image_formatter() has support for route name.
-      $uri['path'] = $items->getEntity()->getSystemPath();
+      $entity = $items->getEntity();
+      if (!$entity->isNew()) {
+        $uri = $entity->urlInfo();
+        // @todo Remove when theme_image_formatter() has support for route name.
+        $uri['path'] = $entity->getSystemPath();
+      }
     }
     elseif ($image_link_setting == 'file') {
       $link_file = TRUE;
diff --git a/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php b/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
index c8f205f..b49a4ac 100644
--- a/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
+++ b/core/modules/image/lib/Drupal/image/Tests/ImageFieldDisplayTest.php
@@ -54,6 +54,11 @@ function _testImageFieldFormatters($scheme) {
 
     // Create a new node with an image attached.
     $test_image = current($this->drupalGetTestFiles('image'));
+
+    // Ensure that preview works.
+    $this->previewNodeImage($test_image, $field_name, 'article');
+
+    // Save node.
     $nid = $this->uploadNodeImage($test_image, $field_name, 'article');
     $node = node_load($nid, TRUE);
 
diff --git a/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php b/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
index 2985e6e..faf5eb3 100644
--- a/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
+++ b/core/modules/image/lib/Drupal/image/Tests/ImageFieldTestBase.php
@@ -99,6 +99,24 @@ function createImageField($name, $type_name, $field_settings = array(), $instanc
   }
 
   /**
+   * Preview an image in a node.
+   *
+   * @param $image
+   *   A file object representing the image to upload.
+   * @param $field_name
+   *   Name of the image field the image should be attached to.
+   * @param $type
+   *   The type of node to create.
+   */
+  function previewNodeImage($image, $field_name, $type) {
+    $edit = array(
+      'title[0][value]' => $this->randomName(),
+    );
+    $edit['files[' . $field_name . '_0]'] = drupal_realpath($image->uri);
+    $this->drupalPostForm('node/add/' . $type, $edit, t('Preview'));
+  }
+
+  /**
    * Upload an image to a node.
    *
    * @param $image
