createBlockContent('initial'); $blocks = []; $logs = []; // Get original block. $blocks[] = $block->getRevisionId(); $logs[] = ''; // Create three revisions. $revision_count = 3; for ($i = 0; $i < $revision_count; $i++) { $block->setNewRevision(TRUE); $block->setRevisionLogMessage($this->randomMachineName(32)); $block->setRevisionUser($this->adminUser); $block->setRevisionCreationTime(REQUEST_TIME); $logs[] = $block->getRevisionLogMessage(); $block->save(); $blocks[] = $block->getRevisionId(); } $this->blocks = $blocks; $this->revisionLogs = $logs; } /** * Checks block revision related operations. */ public function testRevisions() { $blocks = $this->blocks; $logs = $this->revisionLogs; foreach ($blocks as $delta => $revision_id) { // Confirm the correct revision text appears. /** @var \Drupal\block_content\BlockContentInterface $loaded */ $loaded = $this->container->get('entity_type.manager') ->getStorage('block_content') ->loadRevision($revision_id); // Verify revision log is the same. $this->assertEqual($loaded->getRevisionLogMessage(), $logs[$delta], format_string('Correct log message found for revision @revision', [ '@revision' => $loaded->getRevisionId(), ])); if ($delta > 0) { $this->assertTrue($loaded->getRevisionUser() instanceof UserInterface, 'Revision User found.'); $this->assertTrue(is_numeric($loaded->getRevisionUserId()), 'Revision User ID found.'); $this->assertTrue(is_numeric($loaded->getRevisionCreationTime()), 'Revision time found.'); } } // Confirm that this is the default revision. $this->assertTrue($loaded->isDefaultRevision(), 'Third block revision is the default one.'); // Make a new revision and set it to not be default. // This will create a new revision that is not "front facing". // Save this as a non-default revision. $loaded->setNewRevision(); $loaded->isDefaultRevision(FALSE); $loaded->body = $this->randomMachineName(8); $loaded->save(); $this->drupalGet('block/' . $loaded->id()); $this->assertNoText($loaded->body->value, 'Revision body text is not present on default version of block.'); // Verify that the non-default revision id is greater than the default // revision id. $default_revision = BlockContent::load($loaded->id()); $this->assertTrue($loaded->getRevisionId() > $default_revision->getRevisionId(), 'Revision id is greater than default revision id.'); } }