diff --git a/core/modules/file/src/Tests/SaveDataTest.php b/core/modules/file/src/Tests/SaveDataTest.php
index 4ca49ad..f3a11a1 100644
--- a/core/modules/file/src/Tests/SaveDataTest.php
+++ b/core/modules/file/src/Tests/SaveDataTest.php
@@ -98,9 +98,13 @@ function testExistingReplace() {
     $existing = $this->createFile();
     $contents = $this->randomMachineName(8);
 
+    \Drupal::state()->set('file_test.hook_entity_create', FALSE);
     $result = file_save_data($contents, $existing->getFileUri(), FILE_EXISTS_REPLACE);
     $this->assertTrue($result, 'File saved successfully.');
 
+    $entity_create_hook_fired = \Drupal::state()->get('file_test.hook_entity_create');
+    $this->assertFalse($entity_create_hook_fired, 'Entity create hook was not invoked for a file replace operation.');
+
     $this->assertEqual('public', file_uri_scheme($result->getFileUri()), "File was placed in Drupal's files directory.");
     $this->assertEqual($result->getFilename(), $existing->getFilename(), 'Filename was set to the basename of the existing file, rather than preserving the original name.');
     $this->assertEqual($contents, file_get_contents($result->getFileUri()), 'Contents of the file are correct.');
diff --git a/core/modules/file/tests/file_test/file_test.module b/core/modules/file/tests/file_test/file_test.module
index 7b25af4..64684bf 100644
--- a/core/modules/file/tests/file_test/file_test.module
+++ b/core/modules/file/tests/file_test/file_test.module
@@ -349,3 +349,10 @@ function file_test_entity_type_alter(&$entity_types) {
       ->setAccessClass('Drupal\file_test\FileTestAccessControlHandler');
   }
 }
+
+/**
+ * Implements hook_ENTITY_TYPE_create() for file entities.
+ */
+function file_test_file_create() {
+  \Drupal::state()->set('file_test.hook_entity_create', TRUE);
+}
