diff --git a/core/modules/node/src/Tests/NodeRevisionsTest.php b/core/modules/node/src/Tests/NodeRevisionsTest.php
index c50110d..1982266 100644
--- a/core/modules/node/src/Tests/NodeRevisionsTest.php
+++ b/core/modules/node/src/Tests/NodeRevisionsTest.php
@@ -195,6 +195,7 @@ public function testRevisions() {
                         ['%revision-date' => format_date($nodes[1]->getRevisionCreationTime()),
                               '@type' => 'Basic page', '%title' => $nodes[1]->label()]), 'Revision deleted.');
     $this->assertTrue(db_query('SELECT COUNT(vid) FROM {node_revision} WHERE nid = :nid and vid = :vid', [':nid' => $node->id(), ':vid' => $nodes[1]->getRevisionId()])->fetchField() == 0, 'Revision not found.');
+    $this->assertTrue(db_query('SELECT COUNT(vid) FROM {node_field_revision} WHERE nid = :nid and vid = :vid', [':nid' => $node->id(), ':vid' => $nodes[1]->getRevisionId()])->fetchField() == 0, 'Field revision not found.');
 
     // Set the revision timestamp to an older date to make sure that the
     // confirmation message correctly displays the stored revision date.
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php
index 744121e..b32e78d 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityApiTest.php
@@ -101,6 +101,9 @@ protected function assertCRUD($entity_type, UserInterface $user1) {
     if ($revision_table = $definition->getRevisionTable()) {
       $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {' . $revision_table . '}')->fetchField(), 'Data table was emptied');
     }
+    if ($revision_data_table = $definition->getRevisionDataTable()) {
+      $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {' . $revision_data_table . '}')->fetchField(), 'Data table was emptied');
+    }
 
     // Test deleting a list of entities not indexed by entity id.
     $entities = [];
@@ -126,6 +129,9 @@ protected function assertCRUD($entity_type, UserInterface $user1) {
     if ($revision_table = $definition->getRevisionTable()) {
       $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {' . $revision_table . '}')->fetchField(), 'Data table was emptied');
     }
+    if ($revision_data_table = $definition->getRevisionDataTable()) {
+      $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {' . $revision_data_table . '}')->fetchField(), 'Data table was emptied');
+    }
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
index b78a588..38257ee 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/RevisionableContentEntityBaseTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\KernelTests\Core\Entity;
 
-use Drupal\entity_test_revlog\Entity\EntityTestWithRevisionLog;
+use Drupal\entity_test_revlog\Entity\EntityTestMulWithRevisionLog;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\user\Entity\User;
 
@@ -18,39 +18,109 @@ class RevisionableContentEntityBaseTest extends KernelTestBase {
   public static $modules = ['entity_test_revlog', 'system', 'user'];
 
   /**
+   * The entity where revisions will be created.
+   *
+   * @var \Drupal\entity_test_revlog\Entity\EntityTestMulWithRevisionLog
+   */
+  protected $entity;
+
+  /**
+   * The user author of the revisions.
+   *
+   * @var \Drupal\user\UserInterface
+   */
+  protected $user;
+
+  /**
+   * The definition and metada of the entity being tested.
+   *
+   * @var Drupal\Core\Entity\EntityTypeInterface
+   */
+  protected $definition;
+
+
+  /**
    * {@inheritdoc}
    */
   protected function setUp() {
     parent::setUp();
 
-    $this->installEntitySchema('entity_test_revlog');
+    $this->installEntitySchema('entity_test_mul_revlog');
     $this->installEntitySchema('user');
     $this->installSchema('system', 'sequences');
   }
 
   public function testRevisionableContentEntity() {
-    $user = User::create(['name' => 'test name']);
-    $user->save();
-    /** @var \Drupal\entity_test_revlog\Entity\EntityTestWithRevisionLog $entity */
-    $entity = EntityTestWithRevisionLog::create([
-      'type' => 'entity_test_revlog',
-    ]);
-    $entity->save();
-
-    $entity->setNewRevision(TRUE);
-    $random_timestamp = rand(1e8, 2e8);
-    $entity->setRevisionCreationTime($random_timestamp);
-    $entity->setRevisionUserId($user->id());
-    $entity->setRevisionLogMessage('This is my log message');
-    $entity->save();
+    $this->user = User::create(['name' => 'test name']);
+    $this->user->save();
+    $entity_type = 'entity_test_mul_revlog';
+    $this->definition = \Drupal::entityManager()->getDefinition($entity_type);
+    /** @var \Drupal\entity_test_revlog\Entity\EntityTestMulWithRevisionLog $entity */
+    $this->entity = EntityTestMulWithRevisionLog::create(['type' => $entity_type]);
+
+    // Save the entity, this creates the first revision.
+    $this->entity->save();
+    $revision_ids[] = $this->entity->getRevisionId();
+    $this->assertItemsTableCount(1);
 
-    $revision_id = $entity->getRevisionId();
+    // Create the second revision.
+    $random_timestamp = rand(1e8, 2e8);
+    $this->createRevision($random_timestamp, 'This is my log message');
+    $this->assertItemsTableCount(2);
+    $revision_ids[] = $this->entity->getRevisionId();
 
-    $entity = \Drupal::entityTypeManager()->getStorage('entity_test_revlog')->loadRevision($revision_id);
+    $storage = \Drupal::entityTypeManager()->getStorage('entity_test_mul_revlog');
+    $entity = $storage->loadRevision($this->entity->getRevisionId());
     $this->assertEquals($random_timestamp, $entity->getRevisionCreationTime());
-    $this->assertEquals($user->id(), $entity->getRevisionUserId());
-    $this->assertEquals($user->id(), $entity->getRevisionUser()->id());
+    $this->assertEquals($this->user->id(), $entity->getRevisionUserId());
+    $this->assertEquals($this->user->id(), $entity->getRevisionUser()->id());
     $this->assertEquals('This is my log message', $entity->getRevisionLogMessage());
+
+    // Create another 3 revisions.
+    foreach (range(1, 3) as $count) {
+      $timestamp = rand(1e8, 2e8);
+      $this->createRevision($timestamp, 'This is my log message number: ' . $count);
+      $revision_ids[] = $this->entity->getRevisionId();
+    }
+    $this->assertItemsTableCount(5);
+
+    $this->assertEqual(5, count($revision_ids));
+
+    // Delete the first 3 revisions.
+    foreach (range(0, 2) as $key) {
+      $storage->deleteRevision($revision_ids[$key]);
+    }
+
+    // We should have only data for two revisions.
+    $this->assertItemsTableCount(2);
+  }
+
+  /**
+   * Asserts the ammount of items on entity related tables.
+   *
+   * @param int $count
+   */
+  protected function assertItemsTableCount($count) {
+    $this->assertEqual(1, db_query('SELECT COUNT(*) FROM {' . $this->definition->getBaseTable() . '}')->fetchField());
+    $this->assertEqual(1, db_query('SELECT COUNT(*) FROM {' . $this->definition->getDataTable() . '}')->fetchField());
+    $this->assertEqual($count, db_query('SELECT COUNT(*) FROM {' . $this->definition->getRevisionTable() . '}')->fetchField());
+    $this->assertEqual($count, db_query('SELECT COUNT(*) FROM {' . $this->definition->getRevisionDataTable() . '}')->fetchField());
+  }
+
+  /**
+   * Creates a new revision in the entity of this test class.
+   *
+   * @param int $timestamp
+   *   The timestamp of the new revision.
+   * @param string $log_message
+   *   The log message of the new revision.
+   */
+  protected function createRevision($timestamp, $log_message) {
+    $this->entity->setNewRevision(TRUE);
+    $this->entity->setRevisionCreationTime($timestamp);
+    $this->entity->setRevisionUserId($this->user->id());
+    $this->entity->setRevisionLogMessage($log_message);
+    $this->entity->save();
   }
 
 }
